背景:什么是主動學習(Active Learning),? 機器學習的研究領域包括有監(jiān)督學習、無監(jiān)督學習,、半監(jiān)督學習和強化學習等諸多內容,。針對有監(jiān)督學習和半監(jiān)督學習,都需要一定數(shù)量的標注數(shù)據(jù),,也就是說在訓練模型的時候,,全部或者部分數(shù)據(jù)需要帶上相應的標簽才能進行模型的訓練。但是在實際的業(yè)務場景或者生產環(huán)境中,,工作人員獲得樣本的成本其實是不低的,,甚至在某些時候是相對較高的,那么如何通過較少成本來獲得較大價值的標注數(shù)據(jù),,進一步地提升算法的效果就是值得思考的問題了,。 主動學習(Active Learning)的大致思路就是:通過機器學習的方法獲取到那些比較“難”分類的樣本數(shù)據(jù),讓人工再次確認和審核,,然后將人工標注得到的數(shù)據(jù)再次使用有監(jiān)督學習模型或者半監(jiān)督學習模型進行訓練,,逐步提升模型的效果,將人工經(jīng)驗融入機器學習的模型中,。 用一個例子來比喻,,一個高中生通過做高考的模擬試題以希望提升自己的考試成績,那么在做題的過程中就有幾種選擇,。一種是隨機地從歷年高考和模擬試卷中隨機選擇一批題目來做,,以此來提升考試成績。但是這樣做的話所需要的時間也比較長,,針對性也不夠強,;另一種方法是每個學生建立自己的錯題本,用來記錄自己容易做錯的習題,,反復地鞏固自己做錯的題目,,通過多次復習自己做錯的題目來鞏固自己的易錯知識點,,逐步提升自己的考試成績。其主動學習的思路就是選擇一批容易被錯分的樣本數(shù)據(jù),,讓人工進行標注,,再讓機器學習模型訓練的過程。 介紹完了主動學習是什么,,接下來帶著大家詳細讀一下這篇論文的內容吧,。 摘要 現(xiàn)今人工智能(AI)應用程序的成功不僅需要模型訓練(Model-centric,以模型為中心),,還需要數(shù)據(jù)工程(Data-centric,,以數(shù)據(jù)為中心)。在以數(shù)據(jù)為中心的 AI 中,,主動學習(AL) 起著至關重要的作用,,但當前的 AL 工具無法有效地執(zhí)行 AL 任務。 對此,,本文提出了一種高效的 AL MLOps 系統(tǒng),命名為 ALaaS(主動學習即服務),。具體來說,,ALaaS 采用服務器-客戶端架構,支持 AL 流水線,,并且可以高效地實現(xiàn)階段級的并行處理,。同時,緩存和批處理技術被用來進一步加速 AL 過程,,除了效率之外,,ALaaS在配置即服務的設計理念的幫助下,還確保了可訪問性,。它還將AL流程抽象為多個組件,,并為高級用戶提供豐富的API以將系統(tǒng)擴展到新的場景。大量實驗表明,,ALaaS在延遲和吞吐量方面優(yōu)于所有其他開源的AL工具,。進一步的消融研究證明了我們設計的有效性以及ALaaS的易用性。 這里可以獲取我們的代碼: https://github.com/MLSysOps/alaas,。 介紹 以數(shù)據(jù)為中心的人工智能是一個新興主題,,其重點是利用現(xiàn)成的機器學習(ML)模型為人工智能應用的開發(fā)提供數(shù)據(jù)工程支持。以前的工作主要是以模型為中心的人工智能,,假設環(huán)境是靜態(tài)的,。在這個環(huán)境中,以模型為中心的AI的主要目標是:
然而,,現(xiàn)實世界的人工智能應用程序面臨著更復雜的場景,,以模型為中心的人工智能無法充分解決這一問題。例如,,研究人員必須花費大量時間準備數(shù)據(jù),,包括數(shù)據(jù)標注、錯誤檢測等,,同時他們還需要監(jiān)控數(shù)據(jù)以檢測分布漂移,,以便及時更新模型,然而僅從模型角度處理這些問題將導致次優(yōu)解決方案,。因此,,為了進一步改進和普及人工智能應用程序,許多工作現(xiàn)在都轉向以數(shù)據(jù)為中心或將以模型為中心與以數(shù)據(jù)為核心相結合,。 雖然以數(shù)據(jù)為中心的人工智能概念最近才提出,,但許多開創(chuàng)性研究已經(jīng)展開,其核心貢獻在于數(shù)據(jù)工程,,其中一個重要方向是主動學習(AL),。AL的動機是減少手動標注工作,同時保持甚至提高ML模型的性能,。眾所周知,,ML模型非常需要數(shù)據(jù),因此,,為了達到滿足應用程序要求的高性能(例如精度),,人們總是需要在數(shù)據(jù)收集期間標注大量數(shù)據(jù)。這個過程非常耗時以及需要大量勞動,,所以常常成為ML應用程序開發(fā)的瓶頸,。 為了解決這一問題,AL采用從大型訓練數(shù)據(jù)庫中選擇最具代表性但多樣的訓練樣本的AL策略,,然后,,它只將選定的樣本發(fā)送給數(shù)據(jù)庫(例如,人工標注工具)進行標記,。接下來,,ML模型將僅在這些子數(shù)據(jù)集上進行訓練。通過這樣做,,我們仍然可以獲得具有競爭性能的ML模型,,但可以節(jié)省大量的標注和訓練的成本。 然而,,利用AL方法并不是件容易的事,。本質上,將AL應用于AI應用開發(fā)不僅僅是搜索,、選擇或實現(xiàn)AL算法,。相反,,用戶必須構建一個后端來運行AL流水線,為自己的應用程序量身定制環(huán)境(例如私有集群和AWS),。換句話說,,他們需要使用樣板代碼進行大量重復的工程工作。此外,,用戶必須考慮效率和成本問題,。因為AL通常運行在龐大的數(shù)據(jù)集上,并且一些AL算法需要運行多個ML模型以進行數(shù)據(jù)選擇,,這將導致長期的結果處理時間和額外的成本,。雖然有幾種開源AL工具降低了應用AL的門檻,但它們無法滿足效率要求,。 圖1 ALaaS架構,。我們的系統(tǒng)采用服務器-客戶端架構,易于部署,,它還支持各種人工智能策略,、不同模型的庫和服務引擎。 為了解決這些問題,,我們建議為AL構建一個高效的后端,。主動學習即服務(ALaaS)(見圖1)能夠通過利用單個或分布式多個設備在大型數(shù)據(jù)集上高效運行AL策略。具體來說,,它采用服務器-客戶端架構來執(zhí)行 AL 任務。因此,,該系統(tǒng)可以輕松安裝在筆記本電腦和公共云上,。安裝完成后,用戶可以按照我們的模板使用簡單的配置文件啟動系統(tǒng),。然后,,系統(tǒng)將以高效的流水線方式運行所有任務。同時,,將使用更多加速技術,,如數(shù)據(jù)緩存和批處理,以進一步加速AL進程,。除此之外,,我們的系統(tǒng)還考慮了可訪問性和模塊化,使得非專家也可以輕松地使用我們的AL庫中存儲的AL策略,,而專家可以針對更多場景提出更高級的AL策略,。 實驗表明,我們的ALaaS在延遲和吞吐量方面優(yōu)于所有其他基線,。進一步的消融研究表明了我們的設計的有效性,,并且揭示了更具洞察力的結論,。 相關工作 本節(jié)介紹了相關工作,包括3類:主動學習(AL)算法和工具,、以數(shù)據(jù)為中心的AI和MLOps,。 表1 主動學習(AL)開源工具的比較。我們的ALaaS提供了“機器學習即服務”的實踐,,大大提高了AL效率,。 2.1 人工智能算法和工具 我們將AL策略分為3類,即基于多樣性,、基于不確定性和混合策略抽樣,。基于多樣性的方法旨在從整個數(shù)據(jù)集中選擇信息量最大的樣本來表示它,;基于不確定性的方法旨在選擇目前的ML模型無法可靠識別的樣本,,然后使用這些樣本進一步改進ML模型;混合方法結合了上述兩種方法,。我們的系統(tǒng)支持所有這些方法,,并能更有效地運行它們。 目前已經(jīng)開發(fā)了許多使學術界和工業(yè)界都受益的開源AL工具,,包括ModAL,、DeepAL、Libact和ALiPy,。我們的ALaaS受到這些工具的啟發(fā),,并通過采用MLOps概念進一步提高了AL效率和可訪問性。表1總結了詳細的比較,。 2.2 以數(shù)據(jù)為中心的人工智能 以數(shù)據(jù)為中心的人工智能的提出是為了通過分析數(shù)據(jù)集來提高人工智能應用程序的性能,,而不是只關注模型。Landing.AI最近舉辦的以數(shù)據(jù)為中心的人工智能競賽和研討會展示了來自學術界和工業(yè)界的許多令人興奮的研究,。受這項開創(chuàng)性工作的啟發(fā),,許多以數(shù)據(jù)為中心的方法被提出用于不同的領域,包括NLP,、CV,、Robotics等。此外,,還建立了一個新的基準,,以推動以數(shù)據(jù)為中心的人工智能研究。據(jù)我們所知,,ALaaS是第一個從以數(shù)據(jù)為中心的角度實現(xiàn)高效AL的MLOps系統(tǒng),。 2.3 MLOps MLOps(機器學習運維)旨在簡化ML模型開發(fā)并降低人工智能應用程序的維護成本。許多MLOps系統(tǒng)已被提出用于以數(shù)據(jù)為中心的人工智能和以模型為中心的人工智能。從以數(shù)據(jù)為中心的觀點來看,,標簽工具(如labelme),、數(shù)據(jù)清理工具(如ActiveClean)、數(shù)據(jù)漂移監(jiān)視器等都可以視為MLOps系統(tǒng),。從以模型為中心的角度來看,,我們有模型存儲系統(tǒng)、模型持續(xù)集成工具,、訓練平臺,、部署平臺等。與這些系統(tǒng)不同,,ALaaS是專門為更高效地運行AL任務而設計的,。 此外,科技巨頭開始為MLOps構建端到端云平臺(如TFX,SageMaker,Ludwig),,我們的ALaaS可以成為這些系統(tǒng)的一個很好的補充插件,。 系統(tǒng)設計和架構 本節(jié)首先重點介紹了我們的主動學習即服務(ALaaS),包括三個關鍵功能,,然后詳細介紹了系統(tǒng)核心模塊的設計,,如圖1所示。 3.1 ALaaS的亮點 我們強調了系統(tǒng)提供的三個關鍵特性,,即效率,、可訪問性和模塊性。這些功能也是我們的設計原則,,即使專家(如數(shù)據(jù)科學家和機器學習(ML)工程師)和非專家(如領域知識很少的客戶)均能使用,。 (1)高效 主動學習(AL)總是面對要標注的大規(guī)模數(shù)據(jù)集,一些AL甚至采用多個計算密集型深度學習(DL)模型,。因此,,有效地處理這些數(shù)據(jù)集和模型對于加快ML應用程序開發(fā)和節(jié)省用戶的使用成本至關重要。 (2)可訪問性 為了進一步降低應用程序障礙并提高采用率,,AL系統(tǒng)應確保AL非專家能夠輕松使用它,,并避免編寫太多代碼,。我們的ALaaS遵循這一原則,,通過實施具有豐富配置的集裝箱化AL服務來幫助用戶快速入門,從而實現(xiàn)流暢的用戶體驗,。 (3)模塊化 人工智能發(fā)展迅速,,尤其是在深度學習的推動下,需要大量數(shù)據(jù)進行訓練,,使AL可訪問且不應妨礙AL或ML專家對其進行高級使用,。因此,我們的系統(tǒng)以高度模塊化的方式設計,,使專家能夠輕松地原型化,、擴展和部署最先進的(SOTA)AL方法,。 3.2 ALaaS體系結構 該系統(tǒng)采用服務器-客戶端架構,將復雜的AL算法抽象為基于web的服務,,實現(xiàn)開箱即用的用戶體驗,。此外,我們的系統(tǒng)提供了一個模塊化數(shù)據(jù)管理器和一個AL策略庫,,在AL的應用中解耦了兩個關鍵過程:大數(shù)據(jù)操作(如數(shù)據(jù)索引和存儲),、AL策略開發(fā)和選擇。 圖2:已部署的ALaaS系統(tǒng),。AL客戶端將數(shù)據(jù)URI發(fā)送到AL服務器,,數(shù)據(jù)將在那里下載。然后,,AL服務器將數(shù)據(jù)樣本發(fā)送給不同的工作人員進行AL處理,。 (1)服務器和客戶端 服務器-客戶端體系結構使得從領域專家到幾乎不了解AL的ML初學者等不同級別的用戶都可以上手。它可以部署到個人筆記本電腦和公共云上,。我們采用部署到AWS的ALaaS(見圖2)作為示例,,詳細介紹了整個工作流程。首先,,用戶只需按照提供的模板準備一個配置文件,,包括基本設置,如數(shù)據(jù)集路徑和AL方法,,如圖3所示,。然后,用戶只需要很少的代碼行(LoCs),,就可以啟動AL客戶端和AL服務器,。接下來,用戶將其未標記的數(shù)據(jù)集推送到AL服務器,,這些數(shù)據(jù)集可以存儲在本地磁盤或AWS S3中,。 圖3 可以使用YML文件輕松配置和啟動AL服務 從AL客戶端獲得數(shù)據(jù)集統(tǒng)一資源標識符(URI)后,AL服務器將下載數(shù)據(jù)集,,并以流水線的方式使用特定的AL策略進行處理,,如圖4所示。通過這種簡單的優(yōu)化,,處理速度可以達到比其他開源平臺快10倍(見第4.2節(jié)),。同時,AL服務器將在數(shù)據(jù)管理器的幫助下為數(shù)據(jù)集中的每個樣本分配唯一ID,,從而為其編制索引,。這些ID將由AL策略使用。 圖4 傳統(tǒng)的基于池的學習方法(a)、(b)和我們提出的ALaaS(c)之間的數(shù)據(jù)流比較,。這些工作流顯示了數(shù)據(jù)在多輪AL中如何以不同的方法在機器中流動,。紅色框表示下載階段的數(shù)據(jù)樣本,藍色框表示處理階段的數(shù)據(jù)樣本,,綠色框表示AL推理階段的數(shù)據(jù)樣本,,帶有對角填充的框表示沒有過程。方框內的數(shù)字表示不同輪的AL,。 最后,,服務器將下載的樣本分發(fā)給優(yōu)化推理工作者,并使用ML作為后端進行推理,。根據(jù)預定義的AL策略,,AL服務器將做出決策并生成一份報告,其中包括要標注的選定樣本的URI,。因此,,AL服務器只需要將URI返回給AL客戶端,避免從AL服務器下載選定的樣本,。 (2)數(shù)據(jù)管理器 數(shù)據(jù)管理器管理著系統(tǒng)中數(shù)據(jù)集的生命周期,。首先,它接收用戶的數(shù)據(jù)集,,并將其元數(shù)據(jù)(例如名稱,、所有者等)持久化,以進行數(shù)據(jù)管理,。其次,,在系統(tǒng)運行期間,它將索引數(shù)據(jù)樣本,,以避免冗余數(shù)據(jù)移動和批處理數(shù)據(jù),,從而實現(xiàn)高效的GPU進程。同時,,它為NLP,、CV和音頻等不同任務提供了豐富的數(shù)據(jù)轉換功能。此外,,對于不同類型的AL方法,,數(shù)據(jù)管理器可以配備相應的處理方法以提高可用性。 (3)AL策略庫(AL Strategy Zoo) AL策略庫提煉并存儲了許多AL策略,,包括基于不確定性,、貝葉斯,、基于密度,、批處理模式等,它還為高級用戶提供了一個基類,用于繼承和擴展AL到新場景,。 (4)其他工具 為了進一步降低使用AL的障礙并提高效率,,該系統(tǒng)還提供了許多實用的功能。例如,,如圖1所示,,模型庫旨在連接許多公共模型中心,如HuggingFace和TorchHub,,并從中獲得預先訓練的模型,。其次,如圖2所示,,數(shù)據(jù)緩存用于提高AL計算效率,,使用服務引擎的工作人員將調用不同的ML服務后端,以加快ML模型推理,。 系統(tǒng)評估 本節(jié)介紹了我們系統(tǒng)的定量評估,。我們首先將我們的系統(tǒng)與其他開源平臺進行比較。然后,,我們從不同的角度對我們的系統(tǒng)進行基準測試,,以證明其效率和可訪問性。 4.1 評估設置 硬件和軟件 我們在AWS EC2和MacBook筆記本電腦上評估了該系統(tǒng),后端推理軟件是Triton推理服務器,。 數(shù)據(jù)集 我們使用CIFAR-10數(shù)據(jù)集進行實驗,。它包括50000個訓練圖像和10000個測試圖像。 模型 我們使用廣泛部署的ResNet-18模型來評估系統(tǒng)性能,,并對不同的AL策略和AL設置進行基準測試,。 4.2 與其他開源工具的比較 第一個實驗比較了ALaaS與其他基準工具的效率。 實驗設置 在本實驗中,,我們模擬了一個單輪AL過程,,該過程應用AL方法掃描整個數(shù)據(jù)集以生成子池子,該子池子包括將用于進一步改進現(xiàn)有ML模型的樣本,。具體而言,,我們首先從CIFAR-10訓練集中隨機選擇10000張圖像來訓練ML模型作為初始模型。接下來,,我們使用不同的AL工具在AWS 3x.大型CPU/GPU EC2上為經(jīng)過訓練的模型提供服務,。對于所有工具,我們使用相同的AL策略,,稱為最小置信抽樣,。最后,我們利用這些工具從訓練集中剩余的40000個圖像中選擇10000個樣本,,并比較它們的延遲和吞吐量,。 結果與見解 結果如表2所示,,與其他工具相比,我們的ALaaS實現(xiàn)了最低的延遲和最高的吞吐量,,同時仍保持相同的精度,。這種效率的提高可歸因于兩方面。首先,,我們的ALaaS實現(xiàn)了階段級并行,,從而減少了設備空閑時間;其次,,ALaaS采用現(xiàn)有的ML推理服務器來加速模型推理,。 表2 不同開源工具之間的性能評估。與所有基準工具相比,,ALaaS具有最低的延遲和最高的吞吐量,。 此外,我們評估了我們的ALaaS不同預算的中間結果,,如圖5所示,,隨著預算的增加,將選擇更多的樣本,,精確度也將提高,,這進一步證明了我們系統(tǒng)的有效性。 圖5:不同AL預算的Top-1和Top-5精度(ACC) 4.3 ALaaS的特征 我們進一步使用不同的系統(tǒng)設置對我們的ALaaS進行基準測試,。第一個實驗是評估在我們的系統(tǒng)中重新實現(xiàn)的不同AL策略,,第二個實驗探討了Batch Size對系統(tǒng)效率的影響。 4.3.1 AL策略影響 我們的ALaaS已經(jīng)在模型庫中為用戶提供了許多開箱即用的AL策略,。本實驗從準確性和效率的角度評估了ALaaS重新實施的這些策略,,以提供更多的見解。所有設置與上一個實驗中相同,。 結果與見解 不同方法的精度如圖6a所示,。Core set實現(xiàn)了最高的精度,這并不令人驚訝,,因為它是為計算機視覺(CV)任務中的CNN設計的,。同時,K-Center貪心(KCG)和最小置信度(LC)是第2和第3高的精度,,盡管提出得很早,。這告訴我們,即使在深度學習(DL)時代,,傳統(tǒng)方法仍然發(fā)揮著至關重要的作用,,可以與深度學習很好地合作。吞吐量如圖6b所示,。LC的吞吐量最高,,而Core set的吞吐量最低,。結合精度和吞吐量結果,我們可以得出結論,,在LC平衡時,Core set的精度改進來自重型設計,,而LC很好地平衡了精度和效率之間的平衡,。 總之,ALaaS提供了許多具有清晰準確性和效率報告的方法,,因此用戶可以根據(jù)自己的場景進行選擇,。 圖6 CIFAR-10數(shù)據(jù)集上ResNet-18的一輪AL性能,使用不同的AL策略(即最小置信度(LC),、邊際置信度(MC),、比率置信度(RC)、熵采樣(ES),、K-Center貪心(KCG),、K-means采樣、Core-set和多樣化小批量(DBAL)),。下限基線使用隨機抽樣(random)策略,,而上限基線使用整個數(shù)據(jù)集進行訓練。 4.3.2 Batch Size影響 實驗設置 我們評估了Batch Size對兩種部署場景的影響,,即專用服務器和AWS云,。具體來說,我們首先將CIFAR-10數(shù)據(jù)集分別存儲在私有FTP服務器和AWS S3上,,然后我們在筆記本電腦上啟動ALaaS來模擬端到端的AL過程,,包括從其他設備下載數(shù)據(jù)、預處理數(shù)據(jù)以及使用AL策略選擇AL,。其他設置與第一個實驗相同,。 圖7 CIFAR-10上ResNet-18基于一個循環(huán)池的AL的端到端吞吐量,具有不同的AL推斷Batch Size,。在私有FTP服務器(圖7a)和S3(圖7b)上存儲圖像都顯示了端到端吞吐量相對于推斷Batch Size的單調增長,。 結果與見解 如圖7所示,我們的ALaaS可以在兩種不同批量的環(huán)境中穩(wěn)定有效地管理整個流程,。此外,,從圖7中,我們發(fā)現(xiàn)了許多有趣的現(xiàn)象,。首先,,Batch Size=1和Batch Size=2具有非常接近的吞吐量。第二點是從Batch Size=2到Batch Size=8的增長趨勢最為顯著,。第三,,Batch Size=16后,,增長將停止。我們將原因歸結為當Batch Size較小時,,傳輸時間占總處理時間的很大比例,。因此,吞吐量的提高在開始時是微乎其微的,。后來,,批處理計算時間成為總處理時間的最大部分,因此改進非常顯著,。最后,,當Batch Size達到計算容量時,增加停止,。 總結 本文提出了一種新的MLOps系統(tǒng),,稱為ALaaS,用于以數(shù)據(jù)為中心的人工智能,。ALaaS采用機器學習即服務(Machine-Learning-as-Service)的理念,,并實現(xiàn)了服務器-客戶端架構,因此用戶可以將AL用作web服務,。同時,,它將人工智能過程抽象為多個組件,并開發(fā)了幾個模塊,,包括數(shù)據(jù)管理器,、人工智能策略庫和實用功能,以支持它們,。更重要的是,,ALaaS采用階段級并行(流水線方式)、緩存和批處理來提高AL運行效率,。實驗表明,,我們的系統(tǒng)比所有其他基準工具具有更低的延遲和更高的吞吐量。 END |
|