Gemini 蒸馏服务
摘要
Gemini 的蒸馏服务允许使用更大教师模型的输出和思维模式来训练一个更小、更高效的学生模型,同时降低成本和延迟。
暂无内容
查看缓存全文
缓存时间: 2026/07/28 16:35
# Gemini 蒸馏服务
来源:https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tuning/distillation?hl=he
**Gemini 蒸馏服务**(蒸馏)允许用户训练一个更小、更高效的“学生”模型,该模型利用一个能力更强的“教师”模型生成的输出和推理思维链。突破性模型定义了 AI 的最前沿,但对于企业中的特定使用场景来说,它们可能显得大材小用。蒸馏弥合了这一差距,在实现生产级效率(更低的延迟和更低的成本)的同时,使较小的模型能够达到更深入的推理水平。
与仅使用最终文本输出的常规监督式微调(SFT)不同,蒸馏使用:
- **教师回答**:最终的文本输出。
- **原始思考**:由教师模型生成的内部推理路径。
## 支持的模型
在早期访问阶段,蒸馏支持以下模型:
- **教师模型**:`gemini-3.1-pro`
- **学生模型**:`gemini-2.5-flash`
一个展示 AI 模型蒸馏 5 步过程的流程图。步骤 1:数据集输入 (GCS) 获取一个指令数据集 (JSONL) 和一个可选的验证数据集。步骤 2:数据嵌入和准备包括格式验证和分片以进行并行处理。步骤 3:教师模型推理使用教师模型 (Gemini 3.1 Pro) 生成一个高质量标记数据集,该数据集由详细答案和内部推理路径组成。步骤 4:蒸馏训练使用学生模型 (Gemini 2.5 Flash),该模型通过答案、思维模式和分布来学习模仿教师的推理过程。步骤 5:输出:生成蒸馏模型产生三个项目:一个注册在模型仓库中的最终蒸馏模型,10 个用于评估的检查点,以及为这些检查点自动生成的 Agent Platform 端点。
图 1. 展示 Gemini 蒸馏服务运作原理的系统示意图。
## 合适的应用场景
建议在以下场景中使用蒸馏,而不是常规的提示或监督式微调(SFT):
- **高吞吐量、延迟敏感型应用**:如果您的应用需要 Pro 级模型的推理能力,但又必须满足严格的延迟服务等级协议 (SLA) 或预算限制,要求使用 Flash 级模型。
- **无真实数据(无法进行 SFT)**:如果您有一个大型的指令或用户查询数据集,但没有资源为常规 SFT 所需的高质量真实答案进行手动标记或生成。
- **复杂推理任务**:涉及多步逻辑、高度技术性帮助文章摘要或复杂编程的任务,在这些任务中,基础 Flash 模型表现不佳,但 Pro 模型表现出色。
- **显著的性能差距**:当教师模型在您的特定任务上显著优于基础学生模型时,为蒸馏过程中的知识迁移提供了足够的空间。
## 前提条件与项目设置
在开始蒸馏作业之前,需要确保 Google Cloud 环境已正确设置:
1. **提交白名单访问请求**:确保您的 Google Cloud 项目 ID 已添加到 Gemini 蒸馏服务的早期访问白名单。要将项目添加到白名单,请联系您的 Google 销售代表。
2. **启用 API**:在您的 Google Cloud 项目中启用 Agent Platform API。
3. **设置 IAM 角色权限**:您需要在 IAM 中拥有 Agent Platform 管理员角色 (`roles/aiplatform.admin`)。
4. **设置区域**:您需要在 `us-central1` 区域运行蒸馏作业。
## 准备数据集
该服务的一个关键特性是使用**仅包含指令的数据集**。由于教师模型会在蒸馏过程中生成目标输出,因此您无需提供预期的答案。
### 数据集要求
数据集必须采用 JSON Lines (JSONL) 格式并存储在 Cloud Storage 的 bucket 中。每条记录都必须符合 Gemini 自定义数据集 (https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini-supervised-tuning-prepare?hl=he#dataset-example) 的格式,此外还遵循以下格式:
- **系统指令**:可以包含一个可选的 `systemInstruction` 字段(角色为 'system')来定义系统指令。
- **输入**:`contents` 字段(角色为 'user')是主要的输入所必需的。
- **多轮指令**:可以在 'user' 和 'model' 角色之间交替,只要序列中的最后一项是 'user'。
`dataset.jsonl` 文件的两个示例:
```
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
}
]
}
]
},
```
```
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
}
]
},
{
"role": "model",
"parts": [
{
"text": "Choose several strands of embroidery thread in a variety of colors."
}
]
},
{
"role": "user",
"parts": [
{
"text": "You will need one egg (raw or hard boiled but hard boiled is best) and one spoon for each person participating in the race. You might even like to use dyed Easter eggs as something special for Easter. It's best to have this race on grass or some other soft surface, to give dropped eggs a chance!"
}
]
}
]
}
```
### 最佳实践
在创建数据集时,请遵循以下准则:
- **大小**:建议提供至少 1000 个样本,以便看到质量的显著提升。
- **多样性**:确保指令涵盖您实际流量中可能出现的边缘情况和不同长度。
## 配置蒸馏请求
要运行蒸馏作业,您需要配置教师模型的生成行为和学生模型的训练超参数。
### 配置教师模型行为
您需要配置教师模型如何响应数据集。学生模型的质量直接取决于教师模型输出的质量。要配置教师模型的生成行为,需要设置 `candidateCount`:
- `candidateCount`:将生成的答案变体数量。(例如:`4`。范围 `[1, 5]`)。如果在请求中未指定,系统将使用默认值 `4`。
### 配置蒸馏超参数
蒸馏超参数控制着学生模型的训练过程。有关 Gemini Enterprise Agent Platform 中超参数的更多信息,请参阅SFT 指南中的创建调优作业 (https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini-use-supervised-tuning?hl=he#create_a_text_model_supervised_tuning_job) 部分。
在创建蒸馏作业时,需要配置以下超参数:
- `epochCount`:学生模型遍历数据集的次数。(例如:`20`。范围 `[1, 100]`)。如果未指定值,系统使用默认值 `4`。
- `learningRateMultiplier`:对学生模型基础学习率的调整因子。(例如:`2.0`。范围 `[0.25, 4]`)。如果未指定值,系统使用默认值 `1`。
## 启动蒸馏作业
在早期访问阶段,您可以使用 Agent Platform API 的 REST 版本来提交和监控蒸馏作业。您可以启动一个新的蒸馏作业 (https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tuning/distillation?hl=he#create-a-new-distillation-job) 或对已蒸馏模型的检查点执行持续调优 (https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tuning/distillation?hl=he#perform-continuous-tuning)。
### 创建新的蒸馏作业
创建一个名为 `request.json` 的 JSON 文件,包含作业配置。在以下示例中,教师的生成配置嵌入在 `hyperParameters` 字段中:
```
{
"description": "Distillation testing job.",
"baseModel": "gemini-2.5-flash",
"tunedModelDisplayName": "flash-distillation-run-1",
"distillationSpec": {
"promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
"validationDatasetUri": "",
"base_teacher_model": "gemini-3.1-pro-preview",
"hyperParameters": {
"epochCount": "20",
"learningRateMultiplier": 2.0,
"generation_config": {
"candidateCount": 5
}
}
}
}
```
使用 `curl` 提交作业:
```
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
-d @request.json
```
### 执行持续调优
如果您想从先前蒸馏模型的检查点继续调优过程,则需要在 `request.json` 文件中包含 `preTunedModel` 块。持续调优仅支持来自先前蒸馏模型的检查点,且需使用相同的学生基础模型。来自监督式微调模型的检查点(即使使用相同的学生基础模型)也不支持。
以下示例展示了如何为已蒸馏模型的检查点配置持续调优:
```
{
"description": "Continuous distillation testing job.",
"preTunedModel": {
"tunedModelName": "projects/YOUR_PROJECT_ID/locations/us-central1/models/PRETUNED_MODEL_ID@1",
"checkpointId": "1",
"baseModel": "gemini-2.5-flash"
},
"tunedModelDisplayName": "flash-distillation-continuous",
"distillationSpec": {
"promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
"validationDatasetUri": "",
"base_teacher_model": "gemini-3.1-pro-preview",
"hyperParameters": {
"epochCount": "20",
"learningRateMultiplier": 2.0,
"generation_config": {
"candidateCount": 5,
}
}
}
}
```
使用 `curl` 提交有效载荷:
```
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
-d @request.json
```
## 监控蒸馏作业
请求的响应将返回一个包含 JOB_ID 的作业名称。您可以通过发送 GET 请求来检查作业状态(`state`、错误和最终超参数):
```
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs/JOB_ID
```
您也可以通过在 Google Cloud 控制台中导航到 **Agent Platform > Tuning** 并选择 `us-central1` 区域来直观地监控进度。
在此早期访问版本中,Agent Platform Console UI 存在以下已知限制:
- **教师模型采样进度**:教师模型采样过程没有进度小部件。状态可能显示为“准备运行调优”,但作业会在后台正常执行。
- **学生模型调优图表**:在学生模型调优阶段,UI 提供损失曲线和总训练文本 token 的图表。
- **检查点表格**:UI 显示一个中间检查点表格,以及指向在 Agent Platform 中为评估生成的预测端点的链接。由于已知问题,此表格中的 Epoch 列显示为 0。
## 取消蒸馏作业
要取消正在运行的蒸馏作业,您可以执行以下任一操作:
- 使用 Google Cloud 控制台并修改以下 URL:`https://console.cloud.google.com/agent-platform/tuning/managed?project=YOUR_PROJECT_ID&vertex_ai_region=us-central1`,将 `YOUR_PROJECT_ID` 替换为您的项目 ID。
- 使用 `curl` 发送 POST 请求取消作业:```curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_ID:cancel``` 替换以下字段: - `YOUR_PROJECT_ID`:替换为您的项目 ID。 - `YOUR_JOB_ID`:替换为您的作业 ID。
## 评估结果
蒸馏作业成功完成后,新的学生模型会自动注册到 Gemini Enterprise Agent Platform 模型仓库,并会创建一个或多个专用端点以用于生产预测。要评估结果,请定位端点、发送预测请求并进行评估。
要评估结果:
1. 发送以下 GET 请求以查看调优作业的状态。```curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_ID``` 替换以下字段: - `YOUR_PROJECT_ID`:替换为您的项目 ID。 - `YOUR_JOB_ID`:替换为您的作业 ID。
2. 已完成的作业会在 `tunedModel` 对象内显示一个嵌套的 `endpoint` 字段。在返回的路径字符串末尾查找 `ENDPOINT_ID`(例如 `projects/.../endpoints/YOUR_ENDPOINT_ID`)。记录下端点 ID。确保调优操作已成功完成,因为端点在调优操作正在运行或失败时不可用。如果缺少 `endpoint` 字段,请通过查看作业的 `state` 或 `error` 键来调试调优任务。
3. 创建一个名为 `generate_content_request.json` 的 JSON 格式有效载荷请求,包含您的提示:```{ "contents": { "role": "user", "parts": [ { "text": "hi, say something" } ] } }```
4. 以下 POST 请求示例展示了如何发送预测请求:```curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/endpoints/YOUR_ENDPOINT_ID:generateContent \ -d @generate_content_request.json``` 替换以下字段: - `YOUR_PROJECT_ID`:您的项目 ID。 - `YOUR_ENDPOINT_ID`:您的端点 ID。
5. 要评估结果: 1. 使用未包含在训练数据中的提示,在固定的测试数据集上运行新蒸馏的模型。 2. 将输出与基础模型 `gemini-2.5-flash` 进行比较,以衡量质量改进。 3. 将输出与 `gemini-3.1-pro` 模型进行比较,以确定学生模型在推理方面与教师模型的接近程度。
## 限制
下表描述了蒸馏的限制:
蒸馏受以下限制:
- **模型限制**:- 受支持的模型列表 (https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/tuning/distillation?hl=he#supported-models)
- **数据集限制**:- **容量限制**:- 训练数据集的最大容量为 50,000 个样本。 - 源 JSONL 文件大小不得超过 1GB。 - **上下文窗口规格**:- 每条记录的服务最大输入 token 数为 8,000。如果超过 10% 的提供记录超过此阈值,蒸馏作业将停止。 - 教师模型采样限制为最多输出 24,000 个 token。在教师模型生成超过 24,000 个 token 的情况下,内容将被截断到此限制,这可能会影响学生模型的性能。 - **模态性**:仅限于基于文本的数据。不支持多模态输入,包括视频、图像或函数调用请求。
- **配置和超参数限制**- 在配置 `distillationSpec` 及其相关参数时,必须遵循以下限制:- 加密:对于涉及 Google 直接交互模型的蒸馏作业,不能使用 CMEK。 - `epochCount`:值必须是 1 到 100 之间的整数。 - `learningRateMultiplier`:值必须在浮点数范围 `0.25` 到 `4.0` 之间。
- **单阶段蒸馏**:教师模型采样和学生模型调优在单个 API 调用中执行。如果您有大量数据需要采样,在后续调优过程中必须重新采样相同的数据。
## 获取访问权限
如果您希望尝试 Gemini 蒸馏服务,可以通过 [[email protected]](mailto:[email protected]) 联系调优服务团队,以请求访问权限并将您的项目加入白名单。
为确保最佳性能和高效的资源管理,建议为蒸馏作业创建一个专用的 Google Cloud 项目。联系我们的团队时,请注明您的项目 ID 或项目编号,以加快白名单添加过程。
### 配额和政策
相似文章
Gemini 3.5 Flash (Low)(1分钟阅读)
Google 推出了 Gemini 3.5 Flash (Low),这是一种新模型变体,在 SWE 任务上比旧版 Gemini 3 Flash (High) 表现更优,同时相比 Medium 版本使用的 token 减少了约 45%。他们还重置了所有付费计划的配额。
Gemini 3.1 Flash-Lite
Google发布Gemini 3.1 Flash-Lite,这是Gemini模型的轻量级版本,专为高容量AI流水线设计。
Gemini 2.5:思维模型家族的更新
Google 宣布 Gemini 2.5 Pro 和 Flash 模型的稳定正式发布,推出新的 Gemini 2.5 Flash-Lite 预览版,具有更低的延迟和成本,并更新 Flash 系列的定价,调整输入/输出令牌费率。
我们正在扩展 Gemini 2.5 系列模型
Google 宣布 Gemini 2.5 Flash 和 Pro 模型正式推出,并推出预览版 Gemini 2.5 Flash-Lite——一个新的成本高效且最快的变种,针对高吞吐量、低延迟的任务进行了优化。
Gemini 2.5 Flash-Lite 现已准备就绪,可用于大规模生产
Google 发布 Gemini 2.5 Flash-Lite 作为稳定版本并正式上线,这是 Gemini 2.5 系列中速度最快、成本最低的模型,定价为每 100 万个令牌 $0.10(输入)/$0.40(输出),具备原生推理能力和与原生工具的完全功能对等。