【NLP高頻面題 - LLM架構篇】LLM為何使用GQA代替MHA?

青松^_^發表於2024-11-28

【NLP高頻面題 - LLM架構篇】LLM為何使用GQA代替MHA?

重要性:★★ 💯


NLP Github 專案:

  • NLP 專案實踐fasterai/nlp-project-practice

    介紹:該倉庫圍繞著 NLP 任務模型的設計、訓練、最佳化、部署和應用,分享大模型演算法工程師的日常工作和實戰經驗

  • AI 藏經閣https://gitee.com/fasterai/ai-e-book

    介紹:該倉庫主要分享了數百本 AI 領域電子書

  • AI 演算法面經fasterai/nlp-interview-handbook#面經

    介紹:該倉庫一網打盡網際網路大廠NLP演算法面經,演算法求職必備神器

  • NLP 劍指Offerhttps://gitee.com/fasterai/nlp-interview-handbook

    介紹:該倉庫彙總了 NLP 演算法工程師高頻面題


隨著模型規模越來越大,訓練和推理時需要的視訊記憶體越來越多,為了降低大模型的計算量,需要使用快取注意力機制代替Transformer原始的多頭注意力機制,達到既節約時間,又節約視訊記憶體的目的。

最極端的做法是MQA(多查詢注意力),MQA能夠大幅加速採用MHA的Transformer的推理,但是會有明顯的效能損失,而GQA(分組查詢注意力)透過設定合適的分組大小,可以和MQA的推理效能幾乎相等,同時逼近MHA的模型效能。

MQA和GQA對推理的幫助主要是以下兩點:

  • 降低記憶體讀取模型權重的時間開銷:由於Key矩陣和Value矩陣數量變少了,因此權重引數量也減少了,需要讀取到記憶體的數量量少了,因此減少了讀取權重的等待時間
  • KV-Cache空間佔用明顯降低:KV-Cache會將之前推理過的Key、Value向量儲存在記憶體中,而隨著步長和batch_size的增長,KV-Cache空間佔用越來越高,使得KV-Cache不能被高效的讀寫,而MHA和GQA方式使得KV-Cache需要儲存的引數量降低了head_num倍,從而提高KV-Cache的讀寫效率;另一方面,可以有空間來增大batch_size,從而提高模型推理的吞吐量。

GQA的程式碼實現:


NLP 大模型高頻面題彙總

NLP基礎篇

  • 【NLP 面試寶典 之 模型分類】 必須要會的高頻面題
  • 【NLP 面試寶典 之 神經網路】 必須要會的高頻面題
  • 【NLP 面試寶典 之 主動學習】 必須要會的高頻面題
  • 【NLP 面試寶典 之 超引數最佳化】 必須要會的高頻面題
  • 【NLP 面試寶典 之 正則化】 必須要會的高頻面題
  • 【NLP 面試寶典 之 過擬合】 必須要會的高頻面題
  • 【NLP 面試寶典 之 Dropout】 必須要會的高頻面題
  • 【NLP 面試寶典 之 EarlyStopping】 必須要會的高頻面題
  • 【NLP 面試寶典 之 標籤平滑】 必須要會的高頻面題
  • 【NLP 面試寶典 之 Warm up 】 必須要會的高頻面題
  • 【NLP 面試寶典 之 置信學習】 必須要會的高頻面題
  • 【NLP 面試寶典 之 偽標籤】 必須要會的高頻面題
  • 【NLP 面試寶典 之 類別不均衡問題】 必須要會的高頻面題
  • 【NLP 面試寶典 之 交叉驗證】 必須要會的高頻面題
  • 【NLP 面試寶典 之 詞嵌入】 必須要會的高頻面題
  • 【NLP 面試寶典 之 One-Hot】 必須要會的高頻面題
  • ......

BERT 模型面

  • 【NLP 面試寶典 之 BERT模型】 必須要會的高頻面題
  • 【NLP 面試寶典 之 BERT變體】 必須要會的高頻面題
  • 【NLP 面試寶典 之 BERT應用】 必須要會的高頻面題
  • ......

LLMs 微調面

  • 【NLP 面試寶典 之 LoRA微調】 必須要會的高頻面題
  • 【NLP 面試寶典 之 Prompt】 必須要會的高頻面題
  • 【NLP 面試寶典 之 提示學習微調】 必須要會的高頻面題
  • 【NLP 面試寶典 之 PEFT微調】 必須要會的高頻面題
  • 【NLP 面試寶典 之 Chain-of-Thought微調】 必須要會的高頻面題
  • ......

本文由mdnice多平臺釋出

相關文章