幹掉「標題黨」,清華團隊又一開源力作!
作者:OpenBMB開源社群(GitHubDaily)
編輯:David
【新智元導讀】
寫公眾號文章什麼最頭疼?起標題!清華大學與OpenBMB開源社群推出的大模型趣味應用:「智取標題」,輸入正文內容,一鍵生成勁爆標題!
作為一個起名困難戶,高中寫作文最困擾我的就是寫好文章卻不知道起什麼題目,開始做公眾號以後,每次想標題也都要掉一大把頭髮……
最近,終於讓我在 GitHub 發現了「取名廢」之光,由清華大學與 OpenBMB 開源社群推出的大模型趣味應用:「智取標題」,輸入正文內容就能一鍵生成勁爆標題!
開箱即用,試過後我只能說:真香!
線上體驗:
https://live。openbmb。org/ant
GitHub:
https://github。com/OpenBMB/CPM-Live
提到這個標題黨神器,就不得不先好好聊一聊它的「本體」——大模型 CPM-Ant。
CPM-Ant 作為國內首個直播訓練百億大模型, 訓練耗時 68 天,於 2022 年 8 月 5 日完成,並由 OpenBMB 正式釋出!
五大卓越特性
四大創新突破
訓練過程 低成本且環境友好!
最重要的是——完全開源!
作為首個直播訓練中文大模型,CPM-Ant 在大模型訓練、微調、壓縮、推理、應用等環節均提供了一份可行的實踐方案,希望能為不同的關注者提供不同的幫助與參考。
下面,讓我們一起來看看 CPM-Ant 釋出成果內容報告吧!
模型概覽
CPM-Ant 是一個開源的中文預訓練語言模型,擁有 10B 引數,也是 CPM-Live 直播訓練過程中的第一個里程碑。
整個訓練過程低成本且環境友好,不需要高昂的硬體要求和執行成本,基於 增量微調(delta tuning)方法,在 CUGE 基準測試中取得了優異的結果。
CPM-Ant 相關程式碼、日誌檔案和模型引數在一個開放的許可協議下完全開源。除了完整的模型,OpenBMB 還提供了各種壓縮版本以適應不同的硬體配置。
CPM-Ant 的五大卓越特性:
(1)計算高效
透過 BMTrain[1] 工具包,能夠充分利用分散式計算資源的能力來高效訓練大模型。
CPM-Ant 的訓練持續了 68 天,花費了 43 萬人民幣,是谷歌訓練 T5-11B 模型約 130 萬美元費用的 1/20。訓練 CPM-Ant 的溫室氣體排放量約為 4872kg COe,而訓練 T5-11B 的排放量為 46。7t COe[9] ,CPM-Ant 的方案約為其排放量的 1/10。
(2)效能優異
藉助 OpenDelta[3] 工具,能夠非常方便地透過增量微調將 CPM-Ant 適配到下游任務。
實驗表明,CPM-Ant 僅僅微調了 6。3M 引數就在 3/6 個 CUGE 任務上取得了最好的結果。這一結果超越了其他全引數微調的模型,舉例來說:CPM-Ant 的微調引數量僅為 CPM2(微調了 11B 引數) 的 0。06%。
(3)部署經濟
藉助BMCook[7] 和 BMInf[4] 工具包,能夠在有限的計算資源下驅動 CPM-Ant。
基於 BMInf ,能夠替代計算叢集 在單塊 GPU 上進行大模型推理(即便是一塊 GTX 1060 這樣的消費級顯示卡)。為了使 CPM-Ant 的部署更加經濟, OpenBMB 使用 BMCook 進一步將原始的 10B 模型壓縮為不同的版本。壓縮後的模型(7B,3B,1B,300M)能夠適應不同低資源場景下的需求。
(4)使用便捷
不管是原始 10B 模型還是相關的壓縮版本,通過幾行程式碼就能夠輕鬆地載入與執行。
OpenBMB 也會將 CPM-Ant 加入到 ModelCenter[8] 中,對模型的進一步開發會變得更加容易。
(5)開放民主
CPM-Ant 的訓練過程完全開放。
OpenBMB 釋出了所有的程式碼、日誌檔案和模型存檔並提供開放獲取。CPM-Ant 也採用了允許商業化的開放許可協議。
一份完整的大模型訓練實踐
對於有能力進行大模型訓練的廠商與研究機構,CPM-Ant 訓練過程提供了一份完整的中文大模型訓練實戰記錄。
OpenBMB 釋出了 CPM-Live 系列模型的 模型設計、訓練方案、資料需求和實現程式碼。基於 CPM-Live 的模型架構,能夠方便快速地設計實現大模型訓練方案並整理相關的業務資料,完成模型預研和資料準備工作。
官方網站中記錄了訓練過程中的 全部訓練動態,包括損失函式、學習率、已學習資料、吞吐量、梯度大小、花費成本曲線,以及模型內部引數均值和標準差實時展示,透過這些訓練動態,使用者能夠快速診斷模型訓練過程是否出現問題。
模
型訓練內部引數實時展示
此外,OpenBMB 的研發同學每天實時更新 訓練記錄總結,總結內容包括損失值、梯度值、總體進展,還記錄了遇到的一些問題和訓練過程中的 bug,方便使用者提前瞭解模型訓練過程中的可能會遇到的各種「坑」。
在模型訓練「風平浪靜」的日子,研發小哥也會丟擲一些名言名句、介紹一些最新論文、甚至發起猜謎活動。
日誌中的一次猜謎活動
除此之外,OpenBMB 還提供了 成本經濟 的 訓練方案,對於實際有大模型訓練需求的企業,透過相關訓練加速技術,訓練成本已經降低到可以接受的水平。
使用 BMTrain[1] 工具包,百億大模型 CPM-Ant 訓練的算力花費僅 43 萬人民幣(當前花費依照公有云價格計算,實際成本會更低),是 11B 大模型 T5 外界估算成本 130 萬美元的約 1/20!
一份屢創 SOTA 的高效微調方案
CPM-Ant 如何幫助我們進行下游任務適配?
對於大模型研究者,OpenBMB 提供了一份基於引數高效微調的大模型效能評測方案,方便快速進行下游任務適配並評測模型效能。
使用引數高效微調,即增量微調(delta tuning)來評估 CPM-Ant 在六個下游任務上的效能。實驗中採用了 LoRA[2] ,它在每個注意層中插入了兩個可調整的低秩矩陣,並凍結了原始模型的所有引數。使用這種方法,每個任務只微調了 6。3M 的引數,僅佔總引數的 0。067%。
在 OpenDelta[3] 的幫助下,OpenBMB 進行了所有的實驗,而沒有修改原始模型的程式碼。需要指出的是,在下游任務上評測 CPM-Ant 模型時,沒有使用任何資料增強的方法。實驗結果如下表所示:
可以看到,在僅微調極少引數的情況下,OpenBMB 的模型在三個資料集上的效能已經超過了 CPM-2 和源 1。0。
有些任務(例如 LCSTS)在微調引數極少時可能會比較難以學習, CPM-Live 的訓練過程將會持續進行,在各個任務上的效能也會被進一步打磨。
感興趣的同學,可訪問下方 GitHub 連結,搶先體驗下 CPM-Ant 和 OpenDelta,進一步探索 CPM-Ant 在其他任務上的能力!
https://github。com/OpenBMB/CPM-Live
一系列硬體友好的推理方式
大模型效能固然驚豔,但高昂的硬體要求和執行成本一直困擾著許多使用者。對於大模型使用者,OpenBMB提供了一系列硬體友好的使用方式,能夠較為方便地在不同硬體環境下執行不同的模型版本。
使用 BMInf[4] 工具包, CPM-Ant 可以在單卡 1060 這樣的 低資源環境 中執行!
除此之外,OpenBMB 還將 CPM-Ant 進行了壓縮。這些壓縮的模型包括 CPM-Ant-7B/3B/1B/0。3B。而所有這些模型壓縮尺寸都可以對應於現有的開源預訓練語言模型的經典尺寸。
考慮到使用者可能會在釋出的檢查點上進行進一步的開發,OpenBMB 主要使用 任務無關的結構化剪枝 來壓縮 CPM-Ant。剪枝過程也是漸進的,即從 10B 到 7B,從 7B 到 3B,從 3B 到 1B,最後從 1B 到 0。3B。
在具體的剪枝過程中,OpenBMB 會訓練一個 動態的可學習的掩碼矩陣,然後用這個掩碼矩陣來 裁剪相應的引數。最後,根據掩碼矩陣的閾值修剪引數,該閾值是根據目標稀疏度確定的。更多壓縮的細節可以參考技術部落格[5] 。
下表展示了模型壓縮的結果:
硬核的內容講完了,那麼大模型到底怎麼幫我們「取標題」呢?
一款出乎意料的大模型趣味應用
基於 CPM-Ant,所有大模型開發者與愛好者都可以開發感興趣的文字趣味應用。
為了進一步驗證模型的有效性並提供範例,OpenBMB 在 CPM-Ant 基礎上微調了一個 勁爆標題生成器 以展示模型能力。
只需要把正文內容貼上到下方文字框,一鍵點選生成,就可以得到大模型提供的勁爆標題!
CPM-Ant 成果報告首發文章標題即由生成器生成
這款 demo將不斷被打磨,並在未來新增更多的特殊效果,增強使用者體驗
感興趣的使用者也可以使用 CPM-Ant 構建自己的展示應用。如果有任何應用想法、需要技術支援或者在使用 demo 過程中遇到任何問題,可以隨時在 CPM-Live 論壇[6] 發起討論!
CPM-Ant 的釋出是 CPM-Live 的第一個里程碑,但也僅僅是訓練的第一期,未來OpenBMB還會繼續進行一系列訓練。
簡單劇透一下,下一期的訓練中將新增多語言支援、結構化輸入輸出等新特性,歡迎大家繼續關注!
傳送門|專案連結
專案 GitHub 地址:
https://github。com/OpenBMB/CPM-Live
Demo 體驗地址(僅限 PC 訪問):
https://live。openbmb。org/ant
參考資料:
BMTrain: https://github。com/OpenBMB/BMTrain
LoRA: Low-Rank Adaptation of Large Language Models。 ICLR 2021。
OpenDelta: https://github。com/thunlp/OpenDelta
BMInf: https://github。com/OpenBMB/BMInf
技術部落格:https://www。openbmb。org/community/blogs/blogpage?id=98afef2ce45f4fe9a4bc15a66d7ccb92
CPM-Live 論壇:
https://github。com/OpenBMB/CPM-Live/discussions/categories/application-ideas-%E5%BA%94%E7%94%A8%E6%83%B3%E6%B3%95
BMCook: https://github。com/OpenBMB/BMCook
Model Center: https://github。com/OpenBMB/ModelCenter
《Carbon emissions and large neural network training》。 https://arxiv。org/pdf/2104。10350。pdf