Google DeepMind 於 2026 年 4 月 2 日發布了 Gemma 4。這是迄今為止功能最強大的開放模型系列,基於與 Gemini 3 相同的研究成果,並以 Apache 2.0 授權發布。這意味著沒有使用上限、沒有限制性政策,以及完全的商業自由。
本文將詳細介紹 Gemma 4 是什麼、它的功能以及如何在專案中實際運作它。沒有廢話,只講解建構專案時真正重要的部分。
Gemma 4 是一系列開放權重的多模態模型,專為推理、程式碼生成和智能體工作流程而設計。它有四種尺寸:
| 模型 | 參數 | 上下文視窗 | 最佳用途 |
|---|---|---|---|
| E2B | 有效代幣數量 23 億(總計 51 億) | 代幣數量 12.8 萬 | 手機、樹莓派、物聯網 |
| E4B | 有效代幣數量 45 億(總計 80 億) | 代幣數量 12.8 萬 | 邊緣設備,快速推理 |
| 260億 A4B (MoE)| 總計260億,40億活躍 | 25.6萬個令牌 | 低延遲伺服器推理 |
| 31B (密集型) | 31B | 256K 代幣 | 最高品質,精細化基礎 |
每種尺寸都有基礎版和指令優化版(IT版)。對大多數開發人員來說,IT版是理想之選。
較小模型中的“E”前綴代表“有效參數”。這些模型使用一種稱為逐層嵌入(PLE)的技術,該技術將輔助嵌入訊號輸入到每個解碼器層,這意味著模型在推理時激活的參數更少,從而節省記憶體和電池電量。
26B 模型採用混合專家(MoE)架構。它總共有 260 億個參數,但在推理過程中僅啟動約 38 億個參數。這使得它速度很快,同時在 Arena AI 排行榜上也名列前茅。
Gemma 4 不只是文字聊天機器人。以下是此系列產品開箱即用的功能:
文本生成與推理。多步驟規劃、深度邏輯、數學運算。 31B 模型在 MMLU Pro 測試中獲得 85.2% 的分數,在 LiveCodeBench v6 測試中獲得 80.0% 的分數。
視覺功能。所有四種型號均支援影像和視訊輸入。視覺編碼器支援可變寬高比和可配置的令牌預算(每個圖像 70、140、280、560 或 1120 個令牌)。令牌越多,細節越豐富,但計算量越大。
音頻。 E2B和 E4B 型號原生支援音訊輸入。它們能夠處理多種語言的語音辨識和語音轉文字功能。
程式碼生成。所有模型均可產生、補全和糾錯程式碼。 31B 模型功能強大,足以作為離線程式碼助手使用。
函數呼叫。原生支援結構化 JSON 輸出、函數呼叫語法和系統指令。這是建構代理的基礎。
支援 140 多種語言。已針對 140 多種語言進行預訓練,並對 35 種以上語言提供強力支援。
首先確定哪一款型號適合您的硬體和使用場景。
如果您使用的是手機、樹莓派或 Jetson Nano:請使用gemma-4-E2B-it或gemma-4-E4B-it 。這些軟體包專為邊緣設備設計,可離線執行,延遲接近零。
如果您只有一塊GPU(A100或H100):請使用gemma-4-26B-A4B-it模型適用於單塊GPU,且由於每次前向傳播僅啟動4B個參數,因此延遲極低。
如果您有兩塊 GPU 或想要最高品質的模型:請使用gemma-4-31B-it 。這是一個密集模型。它需要兩塊 80GB GPU 進行張量並行處理才能實現完整的 bfloat16 推理,但量化版本可以在消費級 GPU 上執行。
如果您只想先試試看:開啟aistudio.google.com上的 Google AI Studio,然後選擇 Gemma 4 模型。無需任何設定。
Gemma 4 需要transformers版本 5.5.0 或更高版本。請安裝核心軟體包:
pip install -U transformers torch accelerate
如果您打算處理映像,也請安裝timm :
pip install -U timm
如果您希望使用 4 位元量化在較小的 GPU 上執行更大的模型:
pip install bitsandbytes
最快的入門方式是使用 Hugging Face 管道 API。
from transformers import pipeline
pipe = pipeline(
task="any-to-any",
model="google/gemma-4-E2B-it",
device_map="auto",
dtype="auto",
)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}],
},
{
"role": "user",
"content": [{"type": "text", "text": "Explain dependency injection in three sentences."}],
},
]
output = pipe(messages, return_full_text=False)
print(output[0]["generated_text"])
from transformers import pipeline
pipe = pipeline(
task="any-to-any",
model="google/gemma-4-E4B-it",
device_map="auto",
dtype="auto",
)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://example.com/your-image.jpg"},
{"type": "text", "text": "Describe what you see in this image."},
],
},
]
output = pipe(messages, return_full_text=False)
print(output[0]["generated_text"])
如果需要對生成參數進行更多控制,請直接載入模型和處理器:
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_id = "google/gemma-4-E4B-it"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
device_map="auto",
torch_dtype=torch.bfloat16,
).eval()
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Write a Python function that reverses a linked list."},
],
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=512, do_sample=False)
input_len = inputs["input_ids"].shape[-1]
print(processor.decode(output[0][input_len:], skip_special_tokens=True))
Gemma 4 支援鍊式推理。啟用此功能後,模型會在給出最終答案之前輸出其內部推理過程。
若要啟用此功能,請在系統提示字元開頭新增<|think|>標記:
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "<|think|>You are a helpful assistant."}],
},
{
"role": "user",
"content": [{"type": "text", "text": "What is 127 * 43?"}],
},
]
模型會輸出一個思考過程,然後是最終答案。如果您使用processor.parse_response()方法,則可以自動將思考過程與答案內容分開。
若要停用思考功能,只需從系統提示字元中刪除<|think|>標記即可。
對於生產工作負載,您需要使用 vLLM 在 OpenAI 相容的 API 後面提供 Gemma 4。
pip install -U vllm --pre \
--extra-index-url https://wheels.vllm.ai/nightly/cu129 \
--extra-index-url https://download.pytorch.org/whl/cu129 \
--index-strategy unsafe-best-match
pip install transformers==5.5.0
針對單一 A100/H100 的 26B MoE:
vllm serve google/gemma-4-26B-A4B-it \
--max-model-len 32768 \
--gpu-memory-utilization 0.90
對於在兩塊GPU上執行的31B密集模型:
vllm serve google/gemma-4-31B-it \
--tensor-parallel-size 2 \
--max-model-len 32768 \
--gpu-memory-utilization 0.90
對於 E4B 邊緣模型:
vllm serve google/gemma-4-E4B-it \
--max-model-len 131072
伺服器執行後,向其發送標準的 OpenAI 相容請求:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-4-26B-A4B-it",
"messages": [
{"role": "user", "content": "Explain quantum entanglement in simple terms."}
],
"max_tokens": 512,
"temperature": 0.7
}'
這意味著您可以將 Gemma 4 替換到任何已與 OpenAI 相容的 API 通訊的應用程式中。除了模型名稱和端點 URL 之外,無需更改任何程式碼。
如果您想在筆記型電腦上執行 Gemma 4 而無需任何伺服器設定:
ollama run gemma4
就是這樣。 Ollama 負責下載量化權重、設定執行環境以及提供本機 API。這是本地開發和測試最簡單的方法。
Gemma 4 本身功能強大,但透過微調可以使其更適合你的領域。建議的方法是使用 TRL 庫中的 QLoRA。
pip install trl peft datasets bitsandbytes
from transformers import AutoModelForImageTextToText, BitsAndBytesConfig
import torch
model_id = "google/gemma-4-E2B"
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
quantization_config=quantization_config,
device_map="auto",
torch_dtype=torch.bfloat16,
)
接下來,您可以使用 PEFT 連接 LoRa 轉接器,準備資料集,並使用 TRL 的SFTTrainer進行訓練。 E2B 模型可以在免費的 Google Colab T4 GPU 上微調。模型越大,所需的記憶體也相應越多。
您也可以使用 Vertex AI 或 Unsloth 進行微調,以獲得額外的最佳化。
Gemma 4 支援原生函數呼叫,這使其非常適合建立代理。該模型可以輸出結構化的 JSON,其中指定要呼叫的函數以及需要傳遞的參數。
一般模式如下:
在系統提示字元中以 JSON 模式定義可用函數。
發送用戶訊息。
該模型以結構化的 JSON 格式傳回函數呼叫。
執行該函數並傳回結果。
該模型利用該結果產生最終答案。
此功能適用於所有四種型號尺寸。結合較長的上下文視窗(最多 256K 個令牌),您可以在單一提示字元中傳遞整個程式碼庫或文件集合以及工具定義。
所有模型權重可下載:
擁抱臉: huggingface.co/collections/google/gemma-4
Kaggle: kaggle.com/models/google/gemma-4
奧拉馬: ollama.com/library/gemma4
Google AI Studio(瀏覽器): aistudio.google.com
您最常用的擁抱臉模型 ID:
google/gemma-4-E2B-it (最小,邊緣)
google/gemma-4-E4B-it (小,邊緣)
google/gemma-4-26B-A4B-it (MoE,快速伺服器推理)
google/gemma-4-31B-it (密集,最高品質)
關於 Gemma 4 的底層運作原理,有幾點值得了解:
交替注意力機制。各層在局部滑動視窗注意力(512-1024 個標記)和全局全上下文注意力之間交替。這樣既能保持高效,又能處理較長的上下文資訊。
雙 RoPE 演算法。滑動視窗層採用標準旋轉位置嵌入,全域層採用比例 RoPE 演算法。這使得即使在遠距離下,256K 上下文視窗也能保持影像品質不下降。
共享鍵值快取。最後 N 層複用前面幾層的鍵值張量,而不是重新計算。這在推理過程中既節省了內存,也減少了計算量。
視覺編碼器。基於多維 RoPE 學習的二維位置編碼器。保持原始寬高比。每個影像的 token 數量可配置,範圍為 70 到 1120 個。
音頻編碼器。採用USM式變形器架構(與Gemma-3n相同)。小型號可處理長達30秒的音頻,以實現語音辨識與翻譯。
如果您之前使用過 Gemma 3,以下是不同之處:
許可協議。 Gemma 3 使用的是具有限制條件的自訂 Google 授權協議。 Gemma 4 使用的是 Apache 2.0 授權協定。這對於商業用途而言是一項重大變更。
混合專家模型。 26B A4B 是 Gemma 系列中的首款混合專家模型。
逐層嵌入。 E2B和 E4B 模型使用逐層嵌入以提高參數效率。
共享鍵值快取。 Gemma 3 中沒有這項新的效率優化。
音頻輸入。 E2B和 E4B 型號本身就支援音訊輸入,而 Gemma 3 則不支援。
角色。 Gemma 4 在聊天範本中使用標準的system 、 user和assistant角色。 Gemma 3 的角色結構有所不同。
Gemma 4 為您提供完整的開放模型堆疊:四種尺寸涵蓋從手機到多 GPU 伺服器的一切,多模態輸入(文字、圖像、視訊、音訊),代理的原生函數呼叫,高達 256K 的上下文,以及 Apache 2.0 許可證,讓您可以不受限制地發布產品。
從零到編寫可執行程式碼的最快路徑:
pip install -U transformers torch
使用管道 API 載入google/gemma-4-E2B-it
開始提示
原文出處:https://dev.to/arshtechpro/gemma-4-a-practical-guide-for-developers-2co5