开发生成式 AI 应用
本文档可帮助您了解如何应对开发生成式 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 Garden 和 Vertex AI 可帮助您查找和自定义来自 Google、开源和第三方来源的一系列基础模型。
选择模型
选择模型时,请考虑模型的模态、大小和费用。选择最实惠的模型,同时仍能满足您的回答质量和延迟要求。
- 模态:如上一部分所述,模型的模态对应于模型所针对的高级数据类别,例如文本、图片和视频。通常,您的应用场景与模型的模态密切关联。如果您的应用场景涉及文本转图片生成,则需要找到一个基于文字和图片数据训练的模型。如果您需要多种模态的灵活性(如多模态搜索),有些模型也支持多模态应用场景,但费用和延迟可能会更高。
- Vertex AI 模型提供了大量可供您使用的生成式 AI 模型。
- Model Garden 在Google Cloud上提供了第一方和开源机器学习模型列表。
- 大小:模型的大小通常通过参数数量来衡量。一般来说,较大的模型可以学习数据内更复杂的模式和关系,从而生成更高质量的回答。由于同一系列中较大的模型具有较长的延迟时间和较高的费用,因此您可能需要试验和评估模型以确定哪种模型大小最适合您的用例。
费用:模型的费用与其功能有关,其功能通常与模型的参数数量相关。模型的计量和收费方式也可能有所不同。例如,某些模型根据输入和输出令牌的数量收费。其他模型根据模型部署时使用的节点时数收费。
如需了解 Vertex AI 上的生成式 AI 模型价格,请参阅 Vertex AI 价格。
如需了解在 Google Kubernetes Engine (GKE) 上部署模型的费用,请参阅 GKE 价格。
功能:并非所有模型都支持调优和提炼等功能。如果这些功能对您很重要,请检查每个模型支持的功能。
设计提示
提示设计是编写提示和回答对的过程,为语言模型提供额外的上下文和指令。编写提示后,您可以将其作为提示数据集提供给模型以进行预训练。当模型执行预测时,它会使用内置的指令做出回答。
如果您想获得特定输出,可以使用提示设计策略,例如指示模型完成部分输入或向模型提供理想回答的示例。如需了解详情,请参阅提示设计简介。
自定义模型
提示设计后,您可能会发现模型的回答效果良好,因此无需对其进行自定义。如果模型表现不佳(例如出现幻觉),您可以使用其他自定义技术。以下部分介绍了此类技术,可帮助您了解这些选项如何影响模型的输出。
函数调用和扩展程序
函数调用和 Vertex AI 扩展程序可扩展模型的功能。考虑您的应用的使用场景,以及仅使用一个模型可能不够的场景。您可以通过添加函数调用或扩展程序来辅助模型。例如,您的模型可以从文本中提取日历信息,然后使用扩展程序查找预订以及进行预订。
虽然您可以互换使用函数调用和扩展程序,但两者在高层次上存在一些差异。函数调用是一种异步操作,您无需在代码中包含凭据。Vertex AI 扩展程序提供了可用于复杂任务的预构建选项,因此您无需编写自己的函数。不过,由于 Vertex AI 扩展程序会为您返回和调用函数,因此扩展程序需要您在代码中包含凭据。
落地
落地是指通过将模型回答固定到可验证的信息来源来增强模型回答。如需为模型建立依据,请将其与数据源关联。为模型建立依据有助于减少幻觉,从而提高生成内容的可信度。
检索增强生成 (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。