0代碼調(diào)戲千億參數(shù)大模型,打開網(wǎng)頁就能玩!無需注冊(cè)即可體驗(yàn)
想體驗(yàn)千億參數(shù)大模型的門檻,真是越來越低了!
想讓大模型回答問題?
只需在網(wǎng)頁端輸入問題,運(yùn)行二三十秒,答案就噌噌生成了。
用的正是今年由Meta開源的Open Pretrained Transformer(OPT),參數(shù)量達(dá)1750億。
如果是傳統(tǒng)在本地運(yùn)行,對(duì)算力可是個(gè)大考驗(yàn)。
這就是由開源項(xiàng)目Colossal-AI支持的云端demo,無需注冊(cè)即可上手體驗(yàn),對(duì)硬件完全沒門檻,普通筆記本電腦甚至手機(jī)就能搞定。
也就是說,完全不用懂代碼的小白,現(xiàn)在也能調(diào)戲OPT這樣的大模型了。
讓我們來試玩一把~
4種任務(wù)可試玩
FAQ常見問題解答、聊天機(jī)器人、翻譯、文章創(chuàng)作幾種模式都可試玩。
一些數(shù)值也能按需自己來調(diào)整,并且不涉及到代碼。
我們體驗(yàn)了下文章創(chuàng)作,開頭給了一句“今天是個(gè)好日子啊”。
很快,網(wǎng)頁就輸出了一連串大好事,剛剛加薪、正在玩刺客信條、明天還要去海灘……看著讓人羨慕!
還能構(gòu)建個(gè)場(chǎng)景讓聊天機(jī)器人嘮上幾塊錢的。
隨機(jī)生成的一段長(zhǎng)對(duì)話是買手機(jī)的場(chǎng)景。嗯,和今天iPhone 14發(fā)布可以說是非常應(yīng)景了。
感覺即便是不懂AI、不懂編程的小白也能玩轉(zhuǎn)OPT的各種任務(wù),體驗(yàn)過程相當(dāng)絲滑。?
要知道,像OPT這樣千億參數(shù)大模型的運(yùn)行,一直都有著“對(duì)硬件要求高”、“成本高”的特點(diǎn)。
一個(gè)免費(fèi)無限玩的網(wǎng)站,到底是怎么實(shí)現(xiàn)如上效果的?
開源方案快速云上部署超大模型
這還是要從其背后支持系統(tǒng)Colossal-AI說起。
它以“僅需幾行代碼就能快速部署AI大模型訓(xùn)練推理”而名震江湖,在GitHub上攬星超過4.7K。
這一次,是它在云上部署AI大模型的一次新突破。
主要針對(duì)OPT模型的特性,做出了在推理速度、計(jì)算量等方面的優(yōu)化。
在OPT云上服務(wù)方面,提出了left padding、past cache、bucket batching技術(shù)。
OPT擁有1750億參數(shù)量,如此規(guī)模的模型,單個(gè)GPU顯存顯然無法容納。
而且推理問題不光要考慮吞吐量,還要顧及到時(shí)延問題。
針對(duì)這兩方面問題,并行計(jì)算是個(gè)不錯(cuò)的解決思路。
尤其是Colossal-AI本身就十分擅長(zhǎng)將一個(gè)單機(jī)模型轉(zhuǎn)換成并行運(yùn)行,獲得并行OPT模型自然不成問題。
不過并行方案中的參數(shù)加載一直是個(gè)難題。
在這方面,Colossal-AI可以讓用戶只需要參考樣例,簡(jiǎn)單提供參數(shù)名映射關(guān)系,即可完成模型參數(shù)的加載。
最后,再將模型導(dǎo)入到Colossal-AI的推理引擎中,設(shè)置相應(yīng)的超參數(shù)。
到這一步,OPT主干網(wǎng)絡(luò)的推理部分就能上線且輸出有意義的結(jié)果了。
但是這還遠(yuǎn)遠(yuǎn)不夠。
因?yàn)镺PT是生成式模型,生成式任務(wù)需要不斷循環(huán)模型的輸出結(jié)果,這就導(dǎo)致推理中常見的batching策略無法直接應(yīng)用。
具體來看,由于生成任務(wù)輸入的語句長(zhǎng)度往往參差不齊,而且大部分語言閱讀和書寫都是從左向右的。
如果用常規(guī)的right padding,那么針對(duì)較短的句子就很難生成有意義的結(jié)果,或者需要進(jìn)行復(fù)雜處理。
△使用Right padding,生成側(cè)不對(duì)齊
如果用單batch運(yùn)行,效率又太低了,不可行。
所以這一回的推理部署中,增加了left padding對(duì)句子進(jìn)行填充,讓每個(gè)句子的生成側(cè)(右側(cè))都是對(duì)齊的,同時(shí)可以生成新的單詞。
△Left padding
還有另一方面的問題——生成模型單次推理只能生成一個(gè)新詞。
當(dāng)新的輸出結(jié)果生成時(shí),它同時(shí)也成為了輸入的一部分。
也就是說,生成式任務(wù)的每次計(jì)算,是需要針對(duì)新的輸入序列進(jìn)行重新計(jì)算的。
顯然這種操作方式,重復(fù)計(jì)算太多了。
尤其是對(duì)于占絕大多數(shù)計(jì)算量的Linear層來說。
所以,Colossal-AI的開發(fā)人員在模型內(nèi)部引入了past cache技術(shù)。
它可以暫存同一次生成任務(wù)中的Linear層的輸出結(jié)果,讓每次只有一個(gè)新的單詞進(jìn)入Linear層進(jìn)行計(jì)算,并把該次的計(jì)算結(jié)果暫存,以避免重復(fù)計(jì)算。
直觀來看就是醬嬸兒的:
除此之外,開發(fā)人員還注意到生成式任務(wù)的計(jì)算量是參差不齊的。
輸入、輸出的句子長(zhǎng)短變化范圍都很大。
如果用簡(jiǎn)單的batching方法,將兩個(gè)相差很大的推理放在同一個(gè)批次里,就會(huì)造成大量的冗余計(jì)算。
因此他們提出了bucket batching。
即按照輸入句長(zhǎng)以及輸出目標(biāo)句長(zhǎng)進(jìn)行桶排序,同一個(gè)桶內(nèi)的序列作為一個(gè)batching,以此降低冗余。
One More Thing
不光是這次的云端demo,提供支持的Colossal-AI也是免費(fèi)開源的~
任何人都能基于它低成本訓(xùn)練自己的大模型,并部署成云端服務(wù)。
比如在單張10GB顯存的RTX 3080上,就能訓(xùn)練120億參數(shù)的大模型。
較原生PyTorch提升了120倍的模型容量。
此前Colossal-AI多次在GitHub、Paper With Code熱榜位列世界第一。
相關(guān)解決方案成功在自動(dòng)駕駛、云計(jì)算、零售、 醫(yī)藥、芯片等行業(yè)知名廠商落地應(yīng)用。
最近,Colossal-AI還連續(xù)入選和受邀全球超級(jí)計(jì)算機(jī)大會(huì)、國際數(shù)據(jù)科學(xué)會(huì)議、世界人工智能大會(huì)、亞馬遜云科技中國峰會(huì)等國際專業(yè)盛會(huì)。