生产级 RAG 基础设施:Vertex AI + AlloyDB 参考架构

本文档提供了一个参考架构,可用于设计运行具有检索增强生成 (RAG) 功能的生成式人工智能 (AI) 应用的基础设施。本文档的目标受众群体包括生成式 AI 应用的开发者和管理员及云架构师。本文档假定您对 AI、机器学习 (ML) 和大语言模型 (LLM) 概念具有基本的了解。本文档未提供有关如何设计和开发生成式 AI 应用的指导。

架构

下图简要展示了 Google Cloud中支持 RAG 的生成式 AI 应用的架构:

 Google Cloud中支持 RAG 的生成式 AI 应用的高层架构。

该架构包含以下互连组件:

组件用途互动次数
数据注入子系统准备和处理用于实现 RAG 功能的外部数据。数据注入子系统通过数据库层与架构中的其他子系统进行交互。
服务子系统处理生成式 AI 应用与其用户之间的请求-响应流。服务子系统通过数据库层与数据注入子系统进行交互。
质量评估子系统评估服务子系统生成的响应的质量。质量评估子系统直接与服务子系统交互,并通过数据库层与数据注入子系统交互。
数据库存储以下数据:
提示 用于 RAG 的数据的矢量化嵌入 数据注入和质量评估子系统中无服务器函数的配置
架构中的所有子系统都与数据库进行交互。

下图展示了此架构的详细视图:

 Google Cloud中支持 RAG 的生成式 AI 应用的详细架构。

以下部分详细介绍了架构的每个子系统内的组件和数据流。

数据注入子系统

数据注入子系统从外部来源(例如文件、数据库和流式传输服务)注入数据。上传的数据包含进行质量评估的提示。数据注入子系统在架构中提供 RAG 功能。下图展示了架构中的数据注入子系统的详细信息:

 Google Cloud中支持 RAG 的生成式 AI 应用的数据注入子系统。

以下是数据注入流程中的步骤:

  1. 数据会上传到 Cloud Storage 存储桶。数据源可以是应用、数据库或流式传输服务。
  2. 当数据上传到 Cloud Storage 时,系统会将消息发布到 Pub/Sub 主题。
  3. Pub/Sub 触发 Cloud Run 函数来处理上传的数据。
  4. 该函数使用存储在 AlloyDB for PostgreSQL 数据库中的配置数据来启动。
  5. 该函数会解析原始数据,根据需要设置其格式,然后将其划分为多个块。
  6. 该函数使用 Gemini Enterprise Agent Platform 上的相应嵌入模型来创建所注入数据的矢量化嵌入。 注意: 您开发的生成式 AI 应用应使用相同的嵌入模型和参数将自然语言请求转换为嵌入。
  7. 该函数将嵌入存储在启用了 pgvector 扩展程序的 AlloyDB for PostgreSQL 数据库中。如下一部分所述,当服务子系统处理用户请求时,它会使用矢量数据库中的嵌入来检索特定于领域的相关数据。

服务子系统

服务子系统处理生成式 AI 应用与其用户之间的请求-响应流。下图展示了架构中的服务子系统的详细信息:

 Google Cloud中支持 RAG 的生成式 AI 应用的服务子系统。

以下是服务子系统的请求-响应流中的步骤:

  1. 用户通过前端(例如聊天机器人或移动应用)向生成式 AI 应用提交请求。
  2. 生成式 AI 应用将自然语言请求转换为嵌入。 注意: 如需创建嵌入,您开发的生成式 AI 应用应使用相同的嵌入模型和用于将外部数据转换为嵌入的参数。
  3. 应用会完成 RAG 方法的检索部分:
    1. 应用对由数据注入子系统维护的 AlloyDB for PostgreSQL 矢量存储区中的嵌入执行语义搜索。语义搜索可帮助根据提示的意图(而不是其文本内容)来查找嵌入。
    2. 应用将原始请求与根据匹配嵌入检索到的原始数据相结合,以创建情景化提示。
  4. 应用将上下文化提示发送到在 Agent Platform 上运行的 LLM 推理堆栈。
  5. LLM 推理堆栈使用生成式 AI LLM(可以是基础 LLM 或自定义 LLM),并生成受限于所提供上下文的响应。
    1. 应用可以在 Cloud Logging 中存储请求-响应活动的日志。您可以通过 Cloud Monitoring 查看和使用监控日志。Google 不会访问或使用日志数据。
    2. 应用将响应加载到 BigQuery 以进行离线分析。
  6. 应用使用 Responsible AI 过滤条件过滤响应。
  7. 应用通过前端将经过过滤的响应发送给用户。

质量评估子系统

下图展示了架构中的质量评估子系统的详细信息:

 Google Cloud中支持 RAG 的生成式 AI 应用的质量评估子系统。

质量评估子系统收到请求时,会执行以下操作:

  1. Pub/Sub 触发 Cloud Run 函数。
  2. 该函数使用存储在 AlloyDB for PostgreSQL 数据库中的配置数据来启动。
  3. 该函数从 AlloyDB for PostgreSQL 数据库拉取评估提示。这些提示之前由数据注入子系统上传到数据库。
  4. 该函数使用评估提示来评估服务子系统生成的回答的质量。 此评估的输出包括事实准确率和相关性等指标的评估分数。
  5. 该函数会将评估分数以及评估后的提示和回答加载到 BigQuery,以供将来分析。

使用的产品

下面总结了上述架构使用的所有 Google Cloud 产品:

  • Gemini Enterprise Agent Platform:一个综合性平台,可用于构建、扩缩、治理和优化企业级 AI 代理。
  • Cloud Run 函数:一个无服务器计算平台,可让您直接在 Google Cloud中运行单用途函数。
  • BigQuery:一种企业数据仓库,可帮助您使用机器学习、地理空间分析和商业智能等内置功能管理和分析数据。
  • Cloud Storage:适用于各种数据类型的费用低廉且不受限制的对象存储。数据可从 Google Cloud内部和外部访问,并且跨位置进行复制以实现冗余。
  • AlloyDB for PostgreSQL:与 PostgreSQL 兼容的全托管式数据库服务,专为要求苛刻的工作负载(包括混合事务和分析处理)而设计。
  • Pub/Sub:一种异步且可伸缩的通讯服务,可将生成消息的服务与处理这些消息的服务分离开。
  • Cloud Logging:具有存储、搜索、分析和提醒功能的实时日志管理系统。
  • Cloud Monitoring:可帮助您了解您的应用和基础设施的性能、可用性和健康状况的服务。

使用场景

RAG 是一种可提高从 LLM 生成的输出质量的有效技术。本部分提供可使用支持 RAG 的生成式 AI 应用的应用场景示例。

个性化产品推荐

在线购物网站可能会使用由 LLM 提供支持的聊天机器人来帮助客户查找产品或获取与购物相关的帮助。可以使用有关用户购买行为和网站互动模式的历史数据来增强用户提出的问题。数据可能包括存储在非结构化数据存储区中的用户评价和反馈,或存储在网络分析分析型数据仓库中的搜索相关指标。然后,LLM 可以处理增强的问题,以生成个性化回复,用户可能认为这些回复更具吸引力和说服力。

临床辅助系统

医院中的医生需要快速分析和诊断患者的健康状况,从而做出有关适当的护理和药物的决策。使用 Med-PaLM 等医疗 LLM 的生成式 AI 应用可用于辅助医生完成临床诊断过程。应用生成的响应可以基于患者历史记录,具体方法是将医生的提示与来自医院电子健康记录 (EHR) 数据库或外部知识库(例如 PubMed)的数据结合在一起。

借助由生成式 AI 提供支持的法律研究,律师可以快速查询大量法规和判例法,以确定相关的法律先例或总结复杂的法律概念。可以使用从律师事务所专有的合同语料库、过往法律沟通和内部案例记录中检索到的数据来增强律师的提示,从而改进此类研究的输出结果。这种设计方法可确保生成的响应与律师专门从事的法律领域相关。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Contact Us


Contact:Michael Chan

Tel:+852 66606890

E-Mail:info@flycloud.io

这将关闭于 0 秒