Google 發布最新開放大語言模型 Gemma 2,現已登陸 Hugging Face Hub

Google 發布了最新的開放大語言模型 Gemma 2,我們非常高興與 Google 合作,確保其在 Hugging Face 生態系統中的最佳集成。你可以在 Hub 上找到 4 個開源模型 (2 個基礎模型和 2 個微調模型) 。發布的功能和集成包括:

  • Hub 上的模型https://hf.co/collections/google/g-667d6600fd5220e7b967f315

  • Hugging FaceTransformers 集成https://github.com/huggingface/transformers/releases/tag/v4.42.0

  • 與 Google Cloud 和推理端點的集成

Gemma 2 是什么?

Gemma 2 是 Google 最新的開放大語言模型。它有兩種規模:90 億參數和 270 億參數,分別具有基礎 (預訓練) 和指令調優版本。Gemma 基于 Google DeepMind 的 Gemini,擁有 8K Tokens 的上下文長度:

  • gemma-2-9bhttps://hf.co/google/gemma-2-9b90 億基礎模型。

  • gemma-2-9b-ithttps://hf.co/google/gemma-2-9b-it90 億基礎模型的指令調優版本。

  • gemma-2-27bhttps://hf.co/google/gemma-2-27b270 億基礎模型。

  • gemma-2-27b-ithttps://hf.co/google/gemma-2-27b-it270 億基礎模型的指令調優版本。

Gemma 2 模型的訓練數據量約為其第一代的兩倍,總計 13 萬億 Tokens (270 億模型) 和 8 萬億 Tokens (90 億模型) 的網頁數據 (主要是英語) 、代碼和數學數據。我們不知道訓練數據混合的具體細節,只能猜測更大和更仔細的數據整理是性能提高的重要因素之一。

Gemma 2 與第一代使用相同的許可證,這是一個允許再分發、微調、商業用途和衍生作品的寬松許可證。

立刻在 Hugging Chat 里體驗 Gemma2

https://hf.co/chat/models/google/gemma-2-27b-it

Gemma 2 的技術進展

Gemma 2 與第一代有許多相似之處。它有 8192 Tokens 的上下文長度,并使用旋轉位置嵌入 (RoPE)。與原始 Gemma 相比,Gemma 2 的主要進展有四點:

  • 滑動窗口注意力: 交替使用滑動窗口和全二次注意力以提高生成質量。

  • Logit 軟上限: 通過將 logits 縮放到固定范圍來防止其過度增長,從而改進訓練。

  • 知識蒸餾: 利用較大的教師模型來訓練較小的模型(適用于 90 億模型)。

  • 模型合并: 將兩個或多個大語言模型合并成一個新的模型。

Gemma 2 使用JAX和ML Pathways在Google Cloud TPU (27B on v5p和9B on TPU v4)上進行訓練。Gemma 2 Instruct 已針對對話應用進行了優化,并使用監督微調 (SFT)、大模型蒸餾、人類反饋強化學習 (RLHF) 和模型合并 (WARP) 來提高整體性能。

  • JAXhttps://jax.readthedocs.io/en/latest/quickstart.html

  • ML Pathwayshttps://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/

  • Google Cloud TPU 27B on v5phttps://cloud.google.com/blog/products/ai-machine-learning/introducing-cloud-tpu-v5p-and-ai-hypercomputer?hl=en

  • 9B on TPU v4https://cloud.google.com/tpu/docs/v4

與預訓練數據集混合類似,關于微調數據集或與 SFT 和RLHF相關的超參數的細節尚未共享。

  • RLHFhttps://hf.co/blog/rlhf

滑動窗口注意力

滑動窗口注意力是一種用于減少 Transformer 模型中注意力計算的內存和時間需求的方法,已在Mistral等模型中使用。Gemma 2 的新穎之處在于每隔一層應用滑動窗口 (局部 - 4096 Tokens) ,而中間層仍使用全局二次注意力 (8192 Tokens) 。我們推測這是為了在長上下文情況下提高質量 (半數層仍然關注所有 Tokens) ,同時部分受益于滑動注意力的優勢。

  • 滑動窗口注意力https://hf.co/papers/2004.05150

  • Mistralhttps://hf.co/papers/2310.06825

軟上限和注意力實現

軟上限是一種防止 logits 過度增長而不截斷它們的技術。它通過將 logits 除以最大值閾值 (soft_cap),然后通過 tanh 層 (確保它們在 (-1, 1) 范圍內) ,最后再乘以閾值。這確保了最終值在 (-soft_cap, +soft_cap) 區間內,不會丟失太多信息但穩定了訓練。

綜合起來,logits 的計算公式為:logits ← soft_cap ? tanh(logits/soft_cap)

Gemma 2 對最終層和每個注意力層都采用了軟上限。注意力 logits 上限為 50.0,最終 logits 上限為 30.0。

在發布時,軟上限與 Flash Attention / SDPA 不兼容,但它們仍可用于推理以實現最高效率。Gemma 2 團隊觀察到,在推理過程中不使用軟上限機制時,差異非常小。

注意:對于穩定的微調運行,仍需啟用軟上限,因此我們建議使用 eager 注意力進行微調,而不是 SDPA。

知識蒸餾

知識蒸餾是一種常用技術,用于訓練較小的 學生 模型以模仿較大但表現更好的 教師 模型的行為。這是通過將大語言模型的下一個 Token 預測任務與教師提供的 Token 概率分布 (例如 GPT-4、Claude 或 Gemini) 結合起來,從而為學生提供更豐富的學習信號。

根據 Gemma 2 技術報告,知識蒸餾用于預訓練 90 億模型,而 270 億模型則是從頭開始預訓練的。

在后期訓練中,Gemma 2 團隊生成了來自教師 (報告中未指定,但可能是 Gemini Ultra) 的多樣化補全集,然后使用這些合成數據通過 SFT 訓練學生模型。這也是許多開源模型的基礎,如Zephyr和OpenHermes,它們完全基于較大大語言模型的合成數據進行訓練。

  • Zephyrhttps://hf.co/HuggingFaceH4/zephyr-7b-beta

  • OpenHermeshttps://hf.co/teknium/OpenHermes-2.5-Mistral-7B

盡管有效,但這種方法存在缺點,因為學生和教師之間的模型容量不匹配可能導致 訓練-推理不匹配,即學生在推理期間生成的文本與訓練期間看到的文本不同。

為解決這個問題,Gemma 2 團隊采用了“在線蒸餾”,其中學生從 SFT 提示生成補全。這些補全用于計算教師和學生 logits 之間的 KL 散度。通過在整個訓練過程中最小化 KL 散度,學生能夠準確地模擬教師的行為,同時最小化訓練-推理不匹配。

  • “在線蒸餾”https://arxiv.org/pdf/2306.13649

這種方法非常有趣,正如我們在社區中看到的那樣,在線 DPO 等在線方法會產生更強的模型,而在線蒸餾的一個優勢在于只需要教師的 logits,因此無需依賴獎勵模型或大語言模型作為評審員來改進模型。我們期待看到這種方法在未來幾個月中是否會在微調人員中變得更受歡迎!

模型合并

模型合并是一種將兩個或多個大語言模型合并成一個新模型的技術。這是相對較新和實驗性的,可以不使用加速器進行。Mergekit是一個流行的開源工具包,用于合并大語言模型。它實現了線性、SLERP、TIES、DARE 和其他合并技術。

  • 模型合并https://hf.co/blog/mlabonne/merge-models

  • Mergekithttps://github.com/arcee-ai/mergekit

根據技術報告,Gemma 2 使用了Warp,這是一種新型合并技術,分三個獨特階段進行合并:

  • Warphttps://arxiv.org/abs/2406.16768

  1. 指數移動平均 (EMA):在強化學習 (RL) 微調過程中應用。

  2. 球形線性插值 (SLERP):在多個策略的 RL 微調后應用。

  3. 向初始化線性插值 (LITI):在 SLERP 階段之后應用。

Gemma 2 的評估

Gemma 模型的表現如何?以下是根據技術報告和新版開源 LLM 排行榜對其他開源開放模型的性能比較。

  • 開源 LLM 排行榜https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard

技術報告結果

Gemma 2 的技術報告比較了不同開源 LLM 在之前開源 LLM 排行榜基準上的性能。


Llama 3 (70B)Qwen 1.5 (32B)Gemma 2 (27B)
MMLU79.274.375.2
GSM8K76.961.175.1
ARC-c68.863.671.4
HellaSwag88.085.086.4
Winogrande85.381.583.7

該報告還比較了小型語言模型的性能。

BenchmarkMistral (7B)Llama 3 (8B)Gemma (8B)Gemma 2 (9B)
MMLU62.566.664.471.3
GSM8K34.545.750.962.3
ARC-C60.559.261.168.4
HellaSwag83.082.082.381.9
Winogrande78.578.579.080.6

開源 LLM 排行榜結果

注意:我們目前正在新的開源 LLM 排行榜基準上單獨評估 Google Gemma 2,并將在今天晚些時候更新此部分。

如何提示 Gemma 2

基礎模型沒有提示格式。像其他基礎模型一樣,它們可以用于繼續輸入序列的合理延續或零樣本/少樣本推理。指令版本有一個非常簡單的對話結構:

<start_of_turn>user
knock?knock<end_of_turn>
<start_of_turn>model
who?is?there<end_of_turn>
<start_of_turn>user
LaMDA<end_of_turn>
<start_of_turn>model
LaMDA?who?<end_of_turn><eos>

必須精確地復制此格式才能有效使用。稍后我們將展示如何使用 transformers 中的聊天模板輕松地復制指令提示。

演示

你可以在 Hugging Chat 上與 Gemma 27B 指令模型聊天!查看此鏈接:
https://hf.co/chat/models/google/gemma-2-27b-it

使用 Hugging Face Transformers

隨著 Transformers版本 4.42的發布,你可以使用 Gemma 并利用 Hugging Face 生態系統中的所有工具。要使用 Transformers 使用 Gemma 模型,請確保使用最新的 transformers 版本:

  • 版本 4.42https://github.com/huggingface/transformers/releases/tag/v4.42.0

pip?install?"transformers==4.42.1"?--upgrade

以下代碼片段展示了如何使用 transformers 使用 gemma-2-9b-it。它需要大約 18 GB 的 RAM,適用于許多消費者 GPU。相同的代碼片段適用于 gemma-2-27b-it,需要 56GB 的 RAM,使其非常適合生產用例。通過加載 8-bit 或 4-bit 模式,可以進一步減少內存消耗。

from?transformers?import?pipeline
import?torchpipe?=?pipeline("text-generation",model="google/gemma-2-9b-it",model_kwargs={"torch_dtype":?torch.bfloat16},device="cuda",
)messages?=?[{"role":?"user",?"content":?"Who?are?you??Please,?answer?in?pirate-speak."},
]
outputs?=?pipe(messages,max_new_tokens=256,do_sample=False,
)
assistant_response?=?outputs[0]["generated_text"][-1]["content"]
print(assistant_response)

啊哈,船長!我是數字海洋上的一艘謙卑的詞語之船。他們叫我 Gemma,是 Google DeepMind 的杰作。我被訓練在一堆文本寶藏上,學習如何像一個真正的海盜一樣說話和寫作。

問我你的問題吧,我會盡力回答,啊哈!🦜📚

我們使用 bfloat16 因為這是指令調優模型的參考精度。在你的硬件上運行 float16 可能會更快,90 億模型的結果應該是相似的。然而,使用 float16 時,270 億指令調優模型會產生不穩定的輸出:對于該模型權重,你必須使用 bfloat16。

你還可以自動量化模型,以 8-bit 甚至 4-bit 模式加載。加載 4-bit 模式的 270 億版本需要大約 18 GB 的內存,使其兼容許多消費者顯卡和 Google Colab 中的 GPU。這是你在 4-bit 模式下加載生成管道的方式:

pipeline?=?pipeline("text-generation",model=model,model_kwargs={"torch_dtype":?torch.bfloat16,"quantization_config":?{"load_in_4bit":?True}},
)

有關使用 Transformers 模型的更多詳細信息,請查看模型卡。

  • 模型卡https://hf.co/gg-hf/gemma-2-9b

與 Google Cloud 和推理端點的集成

注意:我們目前正在為 GKE 和 Vertex AI 添加新的容器,以高效運行 Google Gemma 2。我們將在容器可用時更新此部分。

其他資源

  • Hub 上的模型https://hf.co/collections/google/g-667d6600fd5220e7b967f315

  • 開放 LLM 排行榜https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard

  • Hugging Chat 上的聊天演示https://hf.co/chat/models/google/gemma-2-27b-it

  • Google 博客https://blog.google/technology/developers/google-gemma-2/

  • Google Notebook 即將推出

  • Vertex AI 模型花園 即將推出

致謝

在生態系統中發布此類模型及其支持和評估離不開許多社區成員的貢獻,包括Clémentine和Nathan對 LLM 的評估;Nicolas對文本生成推理的支持;Arthur、Sanchit、Joao和Lysandre對 Gemma 2 集成到 Transformers 中的支持;Nathan和Victor使 Gemma 2 在 Hugging Chat 中可用。

  • Clémentinehttps://hf.co/clefourrier

  • Nathanhttps://hf.co/SaylorTwift

  • Nicolashttps://hf.co/Narsil

  • Arthurhttps://hf.co/ArthurZ

  • Sanchithttps://hf.co/sanchit-gandhi

  • Joaohttps://hf.co/joaogante

  • Lysandrehttps://hf.co/lysandre

  • Nathanhttps://hf.co/nsarrazin

  • Victorhttps://hf.co/victor

感謝 Google 團隊發布 Gemma 2!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37313.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37313.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java家教系統小程序APP公眾號h5源碼

讓學習更高效&#xff0c;更便捷 &#x1f31f; 引言&#xff1a;家教新選擇&#xff0c;小程序來助力 在快節奏的現代生活中&#xff0c;家長們越來越注重孩子的教育問題。然而&#xff0c;如何為孩子找到一位合適的家教老師&#xff0c;成為了許多家長頭疼的問題。現在&…

交叉編譯中的 --build、 --host和 --target

在交叉編譯中比較常見的一些參數就是build、host和target了,正確的理解這三者的含義對于交叉編譯是非常重要的,下面就此進行解釋   --build=編譯該軟件所使用的平臺   --host=該軟件將運行在哪個平臺   --target=該軟件所處理的目標平臺 我們經常會看到如下代碼:   …

谷歌個人號,20人連續封測14天所需設備該怎么解決?

現在&#xff0c;在Google Play上架應用&#xff0c;對于大部分開發者來說&#xff0c;真的是不小的挑戰&#xff0c;因為目前谷歌上架政策越來越嚴格了。特別是從2023年11月13日起&#xff0c;新政策要求個人開發者賬號的應用必須經過20個獨立用戶連續14天的封閉測試&#xff…

【C語言】--分支和循環(1)

&#x1f37f;個人主頁: 起名字真南 &#x1f9c7;個人專欄:【數據結構初階】 【C語言】 目錄 前言1 if 語句1.1 if1.2 else1.3 嵌套if1.4 懸空else 前言 C語言是結構化的程序設計語言&#xff0c;這里的結構指的是順序結構、選擇結構、循環結構。 我們可以用if、switch實現分支…

vue2實例實現一個初步的vuex

vue2實例實現一個初步的vuex 實現源碼&#xff1a;vue2-review 1.App.vue 2.store目錄下的index.js 3.效果 微信公眾號&#xff1a;刺頭拾年

MATLAB的.m文件與Python的.py文件:比較與互參

simulink MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參相似之處**1. 基本結構****2. 執行邏輯****3. 可讀性和維護性** 差異性**1. 語法特性****2. 性能和應用****3. 開發環境** 互相學習的可能性結論 MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參 在編…

擴展閱讀:什么是中斷

如果用一句話概括操作系統的原理,那就是:整個操作系統就是一個中斷驅動的死循環,用最簡單的代碼解釋如下: while(true){doNothing(); } 其他所有事情都是由操作系統提前注冊的中斷機制和其對應的中斷處理函數完成的。我們點擊一下鼠標,敲擊一下鍵盤,執行一個程序,…

重生之我要學后端100--計算機網絡部分概念(持續更新)

TCP/IP、DNS、負載均衡器等等 前言一、TCP/IP&#xff08;傳輸控制協議/互聯網協議&#xff09;二、DNS&#xff08;域名系統&#xff09;三、負載均衡器其他網絡概念 前言 了解網絡基礎知識對于后端開發者至關重要&#xff0c;因為這些知識有助于理解應用程序是如何在更廣闊的…

中英雙語介紹美國的州:麻省,馬塞諸塞州(Massachusetts)

中文版 馬薩諸塞州&#xff08;Massachusetts&#xff09;位于美國東北部的新英格蘭地區&#xff0c;是美國歷史最悠久、文化最豐富的州之一。以下是對馬薩諸塞州各方面的詳細介紹&#xff1a; 人口 截至2020年&#xff0c;美國人口普查數據顯示&#xff0c;馬薩諸塞州的人口…

C++ 之運算符

作用&#xff1a;用于執行代碼的運算 主要的運算符類型&#xff1a; 運算符類型作用算術運算符用于處理四則運算賦值運算符用于將表達式的值賦給變量比較運算符用于表達式的比較&#xff0c;并返回一個真值或假植邏輯運算符用于根據表達式的值返回真值或假植 1 算術運算符 …

Spring MVC中的DispatcherServlet、HandlerMapping和ViewResolver的作用

在Spring MVC框架中&#xff0c;DispatcherServlet、HandlerMapping和ViewResolver是核心組件&#xff0c;它們各自承擔著不同的角色和任務&#xff1a; 1.DispatcherServlet&#xff1a;它是Spring MVC生命周期中的前端控制器&#xff0c;負責接收HTTP請求并將它們分發給相應的…

5.x86游戲實戰-CE定位基地址

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;4.x86游戲實戰-人物狀態標志位 上一個內容通過CE未知的初始值、未變動的數值、…

機器學習SVR 隨機森林 RBF神經網絡做回歸預測的MATLAB代碼

SVR 參考這篇文章 Libsvm使用筆記【matlab】 close all; clc clear %% 下載數據 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 數據歸一化 %輸入樣本歸一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…

設置用戶訪問hdfs

如果hadoop沒有啟Kerberos或者從Kerberos獲取的用戶為null&#xff0c;那么獲取HADOOP_USER_NAME環境變量&#xff0c;并將它的值作為Hadoop執行用戶。如果我們沒有設置HADOOP_USER_NAME環境變量&#xff0c;那么程序將調用whoami來獲取當前用戶&#xff0c;并用groups來獲取用…

JVM相關總結

JVM的些許問題 1.JVM內存區域劃分 2.JVM類加載過程 3.JVM的垃圾回收機制 1.JVM的內存區域劃分 一個運行起來的Java進程就是一個JVM虛擬機,需要從操作系統申請一大片內存,就會把內存劃分成幾個區域,每個區域都有不同的作用 常見的面試題 2.JVM類加載過程 熟練背誦 ! ! !…

printf內幕----編程內幕(1)

曾幾何時&#xff0c;您有沒有在夜深人靜的時候想過一個問題&#xff0c;printf內部究竟做了什么&#xff1f;為何可以輸出到屏幕上顯示出來&#xff1f; 先看看這段熟悉的代碼&#xff1a; // // Created by xi.chen on 2017/9/2. // Copyright © 2017 All rights rese…

WordPress中文網址導航欄主題風格模版HaoWa

模板介紹 WordPress響應式網站中文網址導航欄主題風格模版HaoWa1.3.1源碼 HaoWA主題風格除行為主體導航欄目錄外&#xff0c;對主題風格需要的小控制模塊都開展了敞開式的HTML在線編輯器方式的作用配備&#xff0c;另外預埋出默認設置的編碼構造&#xff0c;便捷大伙兒在目前…

入門JavaWeb之 JDBC 連接數據庫

JDBC&#xff1a;Java Database Connectivity&#xff0c;Java 數據庫連接 需要 jar 包支持&#xff1a; java.sql javax.sql mysql-connector-java&#xff08;連接驅動&#xff0c;必須導入&#xff09; 在 MySQL 先建個 jdbc 數據庫后 USE jdbc; 執行后再 CREATE TABLE…

15- 22題聚合函數 - 高頻 SQL 50 題基礎版

目錄 1. 相關知識點2. 例子2.15 - 有趣的電影2.16 - 平均售價2.17 - 項目員工 I2.18 - 各賽事的用戶注冊率2.19 - 查詢結果的質量和占比2.20 - 每月交易 I2.21 - 即時食物配送 II2.22 - 游戲玩法分析 IV 1. 相關知識點 函數 函數含義order by排序group by分組between 小值 an…

Chrome備份數據

Chrome備份數據 1、 導出谷歌瀏覽器里的歷史記錄 參考&#xff1a;https://blog.csdn.net/qq_32824605/article/details/127504219 在資源管理器中找到History文件&#xff0c;文件路徑&#xff1a; C:\Users\你的電腦用戶名\AppData\Local\Google\Chrome\User Data\Default …