機器之心報導。
修改:陳萍。內存
Andrej Karpathy 用通俗易懂的約束用pg電子官方網站言語介紹了 speculative execution。
「現在,個好LLM(大言語模型)并不是挺好單點打破的 —— 而是需求多個重要組件有用協同作業的體系。Speculative decoding 是大模協助咱們從體系視點考慮的一個很好的比如?!箰鄱”ご髮W博士生符堯表明道。內存
符堯上述觀念談論的是特斯拉前 AI 總監、年頭重回 OpenAI 的個好 Andrej Karpathy 剛剛發布的一條推特。
人形機器人公司 1X Technologies 的挺好pg電子官方網站 AI 副總裁 Eric Jang 點評道:「Karpathy 很好的解說了 LLM 的 speculative execution。其他自回歸模型或許會以相似的大模辦法加快。接連(分散)模型或許從 K 步中獲益較少(或許在第 1 步后違背猜想),內存但能夠將其應用于 VQ-latents 的約束用離散代碼?!?。個好
看完上述點評,咱們大約也了解了,Karpathy 說的「Speculative execution」,這是優化技能的一類,選用這個技能的核算機體系會依據現有信息,運用空轉時刻提早履行一些將來或許用得上,也或許用不上的指令。假如指令履行完成后發現用不上,體系會扔掉核算結果,并回退履行期間形成的副作用(如緩存)。
為了讓咱們更好的了解 Karpathy 的內容。咱們先介紹一下「Speculative decoding」辦法,對后續了解愈加有利,其首要用于加快大模型的推理。據了解,GPT-4 泄密陳述也提到了 OpenAI 線上模型推理運用了它(不確定是否 100%)。
關于「Speculative decoding」,已有幾篇重要文獻可供參閱,這也是 Karpathy 為了寫這則推特所參閱的論文,包含谷歌本年 1 月宣布的論文《Fast Inference from Transformers via Speculative Decoding》、DeepMind 本年 2 月宣布的論文《Accelerating Large Language Model Decoding with Speculative Sampling》,以及谷歌等組織 2018 年的論文《Blockwise Parallel Decoding for Deep Autoregressive Models 》 。
簡略來說,「Speculative decoding」運用兩個模型:一個是原始方針模型稱為大模型,另一個是比原始模型小得多的近似模型稱為小模型。首要思維是先讓小模型提早解碼多個 token 進行猜想,并將它們作為單個 batch 輸入到一個大模型中進行審閱批改,其作用和直接用大模型解碼等價。假如小模型猜想的不精確,那么大型模型會拋棄小模型猜測的 token,持續運用大型模型進行解碼。
由于小模型核算量小,然后大大減少了內存拜訪需求。
介紹完「Speculative decoding」,咱們再回到 Karpathy 的推特。Karpathy 是針對下面內容回復的。
Karpathy 表明:關于 LLM 來說,「Speculative execution」 是一種極好的推理 — 時刻優化辦法。
它取決于以下方面:在單個輸入 token 上分發 LLM 所花費的時刻與在批處理中分發 K 個輸入 token 所花費的時刻相同多。發生這樣的原因是由于采樣嚴峻受內存約束:模型運行時的大部分作業不是在做核算,而是從 VRAM 讀取 transformer 的權重到片上緩存進行處理。假如你要做的作業是來讀取這些權值,你能夠把它們應用到一整批輸入向量上。
可是咱們不能一次性采樣一批 K 個 token,由于每 N 個 token 都取決于咱們在第 N-1 步采樣的 token。由于存在串行依賴性,因而基線完成僅僅從左到右逐個進行。
現在最聰明的主意是運用一個小而廉價的草稿模型(draft model),先生成 K 個 token 候選序列,即一個「草稿」。然后用大模型批量的將輸入組合在一起。速度簡直與僅輸入一個 token 相同快。接著從左到右遍歷模型和樣本 token 猜測的 logits。任何與「草稿」共同的樣本都答應當即跳到下一個 token。假如存在不合,那么就丟掉「草稿」并承當一些一次性作業的本錢(對「草稿」進行采樣并為一切后續 token 進行前向傳遞)。
這種辦法起作用的原因在于,許多「草稿」token 都會被承受,由于它們很簡略,所以即使是更小的草稿模型也能得到它們。當這些簡略的 token 被承受時,咱們會越過這些部分。大模型不同意的 hard token 會回落到原始速度,但由于一些額定的作業,實際上速度會慢一些。
Karpathy 表明,這個古怪的技巧之所以有用,是由于 LLM 在推理時遭到內存約束,在對單個序列進行采樣的 batch size=1 設置中,很大一部分本地 LLM 用例都歸于這種狀況。由于大多數 token 都很「簡略」。
參閱鏈接:https://twitter.com/karpathy/status/1697318534555336961。
下一篇:深圳國資委:萬科具備安全性 如遇極端情況將幫助萬科積極應對
上一篇:長沙掛牌3宗住宅用地:起始總價約21億元,均未設置地價上限