目前Foundation Model或者是大模型,特別地火,接下來介紹什么是大模型,大模型的基本概念;接著看看大模型的實際作用,然后基于這些實際作用,我們簡單展開幾個應用場景。最后就是介紹支持大模型訓練的AI框架。
在往下看之前,想拋出幾個問題,希望引起大家的一個思考:
1)為什么預訓練網絡模型變得越來越重要?
2)預訓練大模型的未來的發展趨勢,仍然是以模型參數量繼續增大嗎?
3)如何預訓練一個百億規模的大模型?
2021年8月份,李飛飛和100多位學者聯名發表一份200多頁的研究報告《On the Opportunities and Risk of Foundation Models》,深度地綜述了當前大規模預訓練模型面臨的機遇和挑戰。
在文章中,AI專家將大模型統一命名為Foundation Models,可以翻譯為基礎模型或者是基石模型,論文肯定了Foundation Models對智能體基本認知能力的推動作用,同時也指出大模型呈現出「涌現」與「同質化」的特性。
所謂「涌現」代表一個系統的行為是隱性推動的,而不是顯式構建的;「同質化」是指基礎模型的能力是智能的中心與核心,大模型的任何一點改進會迅速覆蓋整個社區,但其缺陷也會被所有下游模型所繼承。
以GPT系列為例:
1)GPT-1是上億規模的參數量,數據集使用了1萬本書的BookCorpus,25億單詞量;
2)GPT-2參數量達到了15億規模,其中數據來自于互聯網,使用了800萬在Reddit被鏈接過的網頁數據,清洗后越40GB(WebText);
3)GPT-3參數規模首次突破百億,數據集上將語料規模擴大到570GB的CC數據集(4千億詞)+WebText2(190億詞)+BookCorpus(670億詞)+維基百科(30億詞)。
可以看到,數據上面,每一代均相比前一代有了數量級的飛躍,無論是語料的覆蓋范圍、豐富度上都是絕對規模的增長??梢灶A測到,下一代萬億模型,使用的數據如果相比GPT-3在質量、來源和規模上沒有量級的變化,很難有質的提升。
大模型在產學各界掀起一陣陣巨浪,背后彰顯的除了分布式并行和對AI算法的掌控能力,還是一次大公司通過AI工程的創舉,利用大規模AI集群來進行掰手腕的故事。
隨著網絡模型越來越大,單機單卡、一機多卡、甚至多機多卡的小規模集群,只要網絡模型參數量一旦超過十億以上的規模,就很難用現有的資源訓練了。于是有的研究者就會提出質疑:
這里值得澄清的一點是,目前類似于GPT-3這樣的大模型,在零樣本和小樣本的學習能力,主要來源于預訓練階段對海量語料的大量記憶,其次是語義編碼能力、遠距離依賴關系建模能力和文本生成能力的強化,以及自然語言進行任務描述等設計。而在訓練目標方面,并沒有顯式的引導模型去學習小樣本泛化能力,因此在一些小眾的語料、邏輯理解、數學求解等語言任務上出現翻車的現象也是能理解的。
雖然大模型剛提出的時候,質疑的聲音會有,但不可否認的是,大模型做到了早期預訓練模型做不到、做不好的事情,就好像自然語言處理中的文字生成、文本理解、自動問答等下游任務,不僅生成的文本更加流暢,甚至內容的訴實性也有了顯著的改善。當然,大模型最終能否走向通用人工智能仍是一個未知數,只是,大模型真的是有希望帶領下一個很重要的人工智能賽道。
有了大模型的基本介紹,我們來看看大模型的具體作用。
下面顯示了深度學習技術在ImageNet圖像數據集,隨著新模型的提出,準確率不斷取得突破的趨勢。右圖顯示在網絡預訓練模型出來以后,機器對自然語言理解能力的不斷提升。
雖然深度學習使得很多通用領域的精度和準確率得到很大的提升,但是AI模型目前存在很多挑戰,最首要的問題是模型的通用性不高,也就是A模型往往專用于特定A領域,應用到領域B時效果并不好。
目前AI面對行業、業務場景很多,人工智能需求正呈現出碎片化、多樣化的特點。從開發、調參、優化、迭代到應用,AI模型研發成本極高,且難以滿足市場定制化需求,所以網上有的人會說現階段的AI模型研發處于手工作坊式?;旧弦粋€公司想要用AI賦能自身的業務,多多少少也得招聘懂AI的研發人員。
為了解決手工作坊式走向工場模式,大模型提供了一種可行方案,也就是“預訓練大模型+下游任務微調”的方式。大規模預訓練可以有效地從大量標記和未標記的數據中捕獲知識,通過將知識存儲到大量的參數中并對特定任務進行微調,極大地擴展了模型的泛化能力。例如,在NLP領域,預訓練大模型共享了預訓任務和部分下游任務的參數,在一定程度上解決了通用性的難題,可以被應用于翻譯,問答,文本生成等自然語言任務。
大模型的自監督學習方法,可以減少數據標注,在一定程度上解決了人工標注成本高、周期長、準確度不高的問題。由于減少了數據標準的成本,使得小樣本的學習也能達到比以前更好的能力,并且模型參數規模越大,優勢越明顯,避免開發人員再進行大規模的訓練,使用小樣本就可以訓練自己所需模型,極大降低開發使用成本。
2018年Bert首次提出,便一舉擊敗 11 個 NLP 任務的 State-of-the-art 結果,成為了 NLP 界新的里程碑,同時為模型訓練和NLP領域打開了新的思路:在未標注的數據上深入挖掘,可以極大地改善各種任務的效果。要知道,數據標注依賴于昂貴的人工成本,而在互聯網和移動互聯網時代,大量的未標注數據卻很容易獲得。
第三點,從深度學習發展前10年的歷程來看,模型精度提升,主要依賴網絡在結構上的變革。 例如,從AlexNet到ResNet50,再到NAS搜索出來的EfficientNet,ImageNet Top-1 精度從58提升到了84。但是,隨著神經網絡結構設計技術,逐漸成熟并趨于收斂,想要通過優化神經網絡結構從而打破精度局限非常困難。近年來,隨著數據規模和模型規模的不斷增大,模型精度也得到了進一步提升,研究實驗表明,模型和數據規模的增大確實能突破現有精度的一個局限。
以谷歌2021年發布的視覺遷移模型Big Transfer,BiT為例。擴大數據規模也能帶來精度提升,例如使用ILSVRC-2012(128 萬張圖片,1000 個類別)和JFT-300M(3億張圖片,18291個類別)兩個數據集來訓練ResNet50,精度分別是77%和79%。另外使用 JFT-300M訓練ResNet152x4,精度可以上升到87.5%,相比ILSVRC-2012+ResNet50結構提升了10.5%。
既然大模型能突破訓練精度的極限,還能夠兼容下游任務。那有沒有一些具體的應用場景介紹呢?
智源研究院針對2021年北京冬奧會,提出了“悟道”大模型用于冬奧手語播報數字人,提供智能化的數字人手語生成服務,方便聽障人士也能收看賽事專題報道,提升他們的社會參與度和幸福感。這個項目還得到了北京市殘疾人聯合會和市殘聯聾人協會的大力支持。
當然也缺少不了最近雙十一,雙十一是淘寶系統服務最繁忙的一天,如何有效地應對成千上億的用戶咨詢?基于達摩院開發的M6大模型智能生成內容文案,方便智能客服進行上下文理解和問題回答生成。另外大模型的多模態特征提取能力,也能進行商品屬性標簽補充、認知召回等下游任務。
目前部分深度學習框架,例如Pytorch和Tensorflow,沒有辦法滿足超大規模模型訓練的需求,于是微軟基于Pytroch開發了DeepSpeed,騰訊基于Pytroch開發了派大星PatricStar,達摩院同基于Tensoflow開發的分布式框架Whale。像是華為昇騰的MindSpore、百度的PaddlePaddle,還有國內的追一科技OneFlow等廠商,對超大模型訓練進行了深度的跟進與探索,基于原生的AI框架支持超大模型訓練。
下面展開DeepSpeed和MindSpore來簡單了解下。
2021年2月份微軟發布了DeepSpeed,最核心的是顯存優化技術ZeRO(零冗余優化器),通過擴大規模、內存優化、提升速度、控制成本,四個方面推進了大模型訓練能力?;贒eepSpeed微軟開發了擁有170億參數的圖靈自然語言生成模型(Turing-NLG)。(2021年5月份發布的ZeRO-2,更是支持2000億參數的模型訓練),另外微軟聯手英偉達,使用4480塊A100組成的集群,發布了5300億參數的NLP模型威震天-圖靈(Megatron Turing-NLG)。
當然,作為國內首個支持千億參數大模型訓練的框架MindSpore這里面也提一下。在靜態圖模式下,MindSpore融合了流水線并行、模型并行和數據并行三種并行技術,開發者只需編寫單機算法代碼,添加少量并行標簽,即可實現訓練過程的自動切分,使得并行算法性能調優時間從月級降為小時級,同時訓練性能相比業界標桿提升40%。
動態圖模式下,MindSpore獨特的函數式微分設計,能從一階微分輕易地擴展到高階微分,并進行整圖性能優化,大幅提升動態圖性能;結合創新的通訊算子融合和多流并行機制,較其它AI框架,MindSpore動態圖性能提升60%。
最后就是針對大模型的訓練,網上很多人會說,大模型需要“大數據+大算力+強算法”三駕馬車并駕齊驅。
ZOMI并不是非常認同這個觀點,大模型首先是需要規模更大的海量數據,同時需要龐大的算力去支撐這個說沒錯。但是整體來說,這是一個系統工程,從并行訓練到大規模并行訓練,其中就包括對AI集群調度和管理,對集群通訊帶寬的研究,對算法在模型的并行、數據的并行等策略上與通訊極限融合在一起考慮,求解在有限帶寬前提下,數據通訊和計算之間的最優值。
目前在大模型這個系統工程里面,最主要的競爭對手有基于英偉達的GPU+微軟的DeepSpeed,Google的TPU+Tensorflow,當然還有華為昇騰Atlas800+MindSpore三大廠商能夠實現全面的優化。至于其他廠商,大部分都是基于英偉達的GPU基礎上進行一些創新和優化。最后就是,核心技術在市場上并不是最重要的,誰能夠為客戶創造更大的價值,才是最后的贏家。
|