千元顯卡玩轉百億大模型, 清華推出工具包BMInf讓模型推理輕而易舉


大家好,我是對白。

今天給大家推薦一下我校計算機系NLP實驗室和智源團隊聯合發布的一款低資源大模型推理工具包BMInf,在最低配置為NVIDIA GTX 1060 6G的千元級顯卡上便可以進行百億模型的高效推理。

大家快來一起試用一下吧~

圖片

最近在工業界與學術界,最熱門的方向莫過於預訓練語言模型。而具有百億乃至千億參數的大規模預訓練語言模型,更是業界與學術界發力的熱點。

但現在大模型的應用卻有着較高的門檻,排隊申請或需要付費的API、較長的模型響應速度、推理所需要的較為昂貴的算力資源……種種因素都影響着大模型的快速應用與落地。對於普通的研究者與開發者來說,大模型可以說是看得見,卻很難摸得着。

近日,清華大學自然語言處理實驗室團隊與北京智源研究院聯合發布了一款低資源大模型推理工具包BMInf,在最低配置為NVIDIA GTX 1060 6G的千元級顯卡上便可以進行百億模型的高效推理。BMInf全名為Big Model Inference,它具有如下特點:

圖片

1、硬件友好。BMInf最低支持在NVIDIA GTX 1060單卡運行百億大模型,使用更好的GPU會有更好的運行性能。在顯存支持進行大模型推理的情況下(如V100或A100顯卡),BMInf的實現較現有PyTorch版本仍有較大性能提升。

2、開源共享。模型參數開源共享,用戶在本地即可部署運行,無需訪問或申請API。

3、能力全面。支持生成模型CPM1 [1]、通用模型CPM2 [2]、對話模型EVA [3],模型能力覆蓋文本補全、文本生成與對話。

4、模型升級。基於持續學習推出百億模型新升級CPM2.1,文本生成能力大幅提高

5、應用便捷。基於工具包可以快速開發大模型相關下游應用。

項目地址:https://github.com/OpenBMB/BMInf

對於大模型使用感興趣的同學,快來試用體驗吧!

圖片

使用方式

工具包的使用安裝較為便捷,官方README里提供了pip、源代碼與Docker三種安裝方式。

圖片

圖1 工具包三種安裝方式

安裝完成后,便可以通過運行examples里面的腳本來體驗大模型的快速推理了。運行過程中工具包首先會自動下載模型,之后便能夠為事先預設的句子生成預測的結果。

圖片

圖2 工具包運行演示

(樣例可以說是緊貼時事了,不過模型為特定日門票的定價倒是便宜了一些)

除此之外,工具包還提供了基於三種模型的網頁版展示Demo,用戶可以方便地通過本地運行服務器來可視化地體驗大模型的推理結果。目前Demo提供了三項功能,分別是文本填空、智能對話與故事生成,通過網站用戶可以非常快捷地體驗大模型的趣味應用。

圖片

圖3 文本填空功能隨機樣例

圖片

圖4 以“哈利波特第一次去霍格沃茨魔法學校上學,地址在北京通州”開頭生成故事

背后技術

項目的官方文檔中以CPM2-11B(悟道·文源)模型為例介紹了工具包背后所用到的技術。

具體來說,CPM2-11B是一個巨大的預訓練語言模型,它包含了110億參數,總共的模型文件大小達到了22GB。對於一塊普通的機械硬盤來說,光是讀取這樣大小的模型就已經會花費數分鍾的時間,更不用說將這樣龐大的數據放進內存和GPU中進行后續的運算。

在工具包的設計過程中,開發者預設了GTX 1060 6GB顯存和16GB內存這樣的最低配置要求。開發者使用了一系列的技術讓一個大規模的預訓練語言模型可以運行在一台普通的電腦上,並進行相關的推理運算。

模型壓縮

如果不做任何特殊處理,運行一個22GB的模型需要一塊顯存大小至少為22GB的GPU。滿足這樣條件的GPU通常是很昂貴的(例如 V100 32GB, A100, RTX 3090,市場價均超過2萬元),為了能讓模型在更小顯存的GPU上運行,開發者在保留模型原有結構的基礎上,將模型中占比最大的線性層參數(占比99%)從16比特浮點數轉換為了int8格式。為了讓壓縮后的模型更貼近於原來的效果,開發者在將參數轉換后進行了幾千次迭代的微調讓模型適應新的參數精度,微調后的模型基本上已經達到了和原始模型相近的能力。在具體的PPL指標中,壓縮后的模型相比於壓縮前只相差了5~10左右。

顯存調度

在使用了模型壓縮技術后,原本大小22GB的模型被壓縮到了11GB,對於NVIDIA旗艦級別GPU來說(如GTX 1080Ti, RTX 2080Ti),11GB顯存已經是可以摸到的門檻了,但是考慮到在推理過程中還需要使用一些額外的空間來存儲中間變量,這樣的顯存容量依然不夠。另外,能夠擁有這樣旗艦級別顯卡的個人用戶仍然較少,像GTX 1060 6G這樣甜點級的GPU有着更加廣泛的市場占有率。

要讓一個11GB大小的模型運行在顯存容量只有6GB的GPU上,開發者使用了顯存和內存的優化與調度技術。在運行過程中將需要用於進行運算的模型參數提前准備好並放置在顯存中,而對於暫時不需要用到的部分,則放置在CPU內存中。

圖片

圖5 模型中不同層參數的調度示意

在具體的實現過程中,開發者使用了兩個獨立的內存池,交替地用於計算和加載參數,並通過將計算的時間和參數加載的時間重疊來提升整體的推理效率。通過調整每次加載和運算的層數,可以將大模型適配到不同顯存容量的GPU。實驗表明,將更多的模型層駐留在GPU中通常可以帶來更好的效率。在整個模型推理的過程中,瓶頸往往在於內存和顯存的拷貝,這也是工具包之后會優化的方向。

性能測試

開發者在不同NVIDIA顯卡上進行了百億模型解碼的速度測試。即使在1060顯卡上,模型仍然能夠達到1.6個字符每秒的解碼速度,達到了類似於打字機一樣的運行效率。擁有較強性能顯卡的用戶仍然會獲得更快的解碼速度。在支持直接運行大模型推理的顯卡上(如單卡V100或A100),BMInf的解碼速度仍明顯優於現有的基於PyTorch的實現(注:該PyTorch實現仍使用公開版本模型參數)。

圖片

圖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由OpenBMB團隊開發與維護,負責人是智源青年科學家、清華大學副教授劉知遠。OpenBMB全稱為Open Lab for Big Model Base,團隊目前主要由清華大學自然語言處理實驗室成員組成,團隊過去兩年中陸續推出了悟道·文源、CPM等知名大規模預訓練語言模型(https://github.com/TsinghuaAI/CPM),受到業界的廣泛關注與好評。

OpenBMB將在智源研究院語言大模型加速技術創新中心支持下,打造大規模預訓練語言模型庫與相關工具,加速百億級以上大模型的訓練、微調與推理,降低大模型使用門檻,在此基礎上依托開源社區進一步推動語言大模型相關生態發展,實現大模型的標准化、普及化和實用化。在此歡迎廣大志同道合的朋友加入創新中心和OpenBMB,共同探索大規模預訓練語言模型加速技術,讓大模型“飛入尋常百姓家”。

NLP系統工程師(全職/實習)

工作內容:

開發大規模預訓練語言模型訓練、部署、微調系統,主要涉及功能實現、性能優化、系統調優、硬件適配等工作。在工作的過程中,需要根據具體任務的需求,查閱相關資料和文獻,並結合實際情況實現相應技術。

能力需求:

1. 熟練掌握C語言和Python;

2. 熟悉CUDA計算架構,擁有CUDA相關編程經驗;

3. 了解NLP領域重要任務、主流模型結構;

4. 能夠熟練閱讀外文文獻、文檔和相關社區論壇內容,可以針對自己的需要檢索並學習相關知識;

5. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協作。

NLP應用工程師(全職/實習)

工作內容:

參與算法落地及對接工作,利用已有系統實現大規模語言模型在具體任務上的應用,並與產品開發人員完成相應的功能對接和調整工作。在工作的過程中,能夠根據自己對產品的理解,主動探索或提出新的應用場景,並進行原型的實現。

能力需求:

1. 熟練掌握Python;

2. 有NLP領域相關開發或科研經驗,了解NLP領域重要任務和主流模型,對預訓練語言模型有深入了解;

3. 能夠根據自己的想法,自主檢索相關文獻,並設計合理技術路線;

4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協作。

NLP數據工程師(實習)

工作內容:

根據研發人員的需求,收集、處理大規模文本數據,並構建相應數據集,用於支撐大模型的訓練與應用。在工作過程中,能夠主動挖掘數據價值,並能對數據進行一些基礎特征的分析。

能力需求:

1. 熟練掌握C語言和Python;

2. 能夠完成常見的數據處理工作,例如:去重、去噪、HTML解析等;

3. 對NLP領域有所了解,包括常用工具、常見算法等;

4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協作。

WEB工程師(全職/實習)

工作內容:

參與開源社區相關應用和產品的開發工作,負責根據具體的產品需求實現相應功能。在工作過程中需要與NLP系統工程師進行對接,能夠根據開發過程中遇到的問題進行合理反饋。

能力需求:

1. 前端工程師需熟練掌握:Vue框架、HTML、CSS和Javascript;

2. 后端工程師需熟練掌握:Java、Python以及相關語言主流的Web框架;

3. 對於WEB開發中常見的問題或漏洞有所了解,能夠自主檢索解決常見問題;

4. 有良好的溝通能力,工作積極主動,對大模型的應用感興趣,能夠與團隊其他成員協作。

薪資待遇

全職員工根據實際水平薪資15K-40K/月(稅前);

實習生要求每周至少投入兩天時間,薪資300元/天;

- 對於能力優秀、水平突出者,待遇面議,上不封頂。

投遞方式

郵箱:openbmb@gmail.com

郵件標題請注明:智源大模型應聘_職位_姓名

機器學習/對比學習算法交流群

已建立機器學習/對比學習算法交流群!想要進交流群學習的同學,可以直接加我的微信號:duibai996

加的時候備注一下:昵稱+學校/公司。群里聚集了很多學術界和工業界大佬,歡迎一起交流算法心得,日常還可以嘮嗑~

圖片

圖片

后台回復關鍵詞【進群】

加入對比學習/CV/NLP/推薦/算法求職交流群

后台回復關鍵詞【對比學習】

獲取最新對比學習

在各大頂會上的論文合集!

最后歡迎大家關注我的微信公眾號: 對白的算法屋duibainotes),跟蹤NLP、推薦系統和對比學習等機器學習領域前沿,日常還會分享我的創業心得和人生感悟。想進一步交流的同學也可以通過公眾號加我的微信,和我一同探討技術問題,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM