0
本文作者: 我在思考中 | 2021-10-09 17:28 |
過去十年中,機(jī)器學(xué)習(xí)(ML)已經(jīng)讓無數(shù)應(yīng)用和服務(wù)發(fā)生了天翻地覆的變化。隨著其在實(shí)際應(yīng)用中的重要性日益增強(qiáng),這使人們意識(shí)到需要從機(jī)器學(xué)習(xí)系統(tǒng)(MLOps)視角考察機(jī)器學(xué)習(xí)遇到的新挑戰(zhàn)。
那么這些新挑戰(zhàn)是什么呢?
近日,加州大學(xué)一位年僅17歲的博士生,在一篇博文中指出:
機(jī)器學(xué)習(xí)系統(tǒng)是ML在實(shí)踐中的新領(lǐng)域,該領(lǐng)域在計(jì)算機(jī)系統(tǒng)和機(jī)器學(xué)習(xí)之間發(fā)揮著橋梁性的作用。所以,應(yīng)從傳統(tǒng)系統(tǒng)的思維中考察數(shù)據(jù)收集、驗(yàn)證以及模型訓(xùn)練等環(huán)節(jié)的“新情況”。
圖注:機(jī)器學(xué)習(xí)系統(tǒng)架構(gòu)
以下是原文,AI科技科技評(píng)論做了不改變?cè)敢獾木幾g和刪減
雖然研究人員偏向于使用現(xiàn)成的數(shù)據(jù)集,例如CIFAR或SQuAD,但從模型訓(xùn)練的角度來看,從業(yè)者往往需要手動(dòng)標(biāo)記和生成自定義數(shù)據(jù)集。但是,創(chuàng)建這樣的數(shù)據(jù)集非常昂貴,尤其是在需要領(lǐng)域?qū)I(yè)知識(shí)的情況下。
因此,數(shù)據(jù)收集是對(duì)系統(tǒng)開發(fā)者來說是機(jī)器學(xué)習(xí)中的一項(xiàng)主要挑戰(zhàn)。
當(dāng)前,對(duì)這個(gè)挑戰(zhàn)最成功的解決方案之一借用了系統(tǒng)和機(jī)器學(xué)習(xí)的研究。例如SnorkelAI采用了 "弱監(jiān)督數(shù)據(jù)編程 "(weakly-supervised data programming)的方法,將數(shù)據(jù)管理技術(shù)與自我監(jiān)督學(xué)習(xí)的工作結(jié)合了起來。
具體操作是:SnorkelAI將數(shù)據(jù)集的創(chuàng)建重新構(gòu)想為編程問題,用戶可以指定弱監(jiān)督標(biāo)簽的函數(shù),然后將其合并和加權(quán)以生成高質(zhì)量的標(biāo)簽。專家標(biāo)記的數(shù)據(jù)(高質(zhì)量)和自動(dòng)標(biāo)記的數(shù)據(jù)(低質(zhì)量)可以被合并和跟蹤,這樣能夠考慮到不同水平的標(biāo)簽質(zhì)量,以確保模型訓(xùn)練被準(zhǔn)確加權(quán)。
圖注:SnorkelAI結(jié)合了不同來源的標(biāo)簽,使模型能夠大限度聚集和改進(jìn)混合質(zhì)量的標(biāo)簽。
這一技術(shù)讓人聯(lián)想到數(shù)據(jù)庫(kù)管理系統(tǒng)中的數(shù)據(jù)融合,通過識(shí)別系統(tǒng)和ML的共同問題(組合數(shù)據(jù)來源),我們可以將傳統(tǒng)的系統(tǒng)技術(shù)應(yīng)用于機(jī)器學(xué)習(xí)。
數(shù)據(jù)驗(yàn)證是數(shù)據(jù)收集的后續(xù)工作。數(shù)據(jù)質(zhì)量是機(jī)器學(xué)習(xí)的關(guān)鍵問題,用一句俗話來說,就是 "垃圾進(jìn),垃圾出(garbage in, garbage out)"。因此,要想系統(tǒng)產(chǎn)生高質(zhì)量的模型,必須確保輸入的數(shù)據(jù)也是高質(zhì)量的。
解決這個(gè)問題,所需要的不僅是調(diào)整機(jī)器學(xué)習(xí)方法,更需要有調(diào)整系統(tǒng)的思維。幸運(yùn)的是,雖然對(duì)ML來說數(shù)據(jù)驗(yàn)證是一個(gè)新問題,但數(shù)據(jù)驗(yàn)證在業(yè)界早已有討論:
引用TensorFlow數(shù)據(jù)驗(yàn)證(TFDV)的論文:
TFDV的解決方案采用來自數(shù)據(jù)管理系統(tǒng)的 "戰(zhàn)斗考驗(yàn) (battle-tested)"解決方案——模式化。數(shù)據(jù)庫(kù)強(qiáng)制執(zhí)行屬性,以確保數(shù)據(jù)輸入和更新符合特定的格式。同樣,TFDV的數(shù)據(jù)模式也對(duì)輸入到模型中的數(shù)據(jù)執(zhí)行規(guī)則。
圖注:TensorFlow數(shù)據(jù)驗(yàn)證的基于模式的ML數(shù)據(jù)驗(yàn)證系統(tǒng)使用戶能夠防止生產(chǎn)系統(tǒng)中的數(shù)據(jù)輸入出現(xiàn)異常。
當(dāng)然,也有一些差異,反映了機(jī)器學(xué)習(xí)系統(tǒng)與傳統(tǒng)模式的不同??紤]到數(shù)據(jù)分布的變化,ML模式需要隨著時(shí)間的推移而演變和調(diào)整,還需要考慮在系統(tǒng)的生命周期內(nèi)可能對(duì)模型本身做出的改變。
很明顯,機(jī)器學(xué)習(xí)帶來了一種新型的系統(tǒng)挑戰(zhàn)。但是,這些系統(tǒng)帶來了很多舊東西的同時(shí)也帶來了新的東西。在我們尋求重塑車輪之前,我們應(yīng)該利用已有的東西。
ML從業(yè)者可能會(huì)驚訝于將模型訓(xùn)練作為系統(tǒng)優(yōu)化的一個(gè)領(lǐng)域。畢竟,如果說機(jī)器學(xué)習(xí)應(yīng)用中有一個(gè)領(lǐng)域真正依賴于ML技術(shù),那就是訓(xùn)練。但即便是這樣,系統(tǒng)研究也要發(fā)揮作用。
以模型并行化為例。隨著Transformers的興起,ML模型的規(guī)模都有了極大的增加。幾年前,BERT-Large僅僅只超過了345M的參數(shù),而現(xiàn)在Megatron-LM擁有超過萬億的參數(shù)。
這些模型的絕對(duì)內(nèi)存成本可以達(dá)到數(shù)百GB,且單一的GPU已經(jīng)承受不住。傳統(tǒng)的解決方案,即模型并行化,采取了一個(gè)相對(duì)簡(jiǎn)單的方法:為了分配內(nèi)存成本,將模型劃分到不同的設(shè)備。
傳統(tǒng)的模型并行化會(huì)受到神經(jīng)網(wǎng)絡(luò)架構(gòu)順序的影響。高效并行計(jì)算的機(jī)會(huì)是有限的。
但這種技術(shù)是有問題的:模型本質(zhì)是順序的,訓(xùn)練它需要在各層中前后傳遞數(shù)據(jù)。一次只能使用一個(gè)層,也只能使用一個(gè)設(shè)備。這意味著會(huì)導(dǎo)致設(shè)備利用率不足。
系統(tǒng)研究如何提供幫助?
考慮一個(gè)深度神經(jīng)網(wǎng)絡(luò)。將其分解為最基本的組件,可以將它看作一系列轉(zhuǎn)換數(shù)據(jù)的運(yùn)算器。訓(xùn)練僅指我們通過運(yùn)算器傳遞數(shù)據(jù),產(chǎn)生梯度,并通過運(yùn)算器反饋梯度,然后不斷更新的過程。
在這一級(jí)別上,該模型開始進(jìn)行類似于其他階段的操作——例如,CPU的指令流水線(instruction pipeline)。有兩個(gè)系統(tǒng),GPipe和Hydra,試圖利用這種并行的方式來應(yīng)用系統(tǒng)優(yōu)化的可擴(kuò)展性和并行性。
GPipe采用CPU指令并行的方式,將模型訓(xùn)練變成一個(gè)流水線問題。模型的每個(gè)分區(qū)都被認(rèn)為是流水線的不同階段,分階段進(jìn)行小型批次通過分區(qū),以最大限度地提高利用率。
流水線并行是順序模型并行中最先進(jìn)的技術(shù),它使訓(xùn)練在小型批次中并行。但同步開銷可能很昂貴,特別是在前向和后向的轉(zhuǎn)換中。
然而,請(qǐng)注意,在反向傳播中,階段是以相反的順序重復(fù)使用的。這意味著,在前向流水線完全暢通之前,反向傳播不能開始。盡管如此,這種技術(shù)可以在很大程度上加快模型的并行訓(xùn)練:8個(gè)GPU可以加速5倍!
Hydra采取了另一種方法,將可擴(kuò)展性和并行性分離成兩個(gè)不同的步驟。數(shù)據(jù)庫(kù)管理系統(tǒng)中的一個(gè)常見概念是 "溢出",即將多余的數(shù)據(jù)發(fā)送到內(nèi)存層次的較低的級(jí)別。Hydra利用了模型并行中的順序計(jì)算,并提出不活躍的模型分區(qū)不需要在GPU上。相反,它將不需要的數(shù)據(jù)交給DRAM,將模型分區(qū)在GPU上交換,從而模擬傳統(tǒng)模型并執(zhí)行。
Hydra的模型溢出技術(shù)(Hydra’s model spilling technique )將深度學(xué)習(xí)訓(xùn)練的成本分給DRAM而不是GPU內(nèi)存,同時(shí)保持了GPU執(zhí)行的加速優(yōu)勢(shì)。
這使我們可以一次只使用一個(gè)GPU進(jìn)行訓(xùn)練模型。那么,在此基礎(chǔ)上引入一定程度的任務(wù)并行性是微不足道的。每個(gè)模型,無論其大小,一次只需要一個(gè)GPU,所以系統(tǒng)可以同時(shí)充分利用每個(gè)GPU。其結(jié)果是在8個(gè)GPU的情況下,速度提高了7.4倍以上,接近最佳狀態(tài)。
但模型并行化只是系統(tǒng)研究幫助模型訓(xùn)練的開始。其他有前景的貢獻(xiàn)包括數(shù)據(jù)并行(如PyTorch DDP)、模型選擇(如Cerebro或模型選擇管理系統(tǒng))、分布式框架(Spark或Ray)等等。因此,模型訓(xùn)練是一個(gè)可以通過系統(tǒng)研究進(jìn)行優(yōu)化的領(lǐng)域。
說到底,構(gòu)建機(jī)器學(xué)習(xí)模型是為了使用。模型服務(wù)和預(yù)測(cè)是機(jī)器學(xué)習(xí)實(shí)踐中最關(guān)鍵的方面之一,也是系統(tǒng)研究影響最大的空間之一。
預(yù)測(cè)分為兩個(gè)主要設(shè)定:離線部署和在線部署。離線部署相對(duì)簡(jiǎn)單,它涉及不定期運(yùn)行單一且大批量預(yù)測(cè)工作。常見的設(shè)定包括商業(yè)智能、保險(xiǎn)評(píng)估和醫(yī)療保健分析。在線部署屬于網(wǎng)絡(luò)應(yīng)用,在這種應(yīng)用中,需要快速、低延遲的預(yù)測(cè),以滿足用戶查詢的快速響應(yīng)。
這兩種設(shè)定都有各自的需求和要求。一般來說,離線部署需要高吞吐量的訓(xùn)練程序來快速處理大量樣本。另一方面,在線部署一般需要在單個(gè)預(yù)測(cè)上有極快的周轉(zhuǎn)時(shí)間,而不是同時(shí)有許多預(yù)測(cè)。
系統(tǒng)研究改變了我們處理這兩項(xiàng)任務(wù)的方式。以Krypton為例,它把視頻分析重新想象為 "多查詢優(yōu)化"(MQO)任務(wù)的工具。
MQO并不是一個(gè)新領(lǐng)域——幾十年來它一直是關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì)的一部分。總體思路很簡(jiǎn)單:不同的查詢可以共享相關(guān)的組件,然后這些組件可以被保存和重復(fù)使用。Krypton指出,CNN的推論通常是在成批量的相關(guān)圖像上進(jìn)行的,例如視頻分析。
通常情況下,視頻的特征是高幀率,這意味著連續(xù)幀往往是比較相似的。幀1中的大部分信息在幀2中仍然存在。這里與MQO有一個(gè)明顯的平行關(guān)系:我們有一系列任務(wù),它們之間有共享的信息。
Krypton在第1幀上運(yùn)行一個(gè)常規(guī)推理,然后將CNN在預(yù)測(cè)時(shí)產(chǎn)生的中間數(shù)據(jù)具體化,或保存起來。隨后的圖像與第1幀進(jìn)行比較,以確定圖像的哪些地方發(fā)生了大的變化,哪些需要重新計(jì)算。一旦確定了補(bǔ)丁程序,Krypton就會(huì)通過CNN計(jì)算補(bǔ)丁的 "變化域",從而確定在模型的整個(gè)狀態(tài)下,哪些神經(jīng)元輸出發(fā)生了變化。這些神經(jīng)元會(huì)隨著變化后的數(shù)據(jù)重新運(yùn)行。其余的數(shù)據(jù)則只從基本幀中重復(fù)使用!
結(jié)果是:端到端訓(xùn)練提速超過4倍,數(shù)據(jù)滯后造成的精度損失很小。這種運(yùn)行時(shí)間的改進(jìn)對(duì)于需要長(zhǎng)期運(yùn)行的流媒體應(yīng)用至關(guān)重要。
Krypton在關(guān)注模型推理方面并不是唯一的。其他作品,如Clipper和TensorFlow Extended,通過利用系統(tǒng)優(yōu)化和模型管理技術(shù),提供高效和健全的預(yù)測(cè),解決了同樣的高效預(yù)測(cè)服務(wù)問題。
機(jī)器學(xué)習(xí)已經(jīng)徹底改變了我們使用數(shù)據(jù)和與數(shù)據(jù)互動(dòng)的方式。它提高了企業(yè)的效率,從根本上改變了某些行業(yè)的前景。但是,為了使機(jī)器學(xué)習(xí)繼續(xù)擴(kuò)大其影響范圍,某些流程必須得到改善。系統(tǒng)研究通過將數(shù)據(jù)庫(kù)系統(tǒng)、分布式計(jì)算和應(yīng)用部署領(lǐng)域的數(shù)十年工作引入機(jī)器學(xué)習(xí)領(lǐng)域,能夠提高機(jī)器學(xué)習(xí)的表現(xiàn)。
雖然機(jī)器學(xué)習(xí)非常新穎和令人興奮,但它的許多問題卻不是。通過識(shí)別相似之處和改善舊的解決方案,我們可以使用系統(tǒng)來重新設(shè)計(jì)ML。
作者簡(jiǎn)介
Kabir Nagrecha是加州大學(xué)圣地亞哥分校的博士生,由Arun Kumar指導(dǎo)。
13歲時(shí),通過提前入學(xué)計(jì)劃進(jìn)入大學(xué)。從那時(shí)起,就一直在工業(yè)界和學(xué)術(shù)界從事機(jī)器學(xué)習(xí)領(lǐng)域的研究。
曾獲得加州大學(xué)圣地亞哥分校卓越研究獎(jiǎng)、CRA杰出本科生研究員等榮譽(yù)。目前正在蘋果的Siri小組實(shí)習(xí)。他的研究側(cè)重于通過使用系統(tǒng)技術(shù)實(shí)現(xiàn)深度學(xué)習(xí)的可擴(kuò)展性。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。