身為一個起名困難戶,高中寫作文最困擾我的就是寫好文章卻不知道起什麼題目,開始做公眾號以後,每次想標題也都要掉一大把頭髮.. ....
最近,終於讓我在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 萬人民幣,是Google訓練 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!
#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
以上是幹掉「標題黨」,清華團隊又一開源力作!的詳細內容。更多資訊請關注PHP中文網其他相關文章!