本指南介绍了如何将生成式 AI 应用从 Gemini 1.x 和 PaLM 模型迁移到 Gemini 2 模型。
为什么要迁移到 Gemini 2?
与 Gemini 1.x 和 PaLM 模型相比,Gemini 2 在性能方面有了显著提升,并新增了多种功能。此外,每个模型版本都有自己的版本支持和发布时间表。
将大多数生成式 AI 应用升级到 Gemini 2 时,应该不需要对提示或代码进行重大重新设计。但有些应用需要及时更改提示,如果不先通过 Gemini 2 运行提示,就很难预测这些更改。因此,建议在迁移之前先进行 Gemini 2 测试。
只有在出现某些重大变更或要使用新的 Gemini 2 功能时,才需要进行重大代码更改。
我应该迁移到哪个 Gemini 2 模型?
在选择要迁移到的 Gemini 2 模型时,您需要考虑应用所需的功能以及这些功能的费用。
如需大致了解 Gemini 2 模型的功能,请参阅 Gemini 2。如需大致了解所有 Google 模型,请参阅 Google 模型。
如需比较 Gemini 1.x 和 Gemini 2 模型,请参阅下表。
功能 | Gemini 1.5 Pro | Gemini 1.5 Flash | Gemini 2.0 Flash | Gemini 2.0 Flash-Lite | Gemini 2.5 Pro | Gemini 2.5 Flash |
---|---|---|---|---|---|---|
输入模态 | 文本、文档、图片、视频、音频 | 文本、文档、图片、视频、音频 | 文本、文档、图片、视频、音频 | 文本、文档、图片、视频、音频 | 文本、文档、图片、视频、音频 | 文本、文档、图片、视频、音频 |
输出模态 | 文本 | 文本 | 文本 | 文本 | 文本 | 文本 |
上下文窗口,总 token 限制 | 2,097,152 | 1,048,576 | 1,048,576 | 1,048,576 | 1,048,576 | 1,048,576 |
输出上下文长度 | 8192 | 8192 | 8192 | 8192 | 64,192 | 64,192 |
使用搜索功能建立依据 | 是 | 是 | 是 | 否 | 是 | 是 |
函数调用 | 是 | 是 | 是 | 是 | 是 | 是 |
代码执行 | 否 | 否 | 是 | 否 | 是 | 是 |
上下文缓存 | 是 | 是 | 是 | 否 | 是 | 是 |
批量预测 | 是 | 是 | 是 | 是 | 是 | 是 |
Live API | 否 | 否 | 否 | 否 | 否 | 否 |
延迟时间 | 1.5 系列中最强大的型号 | 1.5 系列中最快的型号 | 速度快 + 成本效益高 | 快速 + 最具成本效益 | 比 Flash 慢,但具有良好的成本效益 | 快速 + 最具成本效益 |
微调 | 是 | 是 | 是 | 是 | 是 | 是 |
推荐的 SDK | Vertex AI SDK | Vertex AI SDK | Gen AI SDK | Gen AI SDK | Gen AI SDK | Gen AI SDK |
价格单位 | 基于字符, | 基于字符, | 令牌 | 令牌 | 令牌 | 令牌 |
准备工作
为了顺利迁移到 Gemini 2,我们建议您在开始迁移流程之前解决以下问题。
模型退役意识
请注意旧版 Gemini 模型的模型版本支持和可用性时间表,并确保在您使用的模型停用之前完成迁移。
信息安全、治理和监管审批
主动向信息安全 (InfoSec)、风险和合规性利益相关者申请 Gemini 2 所需的审批。确保您涵盖特定领域的风险和合规性限制,尤其是在医疗保健和金融服务等受到严格监管的行业中。请注意,Gemini 安全控制措施在不同的 Gemini 2 模型之间有所不同。
位置可用性
请参阅 Google Cloud 上的生成式 AI 模型和合作伙伴模型的提供情况文档,确保您选择的 Gemini 2 模型在您需要的区域可用,或者考虑改用全球端点。
基于模式和基于分词的定价差异
查看应用中所有模态(文本、代码、图片、语音)的 Gemini 2 定价。如需了解详情,请参阅生成式 AI 价格页面。请注意,Gemini 2 的文本输入和输出按 token 计费,而 Gemini 1 的文本输入和输出按字符计费。
预配的吞吐量
如有需要,请为 Gemini 2 购买额外的预配吞吐量或更改现有的预配吞吐量订单。
监督式微调
如果您的 Gemini 应用使用监督式微调,请提交新的调优作业,并使用 Gemini 2。我们建议您从默认的调优超参数开始,而不是重复使用之前在 Gemini 版本中使用的超参数值。调优服务已针对 Gemini 2 进行优化。因此,重复使用之前的超参数值可能无法获得最佳结果。
回归测试
升级到 Gemini 2 模型时,主要涉及以下三种类型的回归测试:
- 代码回归测试:从软件工程和 DevOps 角度进行回归测试。此类回归测试始终是必需的。
- 模型性能回归测试:从数据科学或机器学习的角度进行回归测试。这意味着,要确保新的 Gemini 2 模型提供的输出至少与当前生产模型的输出质量相当。模型性能回归测试只是在更改系统或基础模型时进行的模型评估。模型性能回归测试进一步细分为:
- 离线模型性能测试:在专用实验环境中,根据各种模型输出质量指标评估模型输出的质量。
- 在线模型效果测试:根据隐式或显式用户反馈,评估实时在线部署中模型输出的质量。
- 负载测试:评估应用如何处理大量推理请求。需要预配的吞吐量的应用必须进行此类回归测试。
记录模型评估和测试要求
- 准备好重复执行您最初构建应用时所做的任何相关评估,以及您此后所做的任何相关评估。
- 如果您认为现有评估无法充分涵盖或衡量应用执行的任务范围,则应设计并准备其他评估。
- 如果您的应用涉及 RAG、工具使用、复杂的代理工作流或提示链,请确保现有评估数据支持独立评估每个组件。如果不是,请收集每个组件的输入-输出示例。
- 如果您的应用影响特别大,或者属于面向用户的更大型实时系统,则应纳入在线评估。
代码升级和测试
考虑升级到 Google Gen AI SDK
如果您的 Gemini 1.x 应用使用 Vertex AI SDK,请考虑升级到 Gen AI SDK。新的 Gemini 2 功能仅在 Gen AI SDK 中提供。不过,如果您的应用只需要 Vertex AI SDK 中提供的功能,则无需切换到 Gen AI SDK。如果您刚开始接触 Gen AI SDK,请参阅通过 Gen AI SDK 开始使用 Google 生成式 AI 服务笔记本。
Gen AI SDK
我们建议您在升级到 Gemini 2.0 时迁移到 Gen AI SDK。
如果您选择使用 Gen AI SDK,设置过程与 Vertex AI SDK 不同。
如需了解详情,请访问 Google Gen AI SDK。
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
将 GOOGLE_CLOUD_PROJECT
替换为您的 Google Cloud 项目 ID,并将 GOOGLE_CLOUD_LOCATION
替换为您的 Google Cloud 项目的位置(例如 us-central1
)。
Vertex AI SDK
如果您重复使用 Vertex AI SDK,则 1.0、1.5 和 2.0 模型的设置过程相同。如需了解详情,请参阅 Vertex AI SDK for Python 简介。
安装 SDK:
pip install --upgrade --quiet google-cloud-aiplatform
以下是使用 Vertex AI SDK for Python 的简短代码示例:
将 PROJECT_ID
替换为您的 Google Cloud 项目 ID,并将 LOCATION
替换为您的 Google Cloud 项目的位置(例如 us-central1
)。然后,将模型 ID 从 gemini-1.5-flash-002
更改为 gemini-2.0-flash
。
更改 Gemini 通话
将预测代码更改为使用 Gemini 2。至少,这意味着将特定模型端点名称更改为 Gemini 2 模型,以便您加载模型。
具体代码更改取决于您最初实现应用的方式,尤其是您使用的是 Gen AI SDK 还是 Vertex AI SDK。
在进行代码更改后,请对代码执行代码回归测试和其他软件测试,以确保代码能够正常运行。此测试仅用于评估代码是否正常运行。它并非用于评估模型回答的质量。
解决重大代码变更问题
- 动态检索: 改用使用 Google 搜索建立依据。 此功能需要使用 Gen AI SDK,Vertex AI SDK 不支持此功能。
- 内容过滤条件:请注意默认内容过滤条件设置,如果您的代码依赖于已更改的默认设置,请更改代码。
Top-K
令牌抽样参数:gemini-1.0-pro-vision
之后的模型不支持更改Top-K
参数。
在此步骤中,请仅关注代码更改。您可能需要进行其他更改,但请等到开始评估后再根据评估结果考虑以下调整:
- 如果您要从动态检索切换,可能需要通过实验来确定何时使用 Google 搜索(例如
"Only generate queries for the Google Search tool if the user asks about sports. Don't generate queries for any other topic."
),但在评估之前请勿更改提示。 - 如果您使用了
Top-K
参数,请调整其他令牌抽样参数(例如Top-P
),以获得类似的结果。
离线评估
重复您最初开发和发布应用时所做的评估、发布后所做的任何进一步的离线评估,以及您在第 1 步中确定的任何其他评估。如果您认为自己的评估未能充分体现应用的广度和深度,请进一步评估。
如果您没有自动运行离线评估的方法,不妨考虑使用 Gen AI Evaluation Service。
如果您的应用使用微调,请先执行离线评估,然后再使用 Gemini 2 重新调优模型。Gemini 2 改进了输出质量,这意味着您的应用可能不再需要经过微调的模型。
评估结果并调整 Gemini 2 提示和超参数
如果离线评估显示 Gemini 2 的性能有所下降,请按以下步骤迭代应用,直到 Gemini 的性能与旧模型相当:
- 迭代式设计提示,以提升效果(“爬山”)。 如果您刚开始接触爬山算法,请参阅 Vertex Gemini 爬山算法在线训练。Vertex AI 提示优化器(示例笔记本)也可以提供帮助。
- 如果您的应用已经依赖于微调,请尝试微调 Gemini 2。
- 如果您的应用受到动态检索和 Top-K 重大变更的影响,请尝试更改提示和令牌抽样参数。
负载测试
如果您的应用需要达到一定的最低吞吐量,请执行负载测试,确保 Gemini 2 版本的应用满足您的吞吐量要求。
负载测试应在在线评估之前进行,因为在线评估需要将 Gemini 2 暴露给生产流量。使用现有的负载测试插桩来执行此步骤。
如果您的应用已满足吞吐量要求,请考虑使用预配吞吐量。您需要额外的短期预置吞吐量来覆盖负载测试,同时让现有的预置吞吐量订单继续处理生产流量。
在线评估
只有当离线评估显示 Gemini 输出质量足够高且您的应用需要在线评估时,才继续进行在线评估。
在线评估是一种特殊的在线测试。尝试使用组织现有的在线评估工具和程序。例如:
- 如果贵组织经常进行 A/B 测试,请执行一项 A/B 测试,以评估应用的当前实现与 Gemini 2 版本相比如何。
- 如果贵组织经常进行灰度部署,请务必使用 Gemini 2 进行灰度部署,并衡量用户行为的差异。
您还可以通过在应用中构建新的反馈和衡量功能来进行在线评估。不同的反馈和衡量功能适用于不同的应用。例如:
- 在模型输出旁边添加“我喜欢”和“不喜欢”按钮,并比较旧模型与 Gemini 2 之间的“我喜欢”与“不喜欢”比率。
- 并排向用户展示旧模型和 Gemini 2 的输出,并让用户选择自己喜欢的输出。
- 跟踪用户替换或手动调整旧模型输出与 Gemini 2 输出的频率。
这类反馈机制通常需要并行运行应用的 Gemini 2 版本和现有版本。这种并行部署有时称为“影子模式”或“蓝绿部署”。
如果线上评估结果与线下评估结果存在显著差异,则说明您的线下评估未捕捉到实际环境或用户体验的关键方面。根据线上评估结果设计新的线下评估,以弥补线上评估发现的差距,然后返回第 3 步。
如果您使用预置吞吐量,可能需要购买额外的短期预置吞吐量,才能继续满足接受在线评估的用户的吞吐量要求。
生产环境部署
当评估结果表明 Gemini 2 的性能达到或超过旧版模型时,请关闭应用的现有版本,转而使用 Gemini 2 版本。遵循组织现有的生产环境发布程序。
如果您使用的是预配吞吐量,请将预配吞吐量订单更改为您选择的 Gemini 2 模型。如果您要以增量方式发布应用,请使用短期预置吞吐量来满足两种不同 Gemini 模型的吞吐量要求。
提高模型性能
在完成迁移后,请使用以下提示来最大限度地提升 Gemini 2 模型的性能:
- 检查您的系统指令、提示和少样本学习示例,看看是否存在任何不一致、矛盾或不相关的指令和示例。
- 测试更强大的模型。例如,如果您评估的是 Gemini 2.0 Flash-Lite,不妨试试 Gemini 2.0 Flash。
- 检查所有自动化评估结果,确保它们与人工判断一致,尤其是使用判断模型的结果。确保您的评判模型指令不包含不一致或模棱两可的内容。
- 改进评判模型指令的一种方法是,让多个人单独测试这些指令,看看他们的评判是否一致。如果人类以不同的方式解读指令并做出不同的判断,则说明您的判决模型指令存在歧义。
- 对 Gemini 2 模型进行微调。
- 检查评估输出,寻找显示特定类型故障的模式。将失败归类到不同的模型、类型或类别中,可为您提供更具针对性的评估数据,从而更轻松地调整提示以解决这些错误。
- 请务必独立评估不同的生成式 AI 组件。
- 尝试调整令牌抽样参数。
获取帮助
如果您需要帮助, Google Cloud 提供多种支持套餐以满足您的需求,例如全天候支持、手机支持以及技术支持经理对接。如需了解详情,请参阅 Google Cloud 支持团队。