使用 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.0 Pro Gemini 1.5 Pro Gemini 1.5 Flash Gemini 2.0 Flash Gemini 2.0 Flash-Lite
输入模式 文本 文本、文档、图片、视频、音频 文本、文档、图片、视频、音频 文本、文档、图片、视频、音频 文本、文档、图片、视频、音频
输出模式 文本 文本 文本 文本 文本
上下文窗口、总 token 数上限 32,760 2,097,152 1,048,576 1,048,576 1,048,576
输出上下文长度 8192 8192 8192 8192 8192
使用搜索建立依据
函数调用
代码执行
上下文缓存
批量预测
Live API
延迟时间 比 1.5 Flash 慢 1.5 系列中功能最强大的设备 1.5 系列中最快 快速且经济高效 快速且最具成本效益
微调
推荐的 SDK Vertex AI SDK Vertex AI SDK Vertex AI SDK Gen AI SDK Gen AI SDK
价格单位 基于字符, 基于字符, 基于字符, 令牌 令牌

准备工作

为了顺利完成 Gemini 2 迁移,我们建议您在开始迁移流程之前解决以下问题。

模型弃用意识

请注意旧版 Gemini 模型的模型版本支持和可用时间表,并确保在您使用的模型被弃用之前完成迁移。

信息安全、治理和监管审批

主动向信息安全 (InfoSec)、风险和合规性利益相关方申请 Gemini 2 所需的批准。确保涵盖特定领域的风险和合规性限制,尤其是在医疗保健和金融服务等受到严格监管的行业。请注意,Gemini 2 型号的 Gemini 安全控制各不相同。

位置可用性

请参阅 Google Cloud 上的生成式 AI 模型和合作伙伴模型的提供情况文档,确保您选择的 Gemini 2 模型在您需要的区域提供,或者考虑改用全球端点

基于模式和令牌化功能的定价差异

查看 Gemini 2 针对应用中所有模态(文本、代码、图片、语音)的价格。如需了解详情,请参阅 Generative 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.0-flash-001",
    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

以下是使用 Python 版 Vertex AI SDK 的短代码示例:

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 版本相比的效果。
  • 如果贵组织定期进行Canary 版部署,请务必使用 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 支持团队

后续步骤