AiToolGo的标志

使用 GKE 和 Cloud SQL 构建 RAG 应用

深入讨论
技术性
 0
 0
 1
本文提供了一种参考架构,用于设计使用 Google Kubernetes Engine (GKE) 和 Cloud SQL 以及 Ray 和 Hugging Face 等开源工具来运行检索增强生成 (RAG) 功能的基础设施。它概述了该架构的组件、数据流以及在各个领域的实际用例。
  • 主要观点
  • 独特见解
  • 实际应用
  • 关键主题
  • 核心洞察
  • 学习成果
  • 主要观点

    • 1
      支持 RAG 的生成式 AI 应用的全面架构概述
    • 2
      展示实际应用的实用用例
    • 3
      集成多个 Google Cloud 和开源工具
  • 独特见解

    • 1
      嵌入子系统数据流的详细解释
    • 2
      语义搜索在增强用户交互方面的创新应用
  • 实际应用

    • 本文为希望在生成式 AI 应用中使用 GKE 和 Cloud SQL 实现 RAG 功能的开发者提供了一份实用指南。
  • 关键主题

    • 1
      RAG 架构设计
    • 2
      GKE 和 Cloud SQL 的集成
    • 3
      生成式 AI 应用的用例
  • 核心洞察

    • 1
      深入探讨 RAG 架构组件
    • 2
      来自不同行业的实际示例
    • 3
      关于优化云环境性能和成本的指导
  • 学习成果

    • 1
      了解支持 RAG 的生成式 AI 应用的架构
    • 2
      学习如何将 GKE 和 Cloud SQL 与开源工具集成
    • 3
      探索实际用例和实现最佳实践
示例
教程
代码示例
可视化内容
基础知识
高级内容
实用技巧
最佳实践

RAG 与 GKE 和 Cloud SQL 入门

本文探讨了一种在 Google Cloud 上部署检索增强生成 (RAG) 应用的参考架构,该架构利用了 Google Kubernetes Engine (GKE)、Cloud SQL 以及流行的开源工具。RAG 通过将生成式 AI 的输出与其检索到的知识相结合,提高了其质量,使其成为需要准确且上下文感知响应的应用的理想选择。本指南面向熟悉 GKE 和 Cloud SQL,并对 AI、机器学习 (ML) 和大型语言模型 (LLM) 有概念性理解的开发者。我们将深入探讨该架构的组件、数据流以及构建健壮高效的 RAG 系统的关键注意事项。

架构概述:嵌入和服子系统

该架构包含两个主要子系统:嵌入子系统和服务子系统。嵌入子系统负责从各种来源摄取数据,将其转换为向量嵌入,并将这些嵌入存储在向量数据库中。服务子系统处理用户请求,使用语义搜索从向量数据库中检索相关信息,并使用 LLM 生成响应。这种关注点分离允许高效的数据处理和可扩展的服务交付。

嵌入子系统中的详细数据流

来自内部和外部来源的数据上传到 Cloud Storage。此上传会触发一个通知嵌入服务的事件。然后,嵌入服务会检索数据,使用 Ray Data 进行预处理(可能涉及分块和格式化),并使用 intfloat/multilingual-e5-small 等开源模型生成向量嵌入。然后,这些嵌入会被写入 Cloud SQL for PostgreSQL 向量数据库,该数据库针对存储和检索高维向量进行了优化。

服务子系统中的请求-响应流

用户通过基于 Web 的聊天界面提交自然语言请求。运行在 GKE 上的前端服务器使用 LangChain 将请求转换为嵌入。此嵌入用于在向量数据库中执行语义搜索,检索相关数据。然后,将原始请求与检索到的数据结合起来,创建一个上下文提示,并将其发送到推理服务器。由 Hugging Face TGI 提供支持的推理服务器使用开源 LLM(例如 Mistral-7B-Instruct 或 Gemma)生成响应。在将响应发送回用户之前,会使用 Responsible AI (RAI) 服务对其进行安全过滤。

使用的关键 Google Cloud 和开源产品

该架构利用了多项关键的 Google Cloud 和开源产品。Google Kubernetes Engine (GKE) 提供了容器编排平台。Cloud Storage 提供可扩展的对象存储。Cloud SQL for PostgreSQL,通过 pgvector 扩展增强,用作向量数据库。开源工具包括用于 LLM 服务 Hugging Face Text Generation Inference (TGI)、用于分布式计算的 Ray 以及用于构建 LLM 驱动的应用的 LangChain。

用例:个性化、临床辅助和法律研究

RAG 适用于各种场景。对于个性化产品推荐,聊天机器人可以利用历史用户数据来提供更相关的建议。在临床辅助方面,医生可以使用 RAG 来访问患者病史和外部知识库,以改进诊断。在法律研究中,律师可以快速查询法规和判例法,并结合来自内部合同和案例记录的数据进行增强。

替代设计选项:Vertex AI 和 AlloyDB

对于完全托管的向量搜索解决方案,请考虑使用 Vertex AI 和 Vector Search。或者,您可以利用其他 Google Cloud 数据库(如 AlloyDB for PostgreSQL)的向量存储功能。这些替代方案在管理开销和性能方面提供了不同的权衡。

安全、隐私和合规性注意事项

安全性至关重要。利用 GKE Autopilot 的内置安全功能。实施 Identity-Aware Proxy (IAP) 进行访问控制。使用 Cloud KMS 加密静态数据和传输中的数据。对于 Cloud SQL,使用 SSL/TLS 或 Cloud SQL Auth 代理强制执行安全连接。使用 Sensitive Data Protection 来识别和去标识 Cloud Storage 中的敏感数据。利用 VPC Service Controls 防止数据泄露。通过指定适当的数据存储区域来确保符合数据驻留要求。

可靠性和高可用性设计

通过使用区域 GKE 集群并配置高可用性的 Cloud SQL 实例来确保高可用性。利用 Cloud Storage 的区域或多区域存储选项进行数据冗余。考虑使用 GPU 资源的预留容量,以确保在自动扩缩事件期间的可用性。

成本优化策略

通过利用 GKE Autopilot 的效率来优化成本。考虑对可预测的工作负载使用承诺使用折扣 (Committed Use Discounts)。在 GKE 节点上使用 Spot VMs 来降低计算成本。对于 Cloud SQL,如果不需要高可用性,请使用独立实例。利用 Cloud SQL 的成本分析洞察来识别过度配置的实例。根据数据访问频率和保留要求选择适当的 Cloud Storage 类别。

性能调优和优化

根据性能要求选择 GKE Pod 的适当计算类别。为推理服务器和嵌入服务使用 GPU 机器类型。通过分配足够的 CPU 和内存来优化 Cloud SQL 性能。使用 IVFFlat 或 HNSW 索引进行更快的近似最近邻 (ANN) 向量搜索。利用 Cloud SQL 的 Query Insights 工具来识别和解决性能瓶颈。对于上传到 Cloud Storage 的大文件,请考虑使用并行复合上传。

部署和后续步骤

GitHub 上提供了用于部署此架构的示例代码库。此代码仅用于实验目的,不适用于生产环境。它会在 GKE 上配置 Cloud SQL,部署 Ray、JupyterHub 和 Hugging Face TGI,并部署一个示例聊天机器人应用程序。请记住在实验后删除任何未使用的资源。通过查看 GKE 最佳实践、研究 Google Cloud 的生成式 AI 基础选项以及研究使用 Vertex AI 和 Vector Search 或 AlloyDB 的架构来进一步探索。请参阅 AI 和机器学习的 Well-Architected Framework 以获取架构原则和建议。

 原始链接:https://cloud.google.com/architecture/rag-capable-gen-ai-app-using-gke?hl=zh-cn

评论(0)

user's avatar

      相关工具