使用 Vertex AI 中的 Gemini API 将应用迁移到 Gemini 2

本指南介绍了如何将生成式 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 模型提供的输出至少与当前生产模型的输出质量相当。模型性能回归测试只是在更改系统或基础模型时进行的模型评估。模型性能回归测试进一步细分为:
    • 离线模型性能测试:在专用实验环境中,根据各种模型输出质量指标评估模型输出的质量。
    • 在线模型效果测试:根据隐式或显式用户反馈,评估实时在线部署中模型输出的质量。
  • 负载测试:评估应用如何处理大量推理请求。需要预配的吞吐量的应用必须进行此类回归测试。

记录模型评估和测试要求

  1. 准备好重复执行您最初构建应用时所做的任何相关评估,以及您此后所做的任何相关评估。
  2. 如果您认为现有评估无法充分涵盖或衡量应用执行的任务范围,则应设计并准备其他评估。
  3. 如果您的应用涉及 RAG、工具使用、复杂的代理工作流或提示链,请确保现有评估数据支持独立评估每个组件。如果不是,请收集每个组件的输入-输出示例。
  4. 如果您的应用影响特别大,或者属于面向用户的更大型实时系统,则应纳入在线评估。

代码升级和测试

考虑升级到 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

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="How does AI work?",
)
print(response.text)
# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

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 的简短代码示例:

import vertexai
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-2.0-flash-001")

response = model.generate_content(
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?"
)

print(response.text)
# Example response:
# **Emphasizing the Dried Aspect:**
# * Everlasting Blooms
# * Dried & Delightful
# * The Petal Preserve
# ...

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 搜索(例如 "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 的性能与旧模型相当:

负载测试

如果您的应用需要达到一定的最低吞吐量,请执行负载测试,确保 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 支持团队

后续步骤