Gemma 4 本地部署:谷歌最强开源模型,手机也能跑
文章目录
- [Gemma 4 本地部署:谷歌最强开源模型,手机也能跑](#Gemma 4 本地部署:谷歌最强开源模型,手机也能跑)
-
- [一、为什么关注 Gemma 4?](#一、为什么关注 Gemma 4?)
- [二、Gemma 4 是什么?](#二、Gemma 4 是什么?)
- 三、环境准备
-
- [3.1 硬件要求](#3.1 硬件要求)
- [3.2 安装 Ollama](#3.2 安装 Ollama)
- [3.3 拉取 Gemma 4 模型](#3.3 拉取 Gemma 4 模型)
- [3.4 安装 Python 依赖](#3.4 安装 Python 依赖)
- [四、快速上手:5 分钟跑起来](#四、快速上手:5 分钟跑起来)
-
- [4.1 命令行快速测试](#4.1 命令行快速测试)
- [4.2 Python 调用:最简对话](#4.2 Python 调用:最简对话)
- [4.3 流式输出(打字机效果)](#4.3 流式输出(打字机效果))
- [4.4 多轮对话(保持上下文)](#4.4 多轮对话(保持上下文))
- [五、实战项目:本地 AI 编程助手](#五、实战项目:本地 AI 编程助手)
-
- [5.1 项目结构](#5.1 项目结构)
- [5.2 配置文件 config.py](#5.2 配置文件 config.py)
- [5.3 主程序 assistant.py](#5.3 主程序 assistant.py)
- [5.4 运行效果](#5.4 运行效果)
- 六、进阶玩法
-
- [6.1 Agent 函数调用(Function Calling)](#6.1 Agent 函数调用(Function Calling))
- [6.2 多模态能力(图像理解)](#6.2 多模态能力(图像理解))
- [6.3 思考模式(Thinking Mode)](#6.3 思考模式(Thinking Mode))
- [6.4 结构化 JSON 输出](#6.4 结构化 JSON 输出)
- [6.5 兼容 OpenAI SDK](#6.5 兼容 OpenAI SDK)
- 七、模型选择指南
-
- [7.1 如何选择合适的 Gemma 4 模型?](#7.1 如何选择合适的 Gemma 4 模型?)
- [7.2 性能 vs 硬件权衡](#7.2 性能 vs 硬件权衡)
- [7.3 与其他开源模型对比](#7.3 与其他开源模型对比)
- 八、全场景部署能力
- 九、常见问题
- 十、总结
Apache 2.0 完全开源 + 性能暴涨 4.3 倍 + 手机端可部署。2026 年 4 月 2 日,Google DeepMind 发布 Gemma 4,这款开源模型彻底改变了游戏规则------不仅性能媲美闭源模型,还首次采用 Apache 2.0 协议,允许自由商用。本文带你 30 分钟本地部署,从入门到实战。

一、为什么关注 Gemma 4?
| 对比维度 | Gemma 3 27B(上一代) | Gemma 4 31B(最新旗舰) | 提升幅度 |
|---|---|---|---|
| AIME 2026 数学 | 20.8% | 89.2% | +4.3倍 |
| LiveCodeBench v6 | 29.1% | 80.0% | +2.7倍 |
| Codeforces ELO | 110 | 2150 | +19.5倍 |
| GPQA Diamond | 42.4% | 84.3% | +2.0倍 |
| τ²-bench 智能体工具 | 6.6% | 86.4% | +13.1倍 |
| 开源协议 | Gemini Terms | Apache 2.0 | ✅ 可商用 |

核心亮点:
- ✅ Apache 2.0 协议:可自由商用、修改、分发(重大突破!)
- ✅ Arena AI 排名第 3:全球开源模型中仅次于 Qwen3 和 Llama 4
- ✅ 端侧部署:E2B 模型内存可压至 1.5GB 以下
- ✅ 多模态原生支持:文本、图像、视频、音频(140+ 语言)
- ✅ 原生 Agent 支持:函数调用、结构化 JSON 输出
- ✅ 思考模式:可开关,先推理再输出
二、Gemma 4 是什么?
Gemma 4 是 Google DeepMind 于 2026 年 4 月 2 日发布的开源大语言模型,提供四种规格以适配不同硬件:
| 模型规格 | 参数规模 | 激活参数 | 上下文窗口 | 目标硬件 | 推荐场景 |
|---|---|---|---|---|---|
| E2B | 51亿 | 23亿 | 128K | 手机、IoT、树莓派 | 移动端应用、嵌入式设备 |
| E4B | 80亿 | 45亿 | 128K | 手机、中端设备 | 手机端 AI 助手 |
| 26B MoE | 252亿 | 38亿 | 256K | 消费级 GPU/工作站 | 本地开发、中等规模应用 |
| 31B Dense | 310亿 | 310亿 | 256K | 单卡 H100 (80GB) | 高性能推理、复杂任务 |

架构特点:
- MoE(混合专家)架构:26B 版本采用 MoE,激活参数仅 3.8B,推理速度快
- Dense 架构:31B 版本为稠密模型,性能最强
- 多模态原生支持:统一架构处理文本、图像、视频、音频
- 140+ 语言支持:中文、英文、日文等主流语言全覆盖
三、环境准备
3.1 硬件要求
| 模型规模 | 最低内存/显存 | 推荐配置 | 预估模型大小 |
|---|---|---|---|
| E2B(轻量) | 2 GB | 4 GB 内存 | ~1.5 GB(量化后) |
| E4B(主流) | 4 GB | 8 GB 内存 | ~3 GB |
| 26B MoE(进阶) | 8 GB | 16 GB 显存 | ~15 GB |
| 31B Dense(旗舰) | 24 GB | 单卡 H100 80GB | ~20 GB |
重要提示:
- E2B/E4B 支持 纯 CPU 推理,手机端也能跑
- 26B MoE 和 31B 建议使用 GPU 加速
- 支持 INT4/INT8 量化,显著降低内存占用
3.2 安装 Ollama
bash
# macOS / Linux(一行搞定)
curl -fsSL https://ollama.com/install.sh | sh
# Windows:前往 https://ollama.com/download 下载安装包
验证安装:
bash
ollama --version
# 输出:ollama version is 0.6.x
3.3 拉取 Gemma 4 模型
bash
# 推荐:Gemma 4 31B(最强性能,需要 H100 或高端 GPU)
ollama pull gemma4:31b
# 进阶选择:Gemma 4 26B MoE(消费级 GPU 首选)
ollama pull gemma4:26b-moe
# 轻量选择:Gemma 4 E4B(手机端、中端设备)
ollama pull gemma4:e4b
# 极致轻量:Gemma 4 E2B(树莓派、IoT 设备)
ollama pull gemma4:e2b
# 查看已下载的模型
ollama list
3.4 安装 Python 依赖
bash
pip install ollama
四、快速上手:5 分钟跑起来
4.1 命令行快速测试
bash
# 直接对话(最简单的方式)
ollama run gemma4:31b "用 Python 写一个快速排序算法"
4.2 Python 调用:最简对话
python
import ollama
# 发送一条消息,获取回复
response = ollama.chat(
model="gemma4:31b",
messages=[
{"role": "user", "content": "用 Python 写一个快速排序算法"}
]
)
print(response["message"]["content"])
4.3 流式输出(打字机效果)
python
import ollama
# stream=True 开启流式输出,体验更丝滑
stream = ollama.chat(
model="gemma4:31b",
messages=[
{"role": "user", "content": "解释一下 Python 的装饰器"}
],
stream=True
)
for chunk in stream:
print(chunk["message"]["content"], end="", flush=True)
4.4 多轮对话(保持上下文)
python
import ollama
# 维护对话历史
messages = []
def chat(user_input: str) -> str:
messages.append({"role": "user", "content": user_input})
response = ollama.chat(model="gemma4:31b", messages=messages)
assistant_msg = response["message"]["content"]
messages.append({"role": "assistant", "content": assistant_msg})
return assistant_msg
# 多轮对话
print(chat("你好,我正在学 Python"))
print("---")
print(chat("刚才我说我在学什么来着?")) # 它能记住上下文
五、实战项目:本地 AI 编程助手
下面是一个功能完整的本地 AI 编程助手,支持多轮对话、流式输出、历史记录、思考模式。
5.1 项目结构
gemma4-assistant/
├── assistant.py # 主程序
├── config.py # 配置文件
└── chat_history.json # 对话历史(自动生成)
5.2 配置文件 config.py
python
# config.py
MODEL_NAME = "gemma4:31b" # 使用的模型
SYSTEM_PROMPT = """你是一个专业的 AI 编程助手。
你擅长 Python、JavaScript、数据分析、自动化办公。
回答要简洁实用,代码要可以直接运行。
使用中文回答问题。"""
MAX_HISTORY = 20 # 最多保留的对话轮数
ENABLE_THINKING = True # 启用思考模式
5.3 主程序 assistant.py
python
# assistant.py
import json
import ollama
from datetime import datetime
from config import MODEL_NAME, SYSTEM_PROMPT, MAX_HISTORY, ENABLE_THINKING
def load_history(filepath="chat_history.json"):
"""加载对话历史"""
try:
with open(filepath, "r", encoding="utf-8") as f:
return json.load(f)
except FileNotFoundError:
return []
def save_history(messages, filepath="chat_history.json"):
"""保存对话历史"""
with open(filepath, "w", encoding="utf-8") as f:
json.dump(messages, f, ensure_ascii=False, indent=2)
def chat_stream(user_input: str, messages: list) -> str:
"""流式对话"""
messages.append({"role": "user", "content": user_input})
print(f"\n\033[92m🤖 AI:\033[0m ", end="", flush=True)
full_response = ""
stream = ollama.chat(
model=MODEL_NAME,
messages=messages,
stream=True,
options={
"num_ctx": 4096, # 上下文长度
"temperature": 0.7, # 温度参数
}
)
for chunk in stream:
content = chunk["message"]["content"]
print(content, end="", flush=True)
full_response += content
print("\n")
messages.append({"role": "assistant", "content": full_response})
# 限制历史长度
if len(messages) > MAX_HISTORY * 2 + 1:
messages = [messages[0]] + messages[-(MAX_HISTORY * 2):]
return full_response
def main():
print("=" * 60)
print(f" Gemma 4 本地 AI 编程助手 | 模型: {MODEL_NAME}")
print(f" 思考模式: {'已启用' if ENABLE_THINKING else '已关闭'}")
print(" 输入 /clear 清空历史 | /quit 退出 | /think 切换思考模式")
print("=" * 60)
# 初始化对话
messages = load_history()
if not messages:
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
while True:
user_input = input("\n\033[94m👤 你:\033[0m ").strip()
if not user_input:
continue
if user_input == "/quit":
save_history(messages)
print("👋 再见!对话已保存。")
break
if user_input == "/clear":
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
save_history(messages)
print("🗑️ 对话历史已清空。")
continue
if user_input == "/think":
global ENABLE_THINKING
ENABLE_THINKING = not ENABLE_THINKING
print(f"💡 思考模式已{'启用' if ENABLE_THINKING else '关闭'}")
continue
chat_stream(user_input, messages)
save_history(messages)
if __name__ == "__main__":
main()
5.4 运行效果
bash
python assistant.py
============================================================
Gemma 4 本地 AI 编程助手 | 模型: gemma4:31b
思考模式: 已启用
输入 /clear 清空历史 | /quit 退出 | /think 切换思考模式
============================================================
👤 你: 帮我写一个 Python 脚本,监控某个文件夹的变化
🤖 AI: 好的,使用 `watchdog` 库可以轻松实现文件夹监控...
[完整代码输出]
👤 你: 能不能加上邮件通知功能?
🤖 AI: 当然可以!我们可以使用 `smtplib` 发送邮件通知...
[增量代码输出]
六、进阶玩法
6.1 Agent 函数调用(Function Calling)
Gemma 4 原生支持函数调用,可以自动调用本地工具:
python
import ollama
import json
# 定义工具函数
def get_weather(city: str) -> str:
"""模拟获取天气(可替换为真实 API)"""
weather_data = {
"北京": "晴天 22°C",
"上海": "多云 18°C",
"深圳": "大雨 28°C"
}
return weather_data.get(city, "未查询到该城市天气")
def calculate(expression: str) -> str:
"""安全计算数学表达式"""
try:
allowed = set("0123456789+-*/.() ")
if all(c in allowed for c in expression):
return str(eval(expression))
return "不安全的表达式"
except Exception as e:
return f"计算错误: {e}"
# 注册工具
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
},
"required": ["city"]
}
}
},
{
"type": "function",
"function": {
"name": "calculate",
"description": "计算数学表达式",
"parameters": {
"type": "object",
"properties": {
"expression": {"type": "string", "description": "数学表达式"}
},
"required": ["expression"]
}
}
}
]
# 工具映射
tool_map = {
"get_weather": get_weather,
"calculate": calculate
}
# 对话
messages = [
{"role": "user", "content": "北京天气怎么样?顺便帮我算一下 25*36+128"}
]
response = ollama.chat(model="gemma4:31b", messages=messages, tools=tools)
# 处理工具调用
if response["message"].get("tool_calls"):
for tool_call in response["message"]["tool_calls"]:
func_name = tool_call["function"]["name"]
func_args = tool_call["function"]["arguments"]
print(f"🔧 调用工具: {func_name}({func_args})")
result = tool_map[func_name](**func_args)
print(f" 结果: {result}")
输出示例:
🔧 调用工具: get_weather({'city': '北京'})
结果: 晴天 22°C
🔧 调用工具: calculate({'expression': '25*36+128'})
结果: 1028
6.2 多模态能力(图像理解)
Gemma 4 支持图像输入,可以理解图片内容:
python
import ollama
import base64
# 读取图片并编码为 base64
def encode_image(image_path: str) -> str:
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
# 多模态对话
response = ollama.chat(
model="gemma4:31b",
messages=[
{
"role": "user",
"content": "这张图片里有什么?",
"images": [encode_image("screenshot.png")]
}
]
)
print(response["message"]["content"])
支持的多模态类型:
- ✅ 图像(PNG、JPG、WEBP)
- ✅ 视频(需额外配置)
- ✅ 音频(需额外配置)
6.3 思考模式(Thinking Mode)
Gemma 4 的思考模式可以让模型先推理再输出,提高复杂任务的准确性:
python
import ollama
# 启用思考模式
response = ollama.chat(
model="gemma4:31b",
messages=[
{"role": "user", "content": "请计算 12345 * 67890"}
],
options={
"num_ctx": 4096,
"temperature": 0.3,
"thinking": True # 启用思考模式
}
)
# response["thinking"] 包含推理过程
# response["message"]["content"] 包含最终答案
print("推理过程:", response.get("thinking", ""))
print("最终答案:", response["message"]["content"])
6.4 结构化 JSON 输出
python
import ollama
# 强制输出 JSON 格式
response = ollama.chat(
model="gemma4:31b",
messages=[
{
"role": "user",
"content": "提取以下文本中的人名、地点、时间:'2026年4月2日,张三在北京参加了人工智能大会'"
}
],
format="json" # 强制 JSON 格式
)
import json
result = json.loads(response["message"]["content"])
print(json.dumps(result, indent=2, ensure_ascii=False))
输出示例:
json
{
"人名": ["张三"],
"地点": ["北京"],
"时间": ["2026年4月2日"],
"事件": ["人工智能大会"]
}
6.5 兼容 OpenAI SDK
如果你已有使用 OpenAI SDK 的代码,只需改两行:
python
# 原代码使用 OpenAI API
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1", # 指向 Ollama
api_key="ollama" # 随意填,不影响
)
response = client.chat.completions.create(
model="gemma4:31b",
messages=[
{"role": "user", "content": "Hello, who are you?"}
]
)
print(response.choices[0].message.content)
这意味着: 所有基于 OpenAI API 的应用(LangChain、Dify、Cursor、AutoGen 等)都可以无缝切换到本地 Gemma 4!
七、模型选择指南
7.1 如何选择合适的 Gemma 4 模型?
| 使用场景 | 推荐模型 | 硬件要求 | 命令 |
|---|---|---|---|
| 手机端应用 | E2B | 2GB 内存 | ollama pull gemma4:e2b |
| 中端设备 | E4B | 4GB 内存 | ollama pull gemma4:e4b |
| 消费级 GPU | 26B MoE | 8GB 显存 | ollama pull gemma4:26b-moe |
| 高性能推理 | 31B Dense | 24GB 显存 | ollama pull gemma4:31b |
7.2 性能 vs 硬件权衡
性能优先级:31B Dense > 26B MoE > E4B > E2B
速度优先级:E2B > E4B > 26B MoE > 31B Dense
内存占用:E2B (1.5GB) < E4B (3GB) < 26B MoE (15GB) < 31B (20GB)
7.3 与其他开源模型对比

| 模型 | 参数规模 | 开源协议 | 中文能力 | 推理能力 | Arena 排名 |
|---|---|---|---|---|---|
| Gemma 4 31B | 31B | Apache 2.0 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 全球第 3 |
| Qwen3 72B | 72B | Apache 2.0 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 全球第 1 |
| Llama 4 Scout 17B | 17B | Llama 4 License | ⭐⭐⭐ | ⭐⭐⭐⭐ | 全球第 2 |
| DeepSeek R2 8B | 8B | MIT | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 全球第 4 |
八、全场景部署能力
Gemma 4 最令人兴奋的特点之一是其全场景部署能力,从手机到服务器,全覆盖:

部署场景示例:
- 手机端:E2B 模型,内存占用 1.5GB,实时对话无压力
- IoT 设备:树莓派 4B 运行 E2B,打造智能家居中枢
- 笔记本电脑:E4B 模型,16GB 内存即可流畅运行
- 工作站:26B MoE 模型,消费级 GPU 即可部署
- 服务器集群:31B Dense 模型,单卡 H100 发挥极致性能
九、常见问题
Q1:没有显卡能跑 Gemma 4 吗?
A:能。E2B 和 E4B 版本支持纯 CPU 推理,在 4GB 内存的手机或树莓派上就能跑。31B 版本建议使用 GPU 加速,否则速度会很慢。
Q2:Gemma 4 的中文效果如何?
A:Gemma 4 支持 140+ 语言,中文能力非常强,可以流畅进行中文对话、写作、编程。虽然中文能力略逊于 Qwen3 系列,但差距不大。
Q3:和 ChatGPT 相比差多少?
A:Gemma 4 31B 在数学、编程、推理等任务上已经接近 GPT-4 级别,特别是在 Codeforces ELO 上达到了 2150(接近人类专业选手水平)。但在长文本理解和创意写作上还有差距。
Q4:Apache 2.0 协议意味着什么?
A:意味着你可以:
- ✅ 免费商用,无需支付费用
- ✅ 修改源代码
- ✅ 分发和再授权
- ✅ 用于商业产品和服务
这是 Gemma 4 相比 Gemma 3 的重大突破,彻底解决了商用限制问题。
Q5:如何选择 Gemma 4 的不同规格?
A:
- E2B:适合手机、IoT 设备、嵌入式场景
- E4B:适合中端设备,平衡性能和速度
- 26B MoE:适合消费级 GPU,性价比最高
- 31B Dense:适合高端 GPU,性能最强
Q6:思考模式有什么用?
A:思考模式让模型在输出答案前先进行推理,适合复杂任务(如数学推理、逻辑分析)。可以显著提高准确率,但会增加推理时间。
Q7:支持多模态输入吗?
A:支持。Gemma 4 原生支持文本、图像、视频、音频输入。Ollama 目前支持图像输入,视频和音频需要额外配置。
Q8:如何部署到生产环境?
A:
- 使用 Ollama 搭建本地 API 服务(默认 http://localhost:11434)
- 使用 vLLM 或 TensorRT-LLM 进行高性能推理
- 使用 Docker 容器化部署
- 结合 LangChain、LlamaIndex 等框架构建应用
十、总结
Gemma 4 的核心优势:
├── 完全开源 ------ Apache 2.0 协议,可自由商用
├── 性能强悍 ------ Arena AI 全球开源模型第 3 名
├── 部署灵活 ------ 从手机到服务器,全覆盖
├── 多模态支持 ------ 文本、图像、视频、音频
├── Agent 能力 ------ 原生函数调用、JSON 输出
└── 零成本 ------ 本地部署,零 API 费用
Gemma 4 的历史意义:
Google DeepMind 终于交出了一份完美的开源答卷。Apache 2.0 协议的采用,彻底打破了"开源模型不能商用"的魔咒。性能的暴涨(数学能力提升 4.3 倍),让开源模型第一次在竞技场上与闭源模型平起平坐。
现在就行动:
bash
# 第一步:安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 第二步:拉取模型
ollama pull gemma4:31b
# 第三步:开始对话
ollama run gemma4:31b "你好,介绍一下你自己"
5 分钟后,你就会拥有一个完全免费、完全私密、完全掌控的 AI 助手。
相关文章推荐:
参考资源:
版权声明: 本文采用 CC 4.0 BY-SA 版权协议,转载请注明出处。