谷歌「誠意之作」,開源9B、27B版Gemma2,主打高效、經濟!

机器之心發表於2024-06-28

效能翻倍的Gemma 2, 讓同量級的Llama3怎麼玩?


AI賽道上,科技巨頭們激烈角逐。前腳有GPT-4o問世,後腳就出現了Claude 3.5 Sonnet。如此激烈的爭鬥中,谷歌雖然發力較晚,但在短時間內就能有顯著的能力跟進,可見其技術發展與創新的潛力。

除了Gemini模型外,Gemma這一系列輕量級的SOTA開放模型似乎與我們距離更近。它基於Gemini模型相同的研究和技術構建,旨在讓每個人都擁有構建AI的工具。谷歌持續擴充套件Gemma家族,包括CodeGemma、RecurrentGemma和PaliGemma——每個模型都為不同的AI任務提供獨特的能力,並且可以透過與Hugging Face、NVIDIA和Ollama等合作伙伴輕鬆訪問。

圖片

現在,Gemma家族迎來新成員——Gemma 2,延續短小精悍傳統。Gemma 2此次提供的90億(9B)和270億(27B)引數的兩個版本,其推理效能和效率均優於第一代,並具有顯著的安全性改進。事實上,270億引數版本可以與體積超過其兩倍的模型進行同等級別的競爭,並且提供了此前只有專有模型才能實現的效能,而這種效能現在可以在單個NVIDIA H100 Tensor Core GPU或TPU主機上實現,從而大大降低了部署成本。

圖片

谷歌團隊在重新設計的架構上構建了Gemma 2,使得這位Gemma家族的新成員既能提供卓越的效能,又具有高效的推理能力。簡要概括一下,效能、成本、推理是它的突出特點:

  • 效能卓越:Gemma 2 27B模型在其同體積類別中提供了最佳效能,甚至可以與體積超過其兩倍的模型競爭。9B Gemma 2模型也在其同等體積類別中表現出色,並超越了Llama 3 8B和其他同類開放模型。
  • 高效率、低成本:27B Gemma 2模型設計用於在單個Google Cloud TPU主機、NVIDIA A100 80GB Tensor Core GPU或NVIDIA H100 Tensor Core GPU上以全精度高效執行推理,在保持高效能的同時大幅降低成本。這使得AI部署更加便捷和經濟實惠。
  • 超高速推理:Gemma 2經過最佳化,能夠在各種硬體上以驚人的速度執行,無論是強大的遊戲筆記本、高階桌上型電腦,還是基於雲的設定。使用者可以在Google AI Studio上嘗試全精度執行Gemma 2,也可以在CPU上使用Gemma.cpp的量化版本解鎖本地效能,或者透過Hugging Face Transformers在家用電腦上使用NVIDIA RTX或GeForce RTX進行嘗試。

圖片

以上是 Gemma2 與 Llama3、Grok-1 的得分資料對比。

其實從各項得分資料來看,此次開源的 9B 大模型優勢不是特別明顯。近1個月前智譜AI 開源的國產大模型 GLM-4-9B 更具有優勢。

圖片

此外,Gemma 2不僅更強大,還設計得更易於整合到工作流程中。谷歌為開發者提供了更多的可能性,讓他們能夠更輕鬆地構建和部署AI解決方案。

  • 開放且易於訪問:與原始Gemma模型一樣,Gemma 2允許開發者和研究人員共享和商業化創新成果。
  • 廣泛的框架相容性:Gemma 2相容主要的AI框架,如Hugging Face Transformers,以及透過Keras 3.0、vLLM、Gemma.cpp、Llama.cpp和Ollama原生支援的JAX、PyTorch和TensorFlow,使其能夠輕鬆與使用者偏好的工具和工作流程結合。此外,Gemma已透過NVIDIA TensorRT-LLM最佳化,可以在NVIDIA加速的基礎設施上執行,或作為NVIDIA NIM推理微服務執行,未來還將最佳化NVIDIA的NeMo,並且可以使用Keras和Hugging Face進行微調。除此之外,谷歌正在積極升級微調能力。
  • 輕鬆部署:從下個月開始,Google Cloud客戶將能夠在Vertex AI上輕鬆部署和管理Gemma 2。

谷歌還提供了由一系列實用示例和指南構成的新Gemma Cookbook,旨在幫助構建使用者自己的應用程式並針對特定任務微調Gemma 2模型。

Gemma Cookbook連結:https://github.com/google-gemini/gemma-cookbook

與此同時,谷歌還向開發者提供了前段時間在I/O大會上官宣的Gemini 1.5 Pro的200萬上下文視窗訪問許可權、Gemini API的程式碼執行功能,並在Google AI Studio中新增了Gemma 2。

  • 在最新的部落格中,谷歌宣佈向所有開發者開放了Gemini 1.5 Pro的200萬token上下文視窗訪問許可權。但是,隨著上下文視窗的增加,輸入成本也可能增加。為了幫助開發者減少使用相同token的多prompt任務成本,谷歌貼心地在Gemini API中為Gemini 1.5 Pro和1.5 Flash推出了上下文快取功能。
  • 為解決大型語言模型在處理數學或資料推理時需要生成和執行程式碼來提高準確性,谷歌在Gemini 1.5 Pro和1.5 Flash中啟用了程式碼執行功能。開啟後,模型可以動態生成並執行Python程式碼,並從結果中迭代學習,直到達到所需的最終輸出。執行沙盒不連線網際網路,並標配一些數值庫,開發者只需根據模型的輸出token進行計費。這是谷歌在模型功能中首次引入程式碼執行的步驟,今天即可透過Gemini API和Google AI Studio中的「高階設定」使用。
  • 谷歌希望讓所有開發者都能接觸到AI,無論是透過API金鑰整合Gemini模型,還是使用開放模型Gemma 2。為了幫助開發者動手操作Gemma 2模型,谷歌團隊將在Google AI Studio中提供其用於實驗。

以下是Gemma2的技術實驗報告,我們可以從多個角度深度解析了技術細節。

圖片

  • 論文地址:https://storage.googleapis.com/deepmind-media/gemma/gemma-2-report.pdf
  • 部落格地址:https://blog.google/technology/developers/google-gemma-2/

技術細節

與之前的 Gemma 模型類似,Gemma 2 模型也是基於僅解碼器的transformer架構。表 1 總結了模型的主要引數和架構選擇。

圖片

部分結構要素與第一版 Gemma 模型相似,即上下文長度為 8192 個 token、使用旋轉位置嵌入(RoPE)和近似 GeGLU 非線性。Gemma 1 和 Gemma 2 有一些不同之處,包括使用了更深的網路。主要差異總結如下:

  • 區域性滑動視窗和全域性注意力。研究團隊在每隔一層中交替使用區域性滑動視窗注意力和全域性注意力。區域性注意力層的滑動視窗大小設定為4096個token,而全域性注意力層的跨度設定為8192個token。
  • Logit軟封頂。根據Gemini 1.5的方法,研究團隊在每個注意力層和最終層限制logit,使得logit的值保持在−soft_cap和+soft_cap之間。
  • 對於9B和27B模型,研究團隊將注意力對數封頂設定為50.0,最終對數封頂設定為30.0。截至本文發表時,注意力logit軟封頂與常見的FlashAttention實現不相容,因此他們已從使用FlashAttention的庫中移除了此功能。研究團隊對模型生成進行了有無注意力logit軟封頂的消融實驗,發現大多數預訓練和後期評估中,生成質量幾乎不受影響。本文中的所有評估均使用包含注意力logit軟封頂的完整模型架構。然而,某些下游效能可能仍會受到此移除的輕微影響。
  • 使用RMSNorm進行post-norm 和pre-norm。為了穩定訓練,研究團隊使用RMSNorm對每個變換子層、注意力層和前饋層的輸入和輸出進行歸一化。
  • 分組查詢注意力。27B和9B模型均使用GQA,num_groups = 2,基於消融實驗表明在保持下游效能的同時提高了推理速度。

谷歌提供了預訓練部分不同於Gemma 1的簡要概述。

他們在主要為英文資料的13萬億token上對Gemma 2 27B進行了訓練,並對9B模型進行了8萬億token的訓練,對2.6B模型則進行了2萬億token的訓練。這些token來自各種資料來源,包括網頁文件、程式碼和科學文章。模型並不是多模態的,也沒有專門為最先進的多語言能力進行訓練。最終的資料混合透過類似於Gemini 1.0的消融研究所確定。

研究團隊使用TPUv4、TPUv5e和TPUv5p進行模型訓練,細節如下方表3所示。

圖片

在後訓練中,谷歌將預訓練模型微調為指令調整模型。

  • 首先,在混合的純文字、純英文合成和人工生成的prompt-響應對上應用監督微調(SFT)。
  • 然後,在這些模型上應用基於獎勵模型(RLHF)的強化學習,獎勵模型訓練基於token的純英文偏好資料,策略則與SFT階段使用相同的prompt。
  • 最後,透過平均每個階段獲得的模型以提高整體效能。最終的資料混合和訓練後方法,包括調優的超引數,都是基於在提高模型有用性的同時最小化與安全性和幻覺相關的模型危害來選擇的。

Gemma 2模型的微調採用了與Gemma 1模型不同的格式模式。谷歌使用了相同的控制token,具體如表4所述,表5中則提供了對話示例。

圖片

圖片

實驗及評估

在表6中可以發現,與從頭開始訓練相比,從更大的模型中提煉出來的結果提高了效能。需要注意的是,500B個token是2.6B模型最佳計算token數的10倍。研究團隊從7B模型進行蒸餾,以保持與從27B模型蒸餾到9B模型相似的比例。

圖片

在表7中,谷歌團隊測量了隨著模型規模增加進行蒸餾的影響。可以觀察到,隨著模型規模的擴大,這種增益仍然存在。在此消融實驗中,研究團隊保持教師模型的規模為7B,並訓練較小的模型以模擬最終教師和學生模型規模之間的差距。

圖片

此外,谷歌考慮到prompt/評估格式變化的影響,測量了在MMLU上的效能方差,如表11所示。Gemma 2B模型在格式穩健性方面略遜於較大的模型。值得注意的是,Mistral 7B在穩健性方面顯著低於Gemma系列模型。

圖片

研究團隊還評估了在13萬億token上訓練的27B模型(未經過蒸餾)的效能,並與類似規模的Qwen1.5 34B模型以及規模大2.5倍的LLaMA-3 70B模型在HuggingFace評估套件上的表現進行了比較,在表12中列出了評估結果。模型的選擇依據基於其在HuggingFace排行榜上的排名。總體來看,Gemma-2 27B模型在其規模類別中表現最佳,甚至可以與訓練時間更長的大模型進行同級別競爭。

圖片

Gemma-2 27B和9B指令微調模型在Chatbot Arena中進行了盲測評估,由人類評估員與其他SOTA模型進行對比。研究團隊在圖1中報告了ELO評分。

圖片

除此之外,研究團隊透過讓人類評估員與模型進行對話,並遵循指定的場景進行測試,評估了Gemma 1.1 7B、Gemma 2 9B和27B模型的多輪對話能力。

谷歌使用了一個包含 500 個場景的多樣化保留集合,每個場景描述了對模型的一系列請求,包括頭腦風暴、制定計劃或學習新知識。使用者平均互動次數為8.4次。最終發現,與Gemma 1.1相比,使用者對Gemma 2模型的對話滿意度和對話目標實現率的評價顯著更高(見表15)。此外,Gemma 2模型在從對話開始到後續輪次中,相比於Gemma 1.1 7B能夠更好地保持高質量的回應。

圖片

更多細節,請閱讀原論文。

相關文章