干掉「標題黨」,清華團隊又一開源力作!
作為一個起名困難戶,高中寫作文最困擾我的就是寫好文章卻不知道起什么題目,開始做公眾號以后,每次想標題也都要掉一大把頭發......
最近,終于讓我在 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 CO?e,而訓練 T5-11B 的排放量為 46.7t CO?e[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