模型概述
模型特點
模型能力
使用案例
🚀 Gemma 3n模型
Gemma 3n是谷歌推出的輕量級多模態模型,基於Transformer架構,支持文本、音頻和視覺(圖像和視頻)輸入。該模型具有多種架構創新,可在低資源設備上高效運行,適用於內容創作、研究教育等多個領域。
🚀 快速開始
本倉庫對應Gemma 3n E4B的發佈版本,可與Hugging Face的transformers
庫配合使用,支持文本、音頻和視覺(圖像和視頻)輸入。
安裝依賴
Gemma 3n從transformers 4.53.0版本開始支持,使用前需安裝最新版本的transformers
庫。
$ pip install -U transformers
運行示例
使用pipeline
API進行推理
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
torch_dtype=torch.bfloat16,
model="google/gemma-3n-e4b",
device="cuda",
)
output = pipe(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",
text="<image_soft_token> in this image, there is"
)
print(output)
# [{'input_text': '<image_soft_token> in this image, there is',
# 'generated_text': '<image_soft_token> in this image, there is a beautiful flower and a bee is sucking nectar and pollen from the flower.'}]
在單GPU上運行模型
from transformers import AutoProcessor, Gemma3nForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3n-e4b"
model = Gemma3nForConditionalGeneration.from_pretrained(model_id, device="cuda", torch_dtype=torch.bfloat16).eval()
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"
image = Image.open(requests.get(url, stream=True).raw)
prompt = "<image_soft_token> in this image, there is"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# a bee on a flower.
✨ 主要特性
- 多模態支持:支持文本、音頻、圖像和視頻輸入,能夠處理多種類型的任務。
- 架構創新:採用MatFormer架構,允許在E4B模型中嵌套子模型,提供了一個子模型(E2B),也可以使用Mix-and-Match方法訪問各種自定義大小的模型。
- 高效運行:根據有效參數有兩種大小可供選擇,通過將低利用率矩陣從加速器中卸載,該模型的內存佔用與傳統的4B模型相當。
- 多語言支持:使用超過140種語言的訓練數據,具備良好的跨語言處理能力。
📦 安裝指南
Gemma 3n從transformers 4.53.0版本開始支持,使用前需安裝最新版本的transformers
庫。
$ pip install -U transformers
💻 使用示例
基礎用法
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
torch_dtype=torch.bfloat16,
model="google/gemma-3n-e4b",
device="cuda",
)
output = pipe(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",
text="<image_soft_token> in this image, there is"
)
print(output)
# [{'input_text': '<image_soft_token> in this image, there is',
# 'generated_text': '<image_soft_token> in this image, there is a beautiful flower and a bee is sucking nectar and pollen from the flower.'}]
高級用法
from transformers import AutoProcessor, Gemma3nForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3n-e4b"
model = Gemma3nForConditionalGeneration.from_pretrained(model_id, device="cuda", torch_dtype=torch.bfloat16).eval()
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"
image = Image.open(requests.get(url, stream=True).raw)
prompt = "<image_soft_token> in this image, there is"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# a bee on a flower.
📚 詳細文檔
模型信息
描述
Gemma是谷歌推出的一系列輕量級、先進的開源模型,基於與Gemini模型相同的研究和技術構建。Gemma 3n模型專為在低資源設備上高效運行而設計,支持多模態輸入,能夠處理文本、圖像、視頻和音頻輸入,並生成文本輸出,提供預訓練和指令微調變體的開放權重。這些模型使用了超過140種語言的訓練數據。
Gemma 3n模型採用選擇性參數激活技術來降低資源需求,該技術允許模型以2B和4B的有效參數大小運行,低於其實際包含的總參數數量。有關Gemma 3n高效參數管理技術的更多信息,請參閱Gemma 3n頁面。
輸入和輸出
屬性 | 詳情 |
---|---|
輸入 | 1. 文本字符串,如問題、提示或待總結的文檔 2. 圖像,歸一化為256x256、512x512或768x768分辨率,並編碼為每個256個令牌 3. 音頻數據,單通道每秒編碼為6.25個令牌 4. 總輸入上下文為32K個令牌 |
輸出 | 1. 對輸入的生成文本響應,如圖像內容分析、文檔摘要等 2. 總輸出長度最多為32K個令牌,減去請求輸入令牌 |
模型數據
訓練數據集
這些模型在包含多種來源的數據集上進行訓練,總計約11萬億個令牌。訓練數據的知識截止日期為2024年6月,主要組成部分包括:
- 網頁文檔:多樣化的網頁文本集合,確保模型接觸到廣泛的語言風格、主題和詞彙,訓練數據集包含超過140種語言的內容。
- 代碼:讓模型接觸代碼有助於學習編程語言的語法和模式,提高生成代碼和理解代碼相關問題的能力。
- 數學:對數學文本的訓練有助於模型學習邏輯推理、符號表示和處理數學查詢。
- 圖像:廣泛的圖像數據使模型能夠執行圖像分析和視覺數據提取任務。
- 音頻:多樣化的聲音樣本使模型能夠識別語音、從錄音中轉錄文本並識別音頻數據中的信息。
這些不同數據源的組合對於訓練一個強大的多模態模型至關重要,該模型可以處理各種不同的任務和數據格式。
數據預處理
對訓練數據應用的主要數據清理和過濾方法包括:
- CSAM過濾:在數據準備過程的多個階段應用嚴格的CSAM(兒童性虐待材料)過濾,以確保排除有害和非法內容。
- 敏感數據過濾:作為使Gemma預訓練模型安全可靠的一部分,使用自動化技術從訓練集中過濾出某些個人信息和其他敏感數據。
- 其他方法:根據內容質量和安全性進行過濾,符合我們的政策。
實現信息
硬件
Gemma使用張量處理單元(TPU)硬件(TPUv4p、TPUv5p和TPUv5e)進行訓練。訓練生成式模型需要大量的計算能力,TPU專門為機器學習中常見的矩陣運算而設計,在這一領域具有以下優勢:
- 性能:TPU專門設計用於處理訓練生成式模型涉及的大量計算,與CPU相比可以顯著加速訓練。
- 內存:TPU通常配備大量高帶寬內存,允許在訓練期間處理大型模型和批量大小,有助於提高模型質量。
- 可擴展性:TPU Pod(大型TPU集群)為處理大型基礎模型不斷增長的複雜性提供了可擴展的解決方案,可以將訓練分佈在多個TPU設備上以實現更快、更高效的處理。
- 成本效益:在許多情況下,與基於CPU的基礎設施相比,TPU可以為訓練大型模型提供更具成本效益的解決方案,特別是考慮到更快的訓練節省的時間和資源。
這些優勢與谷歌對可持續運營的承諾相一致。
軟件
訓練使用JAX和ML Pathways進行。JAX允許研究人員利用最新一代的硬件(包括TPU)進行更快、更高效的大型模型訓練。ML Pathways是谷歌構建能夠跨多個任務進行泛化的人工智能系統的最新努力,特別適用於基礎模型,包括像這樣的大型語言模型。
JAX和ML Pathways的結合使用在關於Gemini系列模型的論文中有描述:“Jax和Pathways的‘單控制器’編程模型允許單個Python進程編排整個訓練運行,大大簡化了開發工作流程。”
評估
基準測試結果
這些模型在全精度(float32)下針對大量不同的數據集和指標進行評估,以涵蓋內容生成的不同方面。標記為IT的評估結果是針對指令微調模型,標記為PT的評估結果是針對預訓練模型。
推理和事實性
基準測試 | 指標 | n-shot | E2B PT | E4B PT |
---|---|---|---|---|
HellaSwag | 準確率 | 10-shot | 72.2 | 78.6 |
BoolQ | 準確率 | 0-shot | 76.4 | 81.6 |
PIQA | 準確率 | 0-shot | 78.9 | 81.0 |
SocialIQA | 準確率 | 0-shot | 48.8 | 50.0 |
TriviaQA | 準確率 | 5-shot | 60.8 | 70.2 |
Natural Questions | 準確率 | 5-shot | 15.5 | 20.9 |
ARC-c | 準確率 | 25-shot | 51.7 | 61.6 |
ARC-e | 準確率 | 0-shot | 75.8 | 81.6 |
WinoGrande | 準確率 | 5-shot | 66.8 | 71.7 |
BIG-Bench Hard | 準確率 | few-shot | 44.3 | 52.9 |
DROP | 令牌F1分數 | 1-shot | 53.9 | 60.8 |
多語言
基準測試 | 指標 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
MGSM | 準確率 | 0-shot | 53.1 | 60.7 |
WMT24++ (ChrF) | 字符級F分數 | 0-shot | 42.7 | 50.1 |
Include | 準確率 | 0-shot | 38.6 | 57.2 |
MMLU (ProX) | 準確率 | 0-shot | 8.1 | 19.9 |
OpenAI MMLU | 準確率 | 0-shot | 22.3 | 35.6 |
Global-MMLU | 準確率 | 0-shot | 55.1 | 60.3 |
ECLeKTic | ECLeKTic分數 | 0-shot | 2.5 | 1.9 |
STEM和代碼
基準測試 | 指標 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
GPQA Diamond | 寬鬆準確率/準確率 | 0-shot | 24.8 | 23.7 |
LiveCodeBench v5 | pass@1 | 0-shot | 18.6 | 25.7 |
Codegolf v2.2 | pass@1 | 0-shot | 11.0 | 16.8 |
AIME 2025 | 準確率 | 0-shot | 6.7 | 11.6 |
其他基準測試
基準測試 | 指標 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
MMLU | 準確率 | 0-shot | 60.1 | 64.9 |
MBPP | pass@1 | 3-shot | 56.6 | 63.6 |
HumanEval | pass@1 | 0-shot | 66.5 | 75.0 |
LiveCodeBench | pass@1 | 0-shot | 13.2 | 13.2 |
HiddenMath | 準確率 | 0-shot | 27.7 | 37.7 |
Global-MMLU-Lite | 準確率 | 0-shot | 59.0 | 64.5 |
MMLU (Pro) | 準確率 | 0-shot | 40.5 | 50.6 |
倫理和安全
評估方法
我們的評估方法包括結構化評估和對相關內容政策的內部紅隊測試。紅隊測試由多個不同的團隊進行,每個團隊有不同的目標和人類評估指標。這些模型針對與倫理和安全相關的多個不同類別進行評估,包括:
- 兒童安全:評估文本到文本和圖像到文本提示,涵蓋兒童安全政策,包括兒童性虐待和剝削。
- 內容安全:評估文本到文本和圖像到文本提示,涵蓋安全政策,包括騷擾、暴力和血腥內容以及仇恨言論。
- 代表性危害:評估文本到文本和圖像到文本提示,涵蓋安全政策,包括偏見、刻板印象和有害關聯或不準確信息。
除了開發階段的評估,我們還進行“保證評估”,這是我們獨立的內部評估,用於責任治理決策。這些評估與模型開發團隊分開進行,為發佈決策提供信息。高層級的評估結果會反饋給模型團隊,但提示集不會公開,以防止過擬合併保留結果為決策提供信息的能力。顯著的保證評估結果作為發佈審查的一部分報告給我們的責任與安全委員會。
評估結果
在所有安全測試領域,相對於之前的Gemma模型,我們在兒童安全、內容安全和代表性危害等類別中看到了安全水平的表現。所有測試均在沒有安全過濾器的情況下進行,以評估模型的能力和行為。對於文本到文本、圖像到文本和音頻到文本,以及所有模型大小,模型產生的政策違規最少,並且在高嚴重性違規方面相對於之前的Gemma模型表現出顯著改進。我們評估的一個侷限性是主要包括英語提示。
使用和限制
預期用途
開源生成式模型在各個行業和領域有廣泛的應用,以下潛在用途列表並不全面,目的是提供有關模型創建者在模型訓練和開發過程中考慮的可能用例的上下文信息。
- 內容創作和通信
- 文本生成:生成創意文本格式,如詩歌、腳本、代碼、營銷文案和電子郵件草稿。
- 聊天機器人和對話式AI:為客戶服務、虛擬助手或交互式應用程序提供對話界面。
- 文本摘要:生成文本語料庫、研究論文或報告的簡潔摘要。
- 圖像數據提取:提取、解釋和總結視覺數據以進行文本通信。
- 音頻數據提取:轉錄口語、將語音翻譯成其他語言的文本並分析基於聲音的數據。
- 研究和教育
- 自然語言處理(NLP)和生成式模型研究:這些模型可以作為研究人員試驗生成式模型和NLP技術、開發算法和推動該領域發展的基礎。
- 語言學習工具:支持交互式語言學習體驗,有助於語法糾正或提供寫作練習。
- 知識探索:通過生成摘要或回答特定主題的問題,幫助研究人員探索大量數據。
限制
- 訓練數據
- 訓練數據的質量和多樣性顯著影響模型的能力,訓練數據中的偏差或差距可能導致模型響應的侷限性。
- 訓練數據集的範圍決定了模型能夠有效處理的主題領域。
- 上下文和任務複雜性
- 模型更擅長可以用清晰提示和指令表述的任務,開放式或高度複雜的任務可能具有挑戰性。
🔧 技術細節
Gemma 3n模型具有多個架構創新:
- 有效參數設計:根據有效參數有兩種大小可供選擇,雖然該模型的原始參數數量為8B,但架構設計允許通過將低利用率矩陣從加速器中卸載,以與傳統4B模型相當的內存佔用運行。
- MatFormer架構:使用MatFormer架構,允許在E4B模型中嵌套子模型,我們提供一個子模型(E2B),也可以使用Mix-and-Match方法訪問各種自定義大小的模型。
更多關於這些技術的信息,請參閱技術博客文章和Gemma文檔。
📄 許可證
本模型的許可證為gemma,使用前需訪問Gemma 3n查看詳細信息。
訪問Gemma
要在Hugging Face上訪問Gemma,您需要審查並同意Google的使用許可。為此,請確保您已登錄Hugging Face並點擊下方按鈕,請求將立即處理。 確認許可
引用
@article{gemma_3n_2025,
title={Gemma 3n},
url={https://ai.google.dev/gemma/docs/gemma-3n},
publisher={Google DeepMind},
author={Gemma Team},
year={2025}
}
模型頁面和資源
⚠️ 重要提示
本倉庫對應Gemma 3n E4B的發佈版本,使用時請確保transformers版本在4.53.0及以上。
💡 使用建議
在使用模型時,建議根據具體任務選擇合適的輸入格式和參數,以獲得更好的結果。同時,注意訓練數據的侷限性,對於複雜任務可以嘗試提供更清晰的提示和指令。








