
使用這些基本 REST API 最佳實踐構建出色的 API
Data-centric Artificial Intelligence(DCAI)可以概括為數據工程,主要探索如何高效地構建高質量、大規模的數據集。顯而易見,數據工程并不是一個新概念,而是一個“被冷落”的舊概念。傳統的機器學習開發流程可以歸為下圖的流程:
我們可以簡單將機器學習開發劃為3個方面的主要工作:
現在普遍的,AI以模型為中心(Model-centric),對于機器學習的開發者,數據樣本很經常是固定的,特征工程及模型優化是重中之重,從見效、技術亮點都是妥妥的主角。而數據工程(或稱為Data-centric)的工作經常是臟活累活,對模型的重要性經常被忽視,相關的技術發展也比較少。
可能是隨著深度學習端對端學習弱化了對特征工程的依賴,以及越來崇尚的大模型的暴力美學,數據對模型效果也得到更多的重視了,畢竟Garbage in, garbage out!
過去,人工智能主要關注設計模型,但這種方法過度依賴固定數據集,難以實現更好的模型行為?,F在,人們更加注重提高數據的質量和數量,同時保持模型的相對固定。這種轉變已經取得了一些成功,例如大型語言模型的進步和ChatGPT等應用。以數據為中心的方法具有許多優點,包括提高準確性、縮短開發時間、增強方法和一致性以及提高可擴展性。此外,以數據為中心的人工智能并沒有降低以模型為中心的人工智能的價值,這兩種范式是互補交織的,可以相互促進發展。在生產環境中,數據和模型往往在一個不斷變化的環境中交替發展。
我們將以數據為中心的人工智能分為三個目標:訓練數據開發、推理數據開發和數據維護。
訓練數據為機器學習模型提供了基礎,因為模型性能在很大程度上受其質量和數量的影響。訓練數據開發的目的是收集和生成豐富、高質量的訓練數據來支持機器學習模型的訓練,包括五個子目標,分別為:1)數據收集,2)數據標注,3)數據準備,4)數據縮減,5)數據增強。最后我們將討論管道搜索,這是一種新興趨勢,旨在連接這些步驟并搜索最有效的端到端解決方案。
創建和處理訓練數據的基本步驟,如圖4所示。
圖4 訓練數據開發通用流程概覽
表2總結了訓練數據開發任務的代表性任務和方法。
表2 訓練數據開發任務的代表性任務和方法
3.1.1 數據收集
數據收集是從各種來源收集和獲取數據的過程,從根本上決定了數據的質量和數量。這個過程嚴重依賴于領域知識。隨著數據可用性的增加,高效利用現有數據集的策略的發展出現了激增。
領域知識的作用。深入了解應用領域或行業對于收集相關和代表性數據至關重要。在構建推薦系統時,需要根據應用領域決定收集哪些用戶/項目特征。領域知識有助于使數據與利益相關者的意圖保持一致,并確保數據的相關性和代表性。
高效的數據收集策略。高效數據收集策略包括利用現有數據,通過發現、集成和合成的方法,提高數據收集效率。與傳統的手動收集方法相比,這些方法更省時。數據集發現通過匯集現有數據集,根據人類查詢識別相關和有用的數據集。數據集成將不同來源的數據集整合成一個統一的數據集。原始數據合成通過合成包含所需模式的數據集,例如在異常檢測場景中,合成異常模式以提高數據收集效率。這些策略有助于提高數據收集效率,減少人工工作量。
挑戰。數據收集工作面臨著諸多嚴峻的挑戰,包括數據集的多樣性、對齊的困難、合成數據所需的領域知識,以及法律、倫理和物流方面的限制。從零開始收集數據可能會遇到知情同意、數據隱私和數據安全等問題所帶來的阻礙。因此,研究人員和實踐者必須充分了解并認真對待這些挑戰。
3.1.2 數據標注
數據標注是將一個或多個描述性標簽或標記分配給數據集的過程,使算法能夠從標記的數據中學習和做出預測。傳統上,這是一個耗時且資源密集的手動過程,特別是對于大型數據集。最近,提出了更有效的標注方法來減少人力。
數據標注的必要性。數據標注在訓練模型以準確反映人類意圖方面至關重要。無監督學習技術在部分領域取得了成功,但為了獲得更好的性能,通常仍需使用人類標簽來微調大型語言模型和異常檢測器。因此,標注數據對于教導模型與人類對齊和表現至關重要。
高效的標注策略。高效標注策略包括眾包標注、半監督標注、主動學習、數據編程和遠程監督。眾包標注將任務分解給大量非專業注釋者,通過迭代完善任務設計、要求多個工作人員注釋相同樣本并推斷共識標簽、或利用算法提高標簽質量來提高效率。半監督學習利用少量帶標簽的數據來推斷未標注數據的標簽,如自訓練、訓練多個分類器并找到共識標簽、基于圖的半監督學習標注技術或基于人類反饋的強化學習過程。主動學習是一種迭代式標注過程,需要人類不斷提供信息以自適應地選擇查詢。數據編程是一種基于人類設計標注函數的弱監督方法,通常需要最少的人類參與。遠程監管通過利用外部資源來分配標簽,如關系提取。這些策略可以組合為混合策略,以提高標注效率。
挑戰。數據標注面臨的主要挑戰包括如何在標注質量、數量和經濟成本之間找到平衡,以及如何應對標注的主觀性和倫理問題。當預算緊張時,需要采取更高效的標注策略,并利用領域知識來平衡人力和標注質量/數量。此外,設計者需要確保指示清晰,以避免注釋者誤解,導致標注噪音。最后,數據隱私和偏見等倫理問題在標注任務分發給大量人群時尤為突出。
3.1.3 數據準備
數據準備涉及清理和轉換原始數據,以適應模型訓練的格式。通常,這個過程需要大量的工程工作,需要繁瑣的試錯。為了實現這個過程的自動化,最先進的方法通常采用搜索算法來發現最有效的策略。
數據準備的必要性。原始數據通常不適合模型訓練,需要清理和轉換。數據準備占數據科學家工作的約80%,因為原始數據可能存在噪聲、不一致性和無關信息,導致模型結果不準確和有偏。此外,敏感信息可能引入偏見,原始特征值也可能影響模型性能。
代表性方法。數據清理、特征提取和特征轉換。數據清理包括識別和糾正數據集中的錯誤、不一致和不準確,包括傳統編程方法和基于學習的方法。傳統方法使用編程自動化,但基于學習的方法如訓練回歸模型預測缺失值、通過抽樣估計重復項和糾正標簽錯誤,提高了準確性和效率。當代數據清理方法關注提高最終模型性能,例如采用搜索算法自動識別最佳清理策略。特征提取是從原始數據中提取相關特征的重要步驟,包括深度學習和傳統方法。深度學習通過學習神經網絡的權重來自動提取特征,需要較少的領域知識。特征變換是指將原始特征轉換為新特征集的過程,通??梢蕴岣吣P托阅?,如歸一化、標準化、對數變換和多項式變換等。這些方法可以以不同的方式組合以改善模型性能。
挑戰。清洗和轉換數據是一項挑戰,因為不同數據集的特性各異。即使數據類型相同,特征值和潛在問題也可能非常多樣化。研究人員和數據科學家需要投入大量時間和精力來清洗數據。雖然基于學習的方法可以自動搜索最佳準備策略,但設計適當的搜索空間仍然困難,且搜索過程耗時。
3.1.4 數據縮減
數據縮減的目標是在保留其基本信息的同時降低給定數據集的復雜性。這通??梢酝ㄟ^降低特征大小或樣本大小來實現。
數據縮減的必要性。數據縮減在提高訓練效率方面至關重要,可減少樣本數量和特征大小,緩解內存和計算約束,以及數據不平衡問題。壓縮特征可降低過擬合風險,提高模型部署速度和可解釋性。總體而言,數據縮減技術有助于提高模型準確性、效率和可解釋性。
減少特征規模的方法。從特征的角度,可以進行特征選擇和降維。特征選擇是從一組特征中選擇與預期任務最相關的子集的過程,分為過濾、包裝和嵌入式方法。主動特征選擇還考慮了人類知識,逐步選擇最合適的特征。特征選擇降低了復雜性,產生更清潔和更易理解的數據,同時保留了特征的語義。降維是將高維特征轉化為低維空間的過程,旨在保留最具代表性的信息。方法包括線性和非線性技術。
減少樣本量的方法。實例選擇是減少樣本量或平衡數據分布的常用方法,可分為包裝和過濾兩種方法。實例選擇技術還可通過欠采樣多數類來緩解數據不平衡問題,如隨機欠采樣。強化學習也被用于學習最佳欠采樣策略。
挑戰。數據縮減面臨兩大挑戰:一是選擇最具代表性或低維空間中的最小信息損失數據不易;二是可能放大數據偏差,引發公平性問題。盡管基于學習的方法可部分解決,但處理大數據集時需大量計算資源。實現高準確率和效率的雙重目標具挑戰性,公平性感知的數據縮減是重要但未充分探索的研究方向。
3.1.5 數據增強
數據增強是通過人為地創建現有數據的變體來增加數據的大小和多樣性的技術,這通??梢蕴岣吣P托阅?。值得注意的是,盡管數據增強和數據縮減似乎具有相互矛盾的目標,但它們可以相互結合使用。數據縮減的重點是消除冗余信息,而數據增強的目的是增強數據的多樣性。
數據增強的必要性。現代機器學習,特別是深度學習,需要大量數據才能學習。收集大型數據集,尤其是帶注釋的數據集,耗時費力。數據增強通過生成變異的類似數據點,使模型暴露于更多訓練示例中,提高準確度、泛化能力和魯棒性,尤其在可用數據有限的應用中。數據增強還可緩解類不平衡問題。
常見的增強方法。數據增強方法分為基礎操作和合成數據增強?;A操作通過修改原始數據生成新樣本,如縮放、旋轉、翻轉和模糊,以及使用Mixup和AutoAugment等方法。合成數據增強通過生成模型學習數據分布,如GAN、變分自編碼器和擴散模型,以生成新的訓練樣本。這些方法有助于提高模型的泛化能力和性能。
類別不均衡。類別不平衡是機器學習的挑戰,多數類別樣本數量遠超少數類別。數據增強技術如SMOTE和ADASYN可平衡數據分布,通過生成合成樣本增加少數類別樣本數量。AutoSMOTE是強化學習算法,可搜索最佳過采樣策略。
挑戰。數據增強的關鍵挑戰在于沒有一種策略適用于所有場景,不同數據類型可能需要不同策略。例如,圖數據無法直接應用普通Mixup策略。即使數據類型相同,最優策略也可能不同?;谒阉鞯乃惴梢宰R別最佳策略,但會增加計算和存儲成本。需要更有效和高效的技術來克服這些挑戰。
3.1.6 數據管道
現實世界中的數據管道通常包含多個步驟,每個步驟對應不同的子目標。盡管在單個任務方面取得了進展,但整個管道作為一個整體運行,不同步驟之間可能存在交互。管道搜索是一種自動搜索最佳組合的方法,如AutoSklearn、D3M、AlphaD3M、Deepline和ClusterP3S等算法。然而,管道搜索面臨計算開銷大的挑戰,需要更有效的搜索策略,以使其在現實場景中得到更廣泛的應用。
在評估人工智能系統時,除了性能指標,還需要考慮模型的穩健性、泛化性和決策制定的理由。推理數據開發的目標是創建新穎的評價集,以便更精細地了解模型或通過工程數據輸入觸發模型的特定功能。這項工作有三個子目標:1)分布內評估,2)分布外評估,3)提示工程。推理數據開發的任務相對開放,因為它們通常旨在評估或解鎖模型的多種功能,如圖5所示。表3中總結了相關任務和方法。
圖5 推理數據開發概覽
表3 推理數據開發相關的任務和方法
3.2.1 分布內評估
分布內評估數據構建的目的是生成符合訓練數據的樣本。
分布內評估的必要性。分布內評估是評估訓練模型質量的直接方法,需要更精細的評估以避免偏差和錯誤。這包括識別和校準未被充分代表的子群體,以及在部署前理解決策邊界和檢查模型倫理,特別是在高風險應用中。
數據切片。數據切片是將數據集劃分為相關亞人群,分別評估模型在每個亞人群上的性能。常見的切片方法包括使用預定義的標準,如年齡、性別或種族。實際應用中的數據可能很復雜,需要適當設計分區標準。為了減少人力投入,人們開發了自動切片方法,如SliceFinder、SliceLine、GEORGE和Multiaccuracy,這些方法可以識別出重要的數據切片,提高模型性能。
算法追索權。算法追索權是一種通過生成假設樣本來翻轉模型決策以獲得更優結果的方法。它對于理解決策邊界和檢測個體之間的潛在偏見非常有價值?,F有方法主要分為白盒和黑盒兩種,白盒方法需要訪問評估模型,黑盒方法不需要訪問模型。由于推理的目標標簽通常由人類輸入,這些方法都要求最小限度的人類參與。
挑戰。構建分布式評估集的主要挑戰在于識別目標樣本,特別是在數據切片的情況下,隨著數據點的增加,可能的數據子集數量呈指數級增長。同時,在可用信息有限的情況下,確定最接近的資源也需要付出巨大努力。
3.2.2 分布外評估
分布外評估數據是指一組樣本遵循與訓練數據中觀察到的分布不同的分布的。
分布外評估的必要性。現代機器學習技術在訓練數據上表現良好,但在實際部署中,數據分布可能不同。分布外評估主要評估模型在數據分布不同的情況下的泛化能力,發現模型的遷移性,增強其在意外情況下的表現信心,并提供關于模型魯棒性的重要見解。這有助于確定模型是否適合實際部署。
生成對抗式樣本。對抗樣本是故意修改的輸入數據,導致模型錯誤預測。手動擾動包括添加噪聲和模糊等,自動化方法有四類:白盒攻擊、物理世界攻擊、黑盒攻擊和中毒攻擊。評估對抗樣本有助于理解模型的魯棒性,避免不良后果。
生成具有分布偏移的樣本。生成具有分布偏移的樣本用于在不同分布上評估模型。數據收集和構建評估集是兩種方法。合成分布變化包括協變量偏移、標簽偏移和一般分布偏移。有偏數據采樣和基于學習的方法可用于生成具有分布偏移的樣本,以評估模型的遷移能力。
挑戰。生成分布外樣本面臨兩個挑戰:生成高質量的樣本和評估樣本質量。生成模型可能受限于訓練數據不具代表性,或遇到模式崩潰問題。評估樣本質量困難,因為常用度量標準可能不適用。已有多種評估指標被提出。創建高質量的分布外數據是一項復雜而艱巨的任務,需要精心設計。
3.2.3??提示工程
隨著大型語言模型的出現,通過微調輸入來獲取知識并完成任務已成為可能。提示工程是一種新興任務,旨在設計和構建高質量的提示,以實現最有效的性能。提示工程通過微調輸入數據而不是模型本身來改變傳統的工作流程。一種方法是通過創建模板進行手動提示工程,但可能不足以發現復雜任務的最佳提示。因此,已經研究了自動提示工程,包括從外部語料庫中挖掘模板和用種子提示進行改述。提示工程的主要障礙在于缺乏一致表現良好的通用提示模板,不同的模板可能導致不同的結果。因此,有必要進行進一步的研究,以深入了解模型對提示的反應,并為提示設計過程提供指導。
在現實應用中,數據并非一次生成,而是不斷更新的,需要進行連續的維護。數據維護的目的是在動態環境中確保數據的質量和可靠性。它涉及三個基本子目標:1)數據理解,旨在提供復雜數據的可視化和評估,使人類能夠獲得有價值的見解;2)數據質量保證,旨在制定定量測量和質量改進策略來監控和修復數據;3)數據存儲和檢索,旨在設計高效的算法,通過合理分配資源和高效率處理查詢來提供所需的數據。數據維護在以數據為中心的人工智能框架中起著基礎和支持作用,確保訓練和推斷中的數據準確可靠。本節概述了對數據維護的需求、代表性方法(如圖6所示)和挑戰。如圖6所示。表4總結了相關任務和方法。
圖6 數據維護概覽
表4 數據維護相關的任務和方法
3.3.1 數據理解
為了確保正確的維護,首先必須了解數據。
數據理解技術的必要性。現實世界數據量大且復雜,人類難以理解和分析。數據理解技術至關重要原因有三:1)總結和簡化數據,使其更易于管理;2)將高維數據可視化,以適應人類感知;3)了解數據資產的價值,以及每個數據樣本對性能的貢獻。
數據可視化。數據可視化利用人類對圖形的偏好,幫助理解復雜數據??梢暬偨Y、可視化聚類和可視化推薦??梢暬偨Y通過圖表濃縮原始數據,幫助人們洞察數據。選擇合適的可視化格式是關鍵,徑向圖和線性圖是常見格式,但選擇需權衡數據表示的忠實性和易用性??梢暬垲愅ㄟ^降維和自動聚類方法將高維數據可視化??梢暬扑]系統根據預定義規則或機器學習技術,為用戶推薦最合適的可視化格式。協作可視化技術使用戶能提供反饋,實現更自適應的用戶體驗。
數據評估。數據評估旨在了解數據點如何影響最終性能,為利益相關者提供寶貴見解,并有助于數據市場交易。研究人員通過估計數據點的Shapley值來分配權重,增強其在多個數據集和模型中的魯棒性。由于計算Shapley值可能非常昂貴,上述方法采用基于學習算法進行高效估算。
挑戰。兩個主要挑戰:一是選擇最佳數據可視化格式和算法,如聚類算法,需人類輸入,增加復雜性;二是開發高效的數據估價算法,如計算Shapley值,計算成本高,且Shapley值可能僅提供有限的數據價值角度。
3.3.2 數據質量保證
為了確??煽康臄祿?,維護數據質量至關重要。
數據質量保證的必要性。在動態環境中,持續監控并改進數據質量至關重要。實際應用中的數據可能包含異常數據點,因此需要建立定量測量來評估數據質量。如果模型受到低質量數據的影響,應實施質量改進策略以提高數據質量,進而提高模型性能。
質量評估。質量評估包括客觀和主觀評估。客觀評估使用數據固有屬性,如準確性、時效性、一致性和完整性,來衡量數據質量,僅需要最小限度的人為參與。主觀評估則從人的角度評估數據質量,通常針對特定應用,需要外部專家進行分析,包括可信度、可理解度和可訪問性等指標,通常通過用戶研究和問卷調查進行評估。雖然主觀評估可能不會直接有益于模型訓練,但它們可以促進組織內部的輕松協作,并提供長期利益。
質量改進。質量改進策略包括制定戰略以提高數據管道各階段的數據質量。初始方法使用程序化自動化,如完整性約束、拒絕約束和條件函數依賴,強制執行質量約束?;跈C器學習的自動化方法被開發以提高數據質量,如數據驗證模塊使用訓練集訓練模型以識別潛在問題。管道自動化方法也被開發用于系統地策劃數據,如數據集成和數據清理。協作方法鼓勵專業人士參與數據改進,如自動駕駛和視頻內容審查中的標注數據。UniProt創建了提交系統來利用集體智慧改進數據。所有方法都需要部分人的參與,因為人類必須提供信息。
挑戰。數據質量面臨兩個挑戰:選擇合適的評估指標和實施質量改進。單一指標可能不足以應對不斷變化的環境,需要仔細考慮。盡管自動化是關鍵,但人工參與可能也是必要的。因此,必須仔細設計評估指標和改進策略。
3.3.3 數據存儲和檢索
數據存儲和檢索系統在為構建AI系統提供必要數據方面發揮著不可或缺的作用。為了加快數據獲取的過程,已經提出了各種有效的策略。
數據存儲與檢索的必要性。隨著數據量指數增長,強大的可擴展數據管理系統對于支持AI模型訓練至關重要。這包括:1)存儲和合并來自不同來源的數據,需要仔細管理內存和計算資源;2)設計快速獲取數據的查詢策略以確保數據的及時和準確處理。
資源分配。資源分配是優化數據管理系統的關鍵。吞吐量和延遲是重要指標,可通過參數調優技術進行優化。早期的調優方法依賴經驗和行業最佳實踐,而基于學習的策略如Starfish和OtterTune可自動選擇參數,提高資源分配的靈活性。
查詢加速。可以通過高效索引選擇和查詢重寫策略來實現。查詢索引選擇的目標是減少磁盤訪問次數。策略是創建索引方案并記錄查詢執行成本,然后使用貪婪算法或動態規劃選擇策略?;趯W習的自動化策略從人類專家那里收集索引數據,并訓練機器學習模型來預測適當的索引策略,或者使用強化學習來搜索最佳策略。查詢重寫旨在通過識別輸入查詢中的重復子查詢來減少工作負載。基于規則的策略使用預定義規則重寫查詢,例如DBridge?;趯W習的方法使用監督學習或強化學習來預測查詢重寫規則。
挑戰。現有數據存儲和檢索方法主要優化特定部分,如資源分配和查詢加速。然而,整個數據管理系統復雜,需處理各種格式和結構的大量數據,端到端優化具挑戰性。此外,數據存儲和檢索還需考慮數據訪問控制和系統維護等關鍵方面。
以數據為中心的人工智能涉及數據生命周期各階段的任務,根據是否需要人類參與分為自動化和協作兩大類。每種方法都有不同的自動化程度或需要不同程度的人類參與,如圖7所示。自動化任務涉及編程自動化、基于學習的自動化和流水線自動化,以提高效率和準確性。協作任務需要不同程度的人工參與,包括完全參與、部分參與和最低參與。這種分類有助于理解不同方法如何應用于不同的以數據為中心的目標,并實現效率和效果的權衡。
本文章轉載微信公眾號@算法進階