Google Vertex AI 为大语言模型提供RAG引擎

Vertex AI RAG Engine 总结

概述

Vertex AI RAG Engine 是一个托管编排服务,旨在简化将大型语言模型(LLMs)连接到外部数据源的过程,使其能够生成更相关、更少“幻觉”的响应,并保持数据的最新性。

主要特点

  • 平衡易用性与强大功能:Vertex AI RAG Engine 在 Vertex AI Search 的易用性和使用底层 Vertex AI API(如 Text Embedding API、Ranking API 等)构建的自定义 RAG 管道的强大功能之间找到了平衡点。
  • 工作流程支持:包括数据摄取、数据转换、嵌入、数据索引、信息检索和生成等步骤。

工作流程

  1. 数据摄取:从多种不同来源获取数据。
  2. 数据转换:例如将数据分割成块以便索引。
  3. 嵌入:提供文本的数值表示以捕捉其语义和上下文。
  4. 数据索引:构建优化搜索的语料库。
  5. 信息检索:基于用户提示从知识库中检索相关信息。
  6. 生成:将检索到的信息与原始用户查询结合生成最终响应。

使用方法

  • Python 绑定:可以通过 google-cloud-aiplatform 包中的 Python 绑定轻松开始使用。
  • 创建语料库:使用 upload_fileimport_file 方法从本地文件或 Google Cloud Storage、Google Drive 中的文档创建语料库。
  • 检索工具:创建检索工具并将其连接到 LLM,以暴露新的端点用于查询增强模型。

代码示例

# 创建语料库
rag_corpus = rag.create_corpus(
    display_name="my-rag-corpus", embedding_model_config=embedding_model_config
)

# 上传文件
rag_file = rag.upload_file(
    corpus_name=rag_corpus.name,
    path="test.txt",
    display_name="test.txt",
    description="my test file",
)

# 创建检索工具
rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_corpora=[rag_corpus.name],
            similarity_top_k=10,
            vector_distance_threshold=0.5,
        ),
    )
)

# 加载工具到 Gemini 模型
rag_gemini_model = GenerativeModel(
    "gemini-1.5-flash-001",  # 自定义部署的端点
    tools=[rag_retrieval_tool],
)

# 生成响应
response = rag_gemini_model.generate_content("What is RAG?")

适用场景

  • 个性化投资建议和风险评估
  • 加速药物发现和个性化治疗方案
  • 增强尽职调查和合同审查

RAG 技术

RAG(Retrieval Augmented Generation)是一种用于“接地”大型语言模型的技术,通过从训练期间无法访问的来源检索相关信息并将其与提示一起提供给模型,使其更适合特定用例或企业环境。接地可以通过微调来实现,外部数据用于重新训练模型,使其在每个查询中可用,即使未在提示级别指定。

接地模型的好处

  • 更好的上下文理解:接地使模型能够更好地理解查询的上下文。
  • 任务特定信息:提供额外的任务特定信息,以生成更好的响应。
  • 访问私有数据:在企业数据背景下,接地旨在通过提供对防火墙后私有数据的安全访问来规避通用 LLMs 的局限性。
阅读 17
0 条评论