蘋果芯跑大模型不用降計(jì)算精度,投機(jī)采樣殺瘋了,GPT-4也在用
專攻代碼的Code Llama一出,大家伙都盼著誰(shuí)來(lái)后續(xù)量化瘦身一下,好在本地也能運(yùn)行。
果然是llama.cpp作者Georgi Gerganov出手了,但他這回不按套路出牌:
不量化,就用FP16精度也讓34B的Code LLama跑在蘋果電腦上,推理速度超過(guò)每秒20個(gè)token。
圖片
原本需要4個(gè)高端GPU才能搞定的活現(xiàn)在用只有800GB/s帶寬的M2 Ultra就夠了,代碼寫起來(lái)嗖嗖快。
老哥隨后公布了秘訣,答案很簡(jiǎn)單,就是投機(jī)采樣(speculative sampling/decoding)。
圖片
此舉引來(lái)眾多大佬圍觀。
OpenAI創(chuàng)始成員Andrej Karpathy評(píng)價(jià)這是一種非常出色的推理時(shí)優(yōu)化,并給出了更多技術(shù)解讀。
英偉達(dá)科學(xué)家范麟熙也認(rèn)為,這是每個(gè)大模型從業(yè)者都應(yīng)該熟悉的技巧。
圖片
GPT-4也在用的方法
其實(shí)不光想在本地跑大模型的人在用投機(jī)采樣,谷歌OpenAI這樣的超級(jí)巨頭也在用。
根據(jù)之前泄露的資料,GPT-4就用了這個(gè)方法來(lái)降低推理成本,不然根本承受不起這么燒錢。
圖片
而最新爆料表示谷歌DeepMind聯(lián)手開(kāi)發(fā)的下一代大模型Gemini很可能也會(huì)用。
雖然OpenAI的具體方法都保密,但谷歌團(tuán)隊(duì)已經(jīng)把論文發(fā)出來(lái)了,并且入選ICML 2023 Oral。
圖片
方法很簡(jiǎn)單,先訓(xùn)練一個(gè)與大模型近似、更便宜的小模型,讓小模型先生成K個(gè)token,然后讓大模型去做評(píng)判。
大模型接受的部分就可以直接用,大模型不接受的部分再由大模型修改。
在原始論文中使用T5-XXL模型演示,在生成結(jié)果不變的情況下獲得了2-3倍的推理加速。
圖片
Andjrey Karpathy把這個(gè)方法比喻成“先讓小模型打草稿”。
他解釋這個(gè)方法有效的關(guān)鍵之處在于,給大模型一次輸入一個(gè)token和一次輸入一批token,預(yù)測(cè)下一個(gè)token所需時(shí)間是差不多的。
但每一個(gè)token都依賴前一個(gè)token,所以正常情況無(wú)法一次對(duì)多個(gè)token進(jìn)行采樣。
小模型雖然能力較差,但實(shí)際生成一個(gè)句子時(shí)有很多部分是非常簡(jiǎn)單的,小模型也能勝任,只有遇到困難的部分再讓大模型上就好了。
原論文認(rèn)為,這樣做無(wú)需改變大模型的結(jié)構(gòu),也無(wú)需重新訓(xùn)練,就可以直接加速已有的現(xiàn)成模型。
對(duì)于不會(huì)降低精度這一點(diǎn),在論文附錄部分也給出了數(shù)學(xué)論證。
圖片
了解了原理,再來(lái)看Georgi Gerganov這次的具體設(shè)置。
他使用4bit量化的7B模型作為“草稿”模型,每秒約能生成80個(gè)token。
而FP16精度的34B模型單獨(dú)使用每秒只能生成10個(gè)token。
使用投機(jī)采樣方法后獲得了2倍的加速,與原論文數(shù)據(jù)相符。
圖片
他額外表示,速度可能會(huì)根據(jù)生成的內(nèi)容而有所不同,但在代碼生成上非常有效,草稿模型能猜對(duì)大多數(shù)token。
圖片
最后,他還建議Meta以后在發(fā)布模型時(shí)直接把小的草稿模型附帶上吧,受到大伙好評(píng)。
圖片
作者已創(chuàng)業(yè)
作者Georgi Gerganov,今年三月LlaMA剛出一代的時(shí)候就移植到了C++上,開(kāi)源項(xiàng)目llama.cpp獲星已接近4萬(wàn)。
圖片
最開(kāi)始他搞這個(gè)只是當(dāng)成一個(gè)業(yè)余興趣,但因?yàn)榉错憻崃遥?月份他直接宣布創(chuàng)業(yè)。
新公司ggml.ai,主打llama.cpp背后的C語(yǔ)言機(jī)器學(xué)習(xí)框架,致力于在邊緣設(shè)備上運(yùn)行AI。
圖片
創(chuàng)業(yè)時(shí)獲得來(lái)自GitHub前CEONat Friedman、Y Combinator合伙人Daniel Gross的種子前投資。
LlaMA2發(fā)布后他也很活躍,最狠的一次直接把大模型塞進(jìn)了瀏覽器里。
圖片
谷歌投機(jī)采樣論文:https://arxiv.org/abs/2211.17192
參考鏈接:[1]https://x.com/ggerganov/status/1697262700165013689[2]https://x.com/karpathy/status/1697318534555336961