开发生成式 AI 应用

Last reviewed 2024-03-26 UTC

本文档可帮助您了解如何应对生成式 AI 应用开发的每个阶段的挑战。其中介绍了如何选择模型、自定义模型的输出以满足您的需求、评估自定义内容以及部署模型。本文档假设您已经考虑了用例,并且该用例适用于生成式 AI。如需了解如何开发用例,请参阅评估和定义生成式 AI 业务用例

在开始开发生成式 AI 应用之前,请评估您的组织的技术准备情况(功能和基础设施)。如需了解如何评估 AI 功能并创建路线图以充分利用其潜力,请参阅 AI 准备情况研讨会。如果您计划开发由生成式 AI 自动执行的工作流,请评估是否应让人类参与关键决策阶段的循环。人工审核有助于做出决策,例如确保负责任地使用、满足特定的质量控制要求或监控生成的内容。

生成式 AI 模型

生成式 AI 基础模型基于文本、图片、代码或其他多媒体的数 TB 数据集进行训练。数据和模型架构使模型能够识别复杂模式,获得深入的情景理解,并生成由训练数据驱动的文本、图片、音乐或视频等新内容。

基础模型是构建众多生成式 AI 应用的核心模型。这些模型的功能转化为新的能力:通过简单的文本提示指令,生成式 AI 基础模型可以学习执行各种任务,例如翻译语言、回答问题、写诗或编写代码,且无需针对每项任务进行明确的训练。生成式 AI 基础模型还可以进行调整,以使用一些提示方法执行特定任务,也可以使用最少的额外训练数据进行微调。

大语言模型 (LLM) 是使用文本训练的,它们是通常基于深度学习架构的基础模型之一,例如 Google 于 2017 年开发的 Transformer。LLM 可以使用数十亿文本样本和其他内容进行训练,并且 LLM 可以针对特定领域进行自定义。

其他多模态模型扩展了生成式 AI 应用处理来自多模态(包括图片、视频、音频和文本)的信息的能力。多模态提示结合了多种输入格式,例如文本、图片和音频。例如,您可以输入图片,然后要求生成式 AI 应用列出或描述图片中的对象。Google 的 Gemini 模型完全构建了多模态,可以跨文本、图片、视频、音频和代码无缝推理。Google Cloud 的 Model GardenVertex AI 可帮助您查找和自定义来自 Google、开源和第三方来源的一系列基础模型。

选择模型

选择模型时,请考虑模型的模态、大小和费用。选择仍能满足响应质量和延迟时间要求的最经济实惠的模型。

  • 模态:如上一部分所述,模型的模态对应于训练模型所针对的高级数据类别(如文本、图片和视频)。通常,您的使用场景与模型的模态密切相关。如果您的使用场景涉及生成文本到图像,您需要找到使用文本和图片数据训练的模型。如果您需要多模态的灵活性(如多模态搜索),有一些模型也支持多模态用例,但费用和延迟时间可能更高。
    • Vertex AI 模型提供了大量可供您使用的生成式 AI 模型。
    • Model Garden 提供了 Google Cloud 上的第一方和开源机器学习模型产品列表。
  • 大小:模型的大小通常通过参数数量来衡量。通常,较大的模型可以学习数据中更复杂的模式和关系,从而产生更高质量的响应。由于同一系列中较大的模型具有较长的延迟时间和较高的费用,因此您可能需要试验和评估模型以确定哪种模型大小最适合您的用例。
  • 费用:模型的费用与其功能有关,其功能通常与模型的参数数量相关。模型也可以采用不同的计量和计费方式。例如,某些模型根据输入和输出词元的数量收费。其他模型根据部署模型时使用的节点时数计费。

    • 如需了解 Vertex AI 上的生成式 AI 模型价格,请参阅 Vertex AI 价格

    • 如需了解在 Google Kubernetes Engine (GKE) 上部署模型的费用,请参阅 GKE 价格

  • 功能:并非所有模型都支持调优和提炼等功能。如果这些功能对您很重要,请检查每个模型支持的功能。

设计提示

提示设计是编写提示和回答对的过程,为语言模型提供额外的上下文和指令。编写提示后,您可以将其作为提示数据集提供给模型以进行预训练。当模型执行预测时,它会使用内置的指令做出回答。

如果您想获得特定输出,可以使用提示设计策略,例如指示模型完成部分输入或向模型提供理想回答的示例。如需了解详情,请参阅提示设计简介

自定义模型

提示设计后,您可能会发现模型的回答效果良好,因此无需对其进行自定义。如果模型性能不佳(例如出现幻觉),您可以使用其他自定义技术。以下部分介绍了此类技术,并可帮助您了解这些选项如何影响模型的输出。

函数调用和扩展程序

函数调用Vertex AI Extensions 扩展了模型的功能。考虑您的应用的使用场景,以及仅使用一个模型可能不够的场景。您可以通过添加函数调用或扩展程序来帮助模型。例如,您的模型可以从文本中提取日历信息,然后使用扩展程序查找预订以及进行预订。

虽然函数调用和扩展程序可以互换使用,但存在一些高级差异。函数调用是一种异步操作,您无需在代码中添加凭据。Vertex AI Extensions 提供可用于执行复杂任务的预构建选项,这样您无需编写自己的函数。但是,由于 Vertex AI Extensions 会为您返回并调用函数,因此扩展程序要求您在代码中添加凭据。

落地

落地是指通过将模型回答固定到可验证的信息来源来增强模型回答。如需连接模型,请将其连接到数据源。连接模型有助于减少幻觉,从而提高所生成内容的可信度。

检索增强生成 (RAG) 是一种常用的基础技术。RAG 使用搜索功能查找相关信息,然后将该信息添加到模型提示中。使用 RAG 时,输出基于事实和最新信息。RAG 搜索使用向量嵌入和向量数据库,它们会将数据存储为非结构化数据(如文本和图片)的数值表示。如需了解详情,请参阅什么是向量数据库

如需了解 Vertex AI 中的依据,请参阅依据概览。如需了解如何在 AlloyDB for PostgreSQL 中设置嵌入工作流,请参阅嵌入工作流示例

模型调优

与单纯提示设计相比,专业任务(例如使用特定术语训练语言模型)可能需要更多的训练。在这种情况下,您可以使用模型调优来提高性能,并让模型符合特定的输出要求。

如需对模型进行调优,您必须构建训练数据集,然后选择一种调优方法,例如监督式调优、基于人类反馈的强化学习 (RLHF) 调优或模型精馏。数据集的大小和调优方法取决于您的模型和要优化的内容。例如,专业化小众任务需要较小的数据集才能获得显著改进。如需详细了解模型调优,请参阅调优语言基础模型

评估模型

模型评估可帮助您评估提示和自定义设置对模型性能的影响。每种评估方法各有利弊。例如,基于指标的评估可以通过可量化的方式来衡量性能,从而快速实现自动化和扩缩。但是,指标可能会过度简化结果,并错过自然语言的上下文和细微差别。如需消除这些缺点,请结合使用各种指标以及人工评估。

Vertex AI 上的生成式 AI 提供自动并排评估功能,可让您将两个模型的输出与标准答案进行比较。 第三个模型可帮助您选择质量更高的回答。自动并排评估与人工评估者相当,但更为快捷,且按需提供。但是,为了执行比较,此方法需要一个大于要评估的模型的模型,因而可能会显示固有的偏差。因此,您仍应执行一些人工评估。

对于所有评估方法,您都需要评估数据集。评估数据集包括您创建的提示和标准答案(理想回答)对。构建数据集时,请添加与您要评估的任务一致的各种样本,以获取有意义的结果。

部署模型

部署模型会将端点和物理机器资源与模型相关联,以实现在线、低延迟的预测。并非所有模型都需要部署。例如,Vertex AI 上的生成式 AI 中可用的 Google 基础模型已具有端点。这些端点特定于您的 Google Cloud 项目,可供您立即使用。但是,如果您调优其中任何模型,则必须将其部署到端点。

部署模型时,请决定是要在全托管式环境还是自行管理的环境中部署模型。在全托管式环境中,选择所需的物理资源(例如机器类型和加速器类型),然后 Vertex AI 会为您实例化和管理资源。例如,如需启用由 Vertex AI 为您管理部署资源的在线预测,请参阅将模型部署到端点。在自行管理的环境中,您可以更精细地控制资源,但需要自行管理资源。使用自行管理的环境,您可以在 GKE 等平台上提供模型

确定要部署的环境类型后,请考虑预期流量、延迟时间要求和预算。您需要平衡这些因素与物理资源。例如,如果降低费用是优先考虑事项,则使用较低费用的机器时也许可以容忍更长的延迟时间。测试环境是这种权衡的一个很好示例。如需详细了解如何选择机器类型,请参阅确定用于 Vertex AI 端点的理想机器类型笔记本。

Responsible AI

Vertex AI 上的生成式 AI 在设计时考虑到了 Google 的 AI 原则。但是,请务必测试模型,以确保安全、可靠地使用模型。由于 LLM 具有出色的多样性,因此很难预测意外或不可预见的回答。

在为用例开发应用时,请考虑生成式 AI 模型的限制,以便正确减少潜在的滥用和意外问题。模型限制的一个示例是,模型的性能仅与您使用的数据相同。如果您给模型提供的数据欠佳(例如不准确或不完整数据),则无法获得最佳性能。验证您的输入数据和提示是否准确。否则,模型性能可能欠佳或输出有误。如需详细了解生成式 AI 模型的限制,请参阅 Responsible AI

后续步骤