0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

特斯拉前AI總監(jiān)Andrej Karpathy:大模型有內(nèi)存限制,這個(gè)妙招挺好用!

CVer ? 來源:機(jī)器之心 ? 2023-09-04 15:43 ? 次閱讀

Andrej Karpathy 用通俗易懂的語言介紹了 speculative execution。

「如今,LLM(大語言模型)并不是單點(diǎn)突破的 —— 而是需要多個(gè)重要組件有效協(xié)同工作的系統(tǒng)。Speculative decoding 是幫助我們從系統(tǒng)角度思考的一個(gè)很好的例子?!箰鄱”ご髮W(xué)博士生符堯表示道。

58f1639a-4a73-11ee-97a6-92fbcf53809c.png

符堯上述觀點(diǎn)評(píng)論的是特斯拉AI 總監(jiān)、年初重回 OpenAI 的 Andrej Karpathy 剛剛發(fā)布的一條推特。

人形機(jī)器人公司 1X Technologies 的 AI 副總裁 Eric Jang 評(píng)價(jià)道:「Karpathy 很好的解釋了 LLM 的 speculative execution。其他自回歸模型可能會(huì)以類似的方式加速。連續(xù)(擴(kuò)散)模型可能從 K 步中獲益較少(可能在第 1 步后偏離猜測(cè)),但可以將其應(yīng)用于 VQ-latents 的離散代碼?!?/p>

590ef96e-4a73-11ee-97a6-92fbcf53809c.png

看完上述評(píng)價(jià),我們大概也了解了,Karpathy 說的「Speculative execution」,這是優(yōu)化技術(shù)的一類,采用這個(gè)技術(shù)的計(jì)算機(jī)系統(tǒng)會(huì)根據(jù)現(xiàn)有信息,利用空轉(zhuǎn)時(shí)間提前執(zhí)行一些將來可能用得上,也可能用不上的指令。如果指令執(zhí)行完成后發(fā)現(xiàn)用不上,系統(tǒng)會(huì)拋棄計(jì)算結(jié)果,并回退執(zhí)行期間造成的副作用(如緩存)。

為了讓大家更好的理解 Karpathy 的內(nèi)容。我們先介紹一下「Speculative decoding」方法,對(duì)后續(xù)理解更加有益,其主要用于加速大模型的推理。據(jù)了解,GPT-4 泄密報(bào)告也提到了 OpenAI 線上模型推理使用了它(不確定是否 100%)。

關(guān)于「Speculative decoding」,已有幾篇重要文獻(xiàn)可供參考,這也是 Karpathy 為了寫這則推特所參考的論文,包括谷歌今年 1 月發(fā)表的論文《Fast Inference from Transformers via Speculative Decoding》、DeepMind 今年 2 月發(fā)表的論文《Accelerating Large Language Model Decoding with Speculative Sampling》,以及谷歌等機(jī)構(gòu) 2018 年的論文《Blockwise Parallel Decoding for Deep Autoregressive Models 》 。

簡單來說,「Speculative decoding」使用兩個(gè)模型:一個(gè)是原始目標(biāo)模型稱為大模型,另一個(gè)是比原始模型小得多的近似模型稱為小模型。主要思想是先讓小模型提前解碼多個(gè) token 進(jìn)行猜測(cè),并將它們作為單個(gè) batch 輸入到一個(gè)大模型中進(jìn)行審核修正,其效果和直接用大模型解碼等價(jià)。如果小模型猜測(cè)的不準(zhǔn)確,那么大型模型會(huì)放棄小模型預(yù)測(cè)的 token,繼續(xù)使用大型模型進(jìn)行解碼。

由于小模型計(jì)算量小,從而大大減少了內(nèi)存訪問需求。

介紹完「Speculative decoding」,我們?cè)倩氐?Karpathy 的推特。Karpathy 是針對(duì)下面內(nèi)容回復(fù)的。

59286e94-4a73-11ee-97a6-92fbcf53809c.gif

Karpathy 表示:對(duì)于 LLM 來說,「Speculative execution」 是一種極好的推理 — 時(shí)間優(yōu)化方法。

它取決于以下方面:在單個(gè)輸入 token 上分發(fā) LLM 所花費(fèi)的時(shí)間與在批處理中分發(fā) K 個(gè)輸入 token 所花費(fèi)的時(shí)間一樣多。產(chǎn)生這樣的原因是因?yàn)椴蓸訃?yán)重受內(nèi)存限制:模型運(yùn)行時(shí)的大部分工作不是在做計(jì)算,而是從 VRAM 讀取 transformer 的權(quán)重到片上緩存進(jìn)行處理。如果你要做的工作是來讀取這些權(quán)值,你可以把它們應(yīng)用到一整批輸入向量上。

但是我們不能一次性采樣一批 K 個(gè) token,因?yàn)槊?N 個(gè) token 都取決于我們?cè)诘?N-1 步采樣的 token。由于存在串行依賴性,因此基線實(shí)現(xiàn)只是從左到右逐一進(jìn)行。

現(xiàn)在最聰明的想法是使用一個(gè)小而便宜的草稿模型(draft model),先生成 K 個(gè) token 候選序列,即一個(gè)「草稿」。然后用大模型批量的將輸入組合在一起。速度幾乎與僅輸入一個(gè) token 一樣快。接著從左到右遍歷模型和樣本 token 預(yù)測(cè)的 logits。任何與「草稿」一致的樣本都允許立即跳到下一個(gè) token。如果存在分歧,那么就丟棄「草稿」并承擔(dān)一些一次性工作的成本(對(duì)「草稿」進(jìn)行采樣并為所有后續(xù) token 進(jìn)行前向傳遞)。

這種方法起作用的原因在于,很多「草稿」token 都會(huì)被接受,因?yàn)樗鼈兒苋菀?,所以即使是更小的草稿模型也能得到它們。?dāng)這些簡單的 token 被接受時(shí),我們會(huì)跳過這些部分。大模型不同意的 hard token 會(huì)回落到原始速度,但由于一些額外的工作,實(shí)際上速度會(huì)慢一些。

Karpathy 表示,這個(gè)奇怪的技巧之所以有效,是因?yàn)?LLM 在推理時(shí)受到內(nèi)存限制,在對(duì)單個(gè)序列進(jìn)行采樣的 batch size=1 設(shè)置中,很大一部分本地 LLM 用例都屬于這種情況。因?yàn)榇蠖鄶?shù) token 都很「簡單」。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31399

    瀏覽量

    269787
  • OpenAI
    +關(guān)注

    關(guān)注

    9

    文章

    1113

    瀏覽量

    6619
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2523

    瀏覽量

    2979
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    298

    瀏覽量

    361

原文標(biāo)題:特斯拉前AI總監(jiān)Andrej Karpathy:大模型有內(nèi)存限制,這個(gè)妙招挺好用!

文章出處:【微信號(hào):CVer,微信公眾號(hào):CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    拋棄8GB內(nèi)存,端側(cè)AI模型加速內(nèi)存升級(jí)

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃晶晶)端側(cè)AI模型的到來在存儲(chǔ)市場(chǎng)產(chǎn)生了最直接的反應(yīng)。年初在我們對(duì)旗艦智能手機(jī)的存儲(chǔ)容量統(tǒng)計(jì)中,16GB內(nèi)存+512GB存儲(chǔ)成為幾乎所有旗艦機(jī)型都提供的選擇。畢竟AI
    的頭像 發(fā)表于 11-03 00:02 ?4584次閱讀
    拋棄8GB<b class='flag-5'>內(nèi)存</b>,端側(cè)<b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>加速<b class='flag-5'>內(nèi)存</b>升級(jí)

    【「大模型啟示錄」閱讀體驗(yàn)】對(duì)大模型更深入的認(rèn)知

    的平衡,解釋得清清楚楚,讓我這個(gè)非專業(yè)人士也能明白大模型在實(shí)際應(yīng)用中面臨的挑戰(zhàn)和限制,也對(duì)這些模型的復(fù)雜性和挑戰(zhàn)了更深的理解。 而且,書
    發(fā)表于 12-20 15:46

    為什么ai模型訓(xùn)練要用gpu

    GPU憑借其強(qiáng)大的并行處理能力和高效的內(nèi)存系統(tǒng),已成為AI模型訓(xùn)練不可或缺的重要工具。
    的頭像 發(fā)表于 10-24 09:39 ?372次閱讀

    AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第二章AI for Science的技術(shù)支撐學(xué)習(xí)心得

    。 4. 物理與AI的融合 在閱讀過程中,我對(duì)于物理與AI的融合了更加深入的認(rèn)識(shí)。AI for Science不僅依賴于數(shù)據(jù),還需要結(jié)合物理定律和原理來確保
    發(fā)表于 10-14 09:16

    特斯拉將獲xAI模型授權(quán)

    近日,埃隆·馬斯克旗下的創(chuàng)新企業(yè)x.AI特斯拉就一項(xiàng)重大合作展開討論,雙方擬就特斯拉獲得xAI模型授權(quán)達(dá)成正式協(xié)議。據(jù)悉,特斯拉將利用這一
    的頭像 發(fā)表于 09-09 17:24 ?449次閱讀

    可以用os_malloc() 分配多少內(nèi)存哪些限制?

    我可以用 os_malloc() 分配多少內(nèi)存哪些限制?
    發(fā)表于 07-15 06:32

    無任何數(shù)學(xué)公式理解大模型基本原理

    為什么是一個(gè)一個(gè)蹦出來的 ? ? 大模型的本質(zhì) 特斯拉AI總監(jiān)Andrej
    的頭像 發(fā)表于 06-25 14:53 ?1425次閱讀
    無任何數(shù)學(xué)公式理解大<b class='flag-5'>模型</b>基本原理

    STM CUBE AI錯(cuò)誤導(dǎo)入onnx模型報(bào)錯(cuò)的原因?

    使用cube-AI分析模型時(shí)報(bào)錯(cuò),該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    發(fā)表于 05-27 07:15

    為什么Cubeai導(dǎo)入模型的時(shí)候報(bào)錯(cuò)[AI:persondetection] ModuleNotFoundError: No module named \'_socket\'?

    在使用CubeIde導(dǎo)入ai模型進(jìn)行模型分析的時(shí)候報(bào)錯(cuò)[AI:persondetection] ModuleNotFoundError: No module named \'_sock
    發(fā)表于 05-21 06:44

    用DMA模式多路AD采集時(shí),后臺(tái)AD是多久采集一次數(shù)據(jù),AD不停采集不停刷新DMA地址里的數(shù)據(jù)?

    用著DMA挺好用,就是有點(diǎn)小疑問 用DMA模式多路AD采集時(shí),后臺(tái)AD是多久采集一次數(shù)據(jù),AD不停采集不停刷新DMA地址里的數(shù)據(jù)?還是從DMA指定地址里把數(shù)據(jù)讀取出后就會(huì)重新填充新數(shù)據(jù)進(jìn)去。 這個(gè)采集頻率最高大家用過多少的!
    發(fā)表于 05-10 07:17

    防止AI模型被黑客病毒入侵控制(原創(chuàng))聆思大模型AI開發(fā)套件評(píng)測(cè)4

    神經(jīng)網(wǎng)絡(luò)的電路實(shí)現(xiàn) // 比如說我們已經(jīng)一臺(tái)神奇的AI算力黑科技在默默工作... endmodule // 我們召喚出這個(gè)神秘的AI模型
    發(fā)表于 03-19 11:18

    使用CUBEAI部署tflite模型到STM32F0中,模型創(chuàng)建失敗怎么解決?

    看到CUBE_AI已經(jīng)支持到STM32F0系列芯片,就想拿來入門嵌入式AI。 生成的模型很小,是可以部署到F0上的,但是一直無法創(chuàng)建成功。 查閱CUBE AI文檔說在調(diào)用create
    發(fā)表于 03-15 08:10

    使用cube-AI分析模型時(shí)報(bào)錯(cuò)的原因哪些?

    使用cube-AI分析模型時(shí)報(bào)錯(cuò),該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    發(fā)表于 03-14 07:09

    谷歌模型軟件哪些好用

    谷歌模型軟件的好用程度可能因個(gè)人需求和技能水平而異,但以下是一些廣受歡迎的谷歌模型軟件,它們?cè)诟髯缘念I(lǐng)域內(nèi)有著出色的表現(xiàn)。
    的頭像 發(fā)表于 02-29 18:17 ?1108次閱讀

    物理內(nèi)存模型的演變

    內(nèi)存管理概述中,主要是以Linux v2.6.11為例進(jìn)行分析的,但是計(jì)算技術(shù)在不斷發(fā)展,新的存儲(chǔ)架構(gòu)、新的指令集架構(gòu)、新的SoC架構(gòu)等都對(duì)物理內(nèi)存模型的抽象提出了更高要求。為此,必須抽象一種完全獨(dú)立于硬件架構(gòu)的物理
    的頭像 發(fā)表于 02-25 10:35 ?505次閱讀