千元显卡玩转百亿大模型,清华推出工具包BMInf让模型推理轻而易举
最近在工業(yè)界與學術界,最熱門的方向莫過于預訓練語言模型。而具有百億乃至千億參數(shù)的大規(guī)模預訓練語言模型,更是業(yè)界與學術界發(fā)力的熱點。
但現(xiàn)在大模型的應用卻有著較高的門檻,排隊申請或需要付費的API、較長的模型響應速度、推理所需要的較為昂貴的算力資源……種種因素都影響著大模型的快速應用與落地。對于普通的研究者與開發(fā)者來說,大模型可以說是看得見,卻很難摸得著。
近日,清華大學自然語言處理實驗室團隊與北京智源研究院聯(lián)合發(fā)布了一款低資源大模型推理工具包BMInf,在最低配置為NVIDIA GTX 1060 6G的千元級顯卡上便可以進行百億模型的高效推理。BMInf全名為Big Model Inference,它具有如下特點:
1、硬件友好。BMInf最低支持在NVIDIA GTX 1060單卡運行百億大模型,使用更好的GPU會有更好的運行性能。在顯存支持進行大模型推理的情況下(如V100或A100顯卡),BMInf的實現(xiàn)較現(xiàn)有PyTorch版本仍有較大性能提升。
2、開源共享。模型參數(shù)開源共享,用戶在本地即可部署運行,無需訪問或申請API。
3、能力全面。支持生成模型CPM1 [1]、通用模型CPM2 [2]、對話模型EVA2 [3],模型能力覆蓋文本補全、文本生成與對話。
4、模型升級。基于持續(xù)學習推出百億模型新升級CPM2.1,文本生成能力大幅提高
5、應用便捷。基于工具包可以快速開發(fā)大模型相關下游應用。
項目地址:https://github.com/OpenBMB/BMInf
對于大模型使用感興趣的同學,快來試用體驗吧!
使用方式
工具包的使用安裝較為便捷,官方README里提供了pip、源代碼與Docker三種安裝方式。
圖1 工具包三種安裝方式
安裝完成后,便可以通過運行examples里面的腳本來體驗大模型的快速推理了。運行過程中工具包首先會自動下載模型,之后便能夠為事先預設的句子生成預測的結果。
圖2?工具包運行演示
(樣例可以說是緊貼時事了,不過模型為特定日門票的定價倒是便宜了一些)
除此之外,工具包還提供了基于三種模型的網(wǎng)頁版展示Demo,用戶可以方便地通過本地運行服務器來可視化地體驗大模型的推理結果。目前Demo提供了三項功能,分別是文本填空、智能對話與故事生成,通過網(wǎng)站用戶可以非常快捷地體驗大模型的趣味應用。
圖3 利用文本填空功能進行工具包起名
圖4 以“哈利波特第一次去霍格沃茨魔法學校上學,地址在北京通州”開頭生成故事
背后技術
項目的官方文檔中以CPM2-11B(悟道·文源)模型為例介紹了工具包背后所用到的技術。
具體來說,CPM2-11B是一個巨大的預訓練語言模型,它包含了110億參數(shù),總共的模型文件大小達到了22GB。對于一塊普通的機械硬盤來說,光是讀取這樣大小的模型就已經(jīng)會花費數(shù)分鐘的時間,更不用說將這樣龐大的數(shù)據(jù)放進內存和GPU中進行后續(xù)的運算。
在工具包的設計過程中,開發(fā)者預設了GTX 1060 6GB顯存和16GB內存這樣的最低配置要求。開發(fā)者使用了一系列的技術讓一個大規(guī)模的預訓練語言模型可以運行在一臺普通的電腦上,并進行相關的推理運算。
模型壓縮
如果不做任何特殊處理,運行一個22GB的模型需要一塊顯存大小至少為22GB的GPU。滿足這樣條件的GPU通常是很昂貴的(例如 V100 32GB, A100, RTX 3090,市場價均超過2萬元),為了能讓模型在更小顯存的GPU上運行,開發(fā)者在保留模型原有結構的基礎上,將模型中占比最大的線性層參數(shù)(占比99%)從16比特浮點數(shù)轉換為了int8格式。為了讓壓縮后的模型更貼近于原來的效果,開發(fā)者在將參數(shù)轉換后進行了幾千次迭代的微調讓模型適應新的參數(shù)精度,微調后的模型基本上已經(jīng)達到了和原始模型相近的能力。在具體的PPL指標中,壓縮后的模型相比于壓縮前只相差了5~10左右。
顯存調度
在使用了模型壓縮技術后,原本大小22GB的模型被壓縮到了11GB,對于NVIDIA旗艦級別GPU來說(如GTX 1080Ti, RTX 2080Ti),11GB顯存已經(jīng)是可以摸到的門檻了,但是考慮到在推理過程中還需要使用一些額外的空間來存儲中間變量,這樣的顯存容量依然不夠。另外,能夠擁有這樣旗艦級別顯卡的個人用戶仍然較少,像GTX 1060 6G這樣甜點級的GPU有著更加廣泛的市場占有率。
要讓一個11GB大小的模型運行在顯存容量只有6GB的GPU上,開發(fā)者使用了顯存和內存的優(yōu)化與調度技術。在運行過程中將需要用于進行運算的模型參數(shù)提前準備好并放置在顯存中,而對于暫時不需要用到的部分,則放置在CPU內存中。
圖5 模型中不同層參數(shù)的調度示意
在具體的實現(xiàn)過程中,開發(fā)者使用了兩個獨立的內存池,交替地用于計算和加載參數(shù),并通過將計算的時間和參數(shù)加載的時間重疊來提升整體的推理效率。通過調整每次加載和運算的層數(shù),可以將大模型適配到不同顯存容量的GPU。實驗表明,將更多的模型層駐留在GPU中通常可以帶來更好的效率。在整個模型推理的過程中,瓶頸往往在于內存和顯存的拷貝,這也是工具包之后會優(yōu)化的方向。
性能測試
開發(fā)者在不同NVIDIA顯卡上進行了百億模型解碼的速度測試。即使在1060顯卡上,模型仍然能夠達到1.6個字符每秒的解碼速度,達到了類似于打字機一樣的運行效率。擁有較強性能顯卡的用戶仍然會獲得更快的解碼速度。在支持直接運行大模型推理的顯卡上(如單卡V100或A100),BMInf的解碼速度仍明顯優(yōu)于現(xiàn)有的基于PyTorch的實現(xiàn)(注:該PyTorch實現(xiàn)仍使用公開版本模型參數(shù))。
圖6?工具包在不同顯卡上的解碼速度測試
參考文獻
1. CPM: A Large-scale Generative Chinese Pre-trained Language Model. Zhengyan Zhang, Xu Han, Hao Zhou, Pei Ke, Yuxian Gu, Deming Ye, Yujia Qin, Yusheng Su, Haozhe Ji, Jian Guan, Fanchao Qi, Xiaozhi Wang, Yanan Zheng, Guoyang Zeng, Huanqi Cao, Shengqi Chen, Daixuan Li, Zhenbo Sun, Zhiyuan Liu, Minlie Huang, Wentao Han, Jie Tang, Juanzi Li, Xiaoyan Zhu, Maosong Sun. 2020.
2. CPM-2: Large-scale Cost-efficient Pre-trained Language Models. Zhengyan Zhang, Yuxian Gu, Xu Han, Shengqi Chen, Chaojun Xiao, Zhenbo Sun, Yuan Yao, Fanchao Qi, Jian Guan, Pei Ke, Yanzheng Cai, Guoyang Zeng, Zhixing Tan, Zhiyuan Liu, Minlie Huang, Wentao Han, Yang Liu, Xiaoyan Zhu, Maosong Sun. 2021.
3. EVA: An Open-Domain Chinese Dialogue System with Large-Scale Generative Pre-Training. Hao Zhou, Pei Ke, Zheng Zhang, Yuxian Gu, Yinhe Zheng, Chujie Zheng, Yida Wang, Chen Henry Wu, Hao Sun, Xiaocong Yang, Bosi Wen, Xiaoyan Zhu, Minlie Huang, Jie Tang. 2021.
團隊招聘
BMInf由智源研究院語言大模型加速技術創(chuàng)新中心OpenBMB團隊開發(fā)與維護,創(chuàng)新中心負責人是智源青年科學家、清華大學副教授劉知遠。OpenBMB全稱為Open Lab for Big Model Base,團隊目前主要由清華大學自然語言處理實驗室成員組成,團隊過去兩年中陸續(xù)推出了悟道·文源、CPM等知名大規(guī)模預訓練語言模型(https://github.com/TsinghuaAI/CPM),受到業(yè)界的廣泛關注與好評。?
智源研究院語言大模型加速技術創(chuàng)新中心OpenBMB旨在打造大規(guī)模預訓練語言模型庫與相關工具,加速百億級以上大模型的訓練、微調與推理,降低大模型使用門檻,在此基礎上依托開源社區(qū)進一步推動語言大模型相關生態(tài)發(fā)展,實現(xiàn)大模型的標準化、普及化和實用化。在此歡迎廣大志同道合的朋友加入創(chuàng)新中心和OpenBMB,共同探索大規(guī)模預訓練語言模型加速技術,讓大模型“飛入尋常百姓家”。
NLP系統(tǒng)工程師(全職/實習)
工作內容:
開發(fā)大規(guī)模預訓練語言模型訓練、部署、微調系統(tǒng),主要涉及功能實現(xiàn)、性能優(yōu)化、系統(tǒng)調優(yōu)、硬件適配等工作。在工作的過程中,需要根據(jù)具體任務的需求,查閱相關資料和文獻,并結合實際情況實現(xiàn)相應技術。
能力需求:
1. 熟練掌握C語言和Python;
2. 熟悉CUDA計算架構,擁有CUDA相關編程經(jīng)驗;
3. 了解NLP領域重要任務、主流模型結構;
4. 能夠熟練閱讀外文文獻、文檔和相關社區(qū)論壇內容,可以針對自己的需要檢索并學習相關知識;
5. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協(xié)作。
NLP應用工程師(全職/實習)?
工作內容:?
參與算法落地及對接工作,利用已有系統(tǒng)實現(xiàn)大規(guī)模語言模型在具體任務上的應用,并與產(chǎn)品開發(fā)人員完成相應的功能對接和調整工作。在工作的過程中,能夠根據(jù)自己對產(chǎn)品的理解,主動探索或提出新的應用場景,并進行原型的實現(xiàn)。?
能力需求:?
1. 熟練掌握Python;?
2. 有NLP領域相關開發(fā)或科研經(jīng)驗,了解NLP領域重要任務和主流模型,對預訓練語言模型有深入了解;?
3. 能夠根據(jù)自己的想法,自主檢索相關文獻,并設計合理技術路線;?
4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協(xié)作。
NLP數(shù)據(jù)工程師(實習)?
工作內容:?
根據(jù)研發(fā)人員的需求,收集、處理大規(guī)模文本數(shù)據(jù),并構建相應數(shù)據(jù)集,用于支撐大模型的訓練與應用。在工作過程中,能夠主動挖掘數(shù)據(jù)價值,并能對數(shù)據(jù)進行一些基礎特征的分析。?
能力需求:?
1. 熟練掌握C語言和Python;?
2. 能夠完成常見的數(shù)據(jù)處理工作,例如:去重、去噪、HTML解析等;?
3. 對NLP領域有所了解,包括常用工具、常見算法等;?
4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協(xié)作。
WEB工程師(全職/實習)?
工作內容:?
參與開源社區(qū)相關應用和產(chǎn)品的開發(fā)工作,負責根據(jù)具體的產(chǎn)品需求實現(xiàn)相應功能。在工作過程中需要與NLP系統(tǒng)工程師進行對接,能夠根據(jù)開發(fā)過程中遇到的問題進行合理反饋。?
能力需求:?
1. 前端工程師需熟練掌握:Vue框架、HTML、CSS和Javascript;?
2. 后端工程師需熟練掌握:Java、Python以及相關語言主流的Web框架;?
3. 對于WEB開發(fā)中常見的問題或漏洞有所了解,能夠自主檢索解決常見問題;?
4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協(xié)作。
薪資待遇?
- 全職員工根據(jù)實際水平薪資15K-40K/月(稅前);?
- 實習生要求每周至少投入兩天時間,薪資300元/天;?
- 對于能力優(yōu)秀、水平突出者,待遇面議,上不封頂。?
投遞方式?
郵箱:openbmb@gmail.com
郵件標題請注明:智源大模型應聘_職位_姓名
🔍
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的千元显卡玩转百亿大模型,清华推出工具包BMInf让模型推理轻而易举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家用电器股票有哪些龙头股 板块大跌引来资
- 下一篇: 基金现金分红好还是红利再投资好 根据这