Gemma 4 上线 Bedrock:Google 开源模型三兄弟怎么选,实测调用全流程

Gemma 4 上线 Bedrock:Google 开源模型三兄弟怎么选,实测调用全流程

Google DeepMind 的 Gemma 4 这周上了 Amazon Bedrock。

对于已经在 Bedrock 上跑 Claude 或 GPT-5.5 的团队来说,多了一组开源模型选择。关键是——开源模型可以做一些闭源模型做不了的事:微调、本地部署、合规审计模型权重。而现在不需要自己搭推理集群了,直接在 Bedrock 上按 token 付费调用。

Gemma 4 家族:三个变体

变体 参数量 架构 上下文窗口 适合场景
Gemma 4 31B 31B Dense 256K token 推理重、编码重的任务
Gemma 4 26B-A4B 26B (4B active) MoE 成本和延迟敏感
Gemma 4 E2B ~2B 小模型 低延迟交互场景

简单说:

  • 31B:能力强,适合复杂推理和代码生成,256K 上下文够读整个代码库
  • 26B-A4B:MoE 架构,总参数 26B 但每次推理只激活 4B,性价比高
  • E2B:小而快,适合实时对话、表单填充这类对延迟极度敏感的场景

核心能力

  • 内置推理:thinking/reasoning 能力原生支持
  • 原生 function calling:不需要 prompt hack,直接支持工具调用
  • 多模态:文本、图片、视频、音频都能处理
  • 35+ 语言:中文支持包含在内
  • 结构化输出:JSON mode 原生支持

快速调用

环境准备

pip install boto3

Python 调用 Gemma 4 31B

import boto3
import jsonbedrock = boto3.client(service_name='bedrock-runtime',region_name='us-east-1'
)# 调用 Gemma 4 31B
response = bedrock.invoke_model(modelId='google.gemma-4-31b-v1:0',contentType='application/json',accept='application/json',body=json.dumps({"messages": [{"role": "user","content": "用 Python 写一个 S3 文件批量重命名脚本,支持正则匹配"}],"max_tokens": 4096,"temperature": 0.7})
)result = json.loads(response['body'].read())
print(result['choices'][0]['message']['content'])

带 Function Calling 的调用

import boto3
import jsonbedrock = boto3.client(service_name='bedrock-runtime',region_name='us-east-1'
)tools = [{"type": "function","function": {"name": "get_ec2_instances","description": "获取指定区域的 EC2 实例列表","parameters": {"type": "object","properties": {"region": {"type": "string","description": "AWS 区域代码,如 us-east-1"},"state": {"type": "string","enum": ["running", "stopped", "all"],"description": "实例状态过滤"}},"required": ["region"]}}}
]response = bedrock.invoke_model(modelId='google.gemma-4-31b-v1:0',contentType='application/json',accept='application/json',body=json.dumps({"messages": [{"role": "user","content": "帮我查一下 us-east-1 区域有哪些正在运行的 EC2 实例"}],"tools": tools,"max_tokens": 1024})
)result = json.loads(response['body'].read())
print(json.dumps(result, indent=2, ensure_ascii=False))

流式调用(低延迟场景)

import boto3
import jsonbedrock = boto3.client(service_name='bedrock-runtime',region_name='us-east-1'
)# E2B 小模型 + 流式输出 = 实时对话体验
response = bedrock.invoke_model_with_response_stream(modelId='google.gemma-4-e2b-v1:0',contentType='application/json',accept='application/json',body=json.dumps({"messages": [{"role": "user", "content": "解释一下 VPC Peering 和 Transit Gateway 的区别"}],"max_tokens": 2048,"stream": True})
)for event in response['body']:chunk = json.loads(event['chunk']['bytes'])if 'choices' in chunk:delta = chunk['choices'][0].get('delta', {})if 'content' in delta:print(delta['content'], end='', flush=True)

三个变体怎么选

决策树很简单:

你的场景是什么?
├── 需要深度推理/写复杂代码/处理长文档
│   └── → Gemma 4 31B(贵但强)
├── 成本敏感/请求量大/可以接受稍弱的推理
│   └── → Gemma 4 26B-A4B(MoE,激活参数少,便宜快)
└── 实时交互/聊天机器人/延迟 < 200ms└── → Gemma 4 E2B(小快省)

实际项目中我会这样组合:

  • 用户提问入口 → E2B 做意图识别和简单回答
  • 需要深度分析 → 路由到 31B
  • 批量处理任务 → 26B-A4B 跑性价比

和 Bedrock 其他模型对比

维度 Gemma 4 31B Claude Sonnet GPT-5.4
类型 开源 闭源 闭源
可微调 ✅(SageMaker/自建)
多模态 文/图/视频/音频 文/图 文/图
Function Calling 原生 原生 原生(Responses API)
上下文 256K 200K 128K
定位 开源强推理 通用强编码 通用性价比

开源模型在 Bedrock 上的优势

为什么不直接在 EC2 上自己跑 vLLM?

  1. 不用管基础设施 —— Bedrock 托管推理,不需要 GPU 实例管理
  2. 按 token 付费 —— 不用为空闲 GPU 买单
  3. 和其他 Bedrock 功能集成 —— Guardrails、Knowledge Bases、Agent 框架直接用
  4. 自动扩缩 —— 流量波动时不需要手动调实例

当然,如果你追求更低的成本(大量推理 + 固定流量),自建 vLLM on Inferentia2 可能更省钱。但对大多数团队来说,Bedrock 托管是省心选择。

几个注意事项

  1. 区域限制 —— 目前只在 us-east-1、us-east-2、us-west-2、eu-central-1 四个区域
  2. 开源 ≠ 免费 —— Bedrock 上用还是按 token 收费的,只是模型权重开源
  3. 版本锁定 —— Model ID 带版本号(v1:0),后续新版本会有新 ID
  4. Guardrails 兼容 —— 可以给 Gemma 4 加 Bedrock Guardrails,和闭源模型一样的内容安全策略

总结

Gemma 4 上 Bedrock 给开发者多了一个选择维度——不是"开源 vs 闭源"的二选一,而是可以在同一个平台上按场景混用。对于有定制化需求(微调、权重审计)的企业来说,这是个好消息。

建议先用 31B 跑几个你们的实际业务 prompt,和 Claude/GPT 对比一下效果,再决定是否切换或混用。

官方资源:

  • Gemma 4 模型文档:https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-google.html
  • Bedrock 区域兼容性:https://docs.aws.amazon.com/bedrock/latest/userguide/models-region-compatibility.html