近期,甲骨文公司推出支持 Retrieval Augmented Generation (RAG) 的 Select AI,它使使用 LLMs,以使用自然语言提示根据您的私人数据获得见解或生成创新内容。使用 Select AI RAG,获得与您的自然语言提示和查询更相关的响应和响应,其中包含最新信息,同时有助于降低幻觉的风险。通过利用 Select AI 使用企业数据来增强提示,您可以弥合大型语言模型 (LLMs) 所知道的知识与企业数据库中的知识之间的知识差距。
Select AI 已经使用生成式 AI 组合进行简化和自动化,无论是从自然语言提示生成、运行和解释 SQL,还是使用 LLM。现在,借助 RAG,您可以方便地从 SQL 将生成式 AI 的使用提升到一个新的水平:
- 通过内置的自动化 AI 管道使用您的私有数据创建和填充矢量存储
- 使用通过语义相似性搜索检索的向量存储内容自动增强您的提示或查询
- 将此增强提示发送到您指定的 AI 提供商,LLM 并返回生成的结果
在此版本中,Select AI 支持使用 Oracle AI Vector Search(Oracle Database 23ai 的一项新功能)进行 RAG。
选择 AI RAG
LLMs 是使用来自各种 Internet 来源的快照数据构建的。但是,他们对您的企业知之甚少或一无所知,尤其是当这些知识被视为私人或专有知识时。RAG 将此信息提供给 LLM,而无需进行模型微调,这可能既昂贵又耗时。
Select AI RAG 集成了矢量数据库内容,以帮助从大型语言模型 (LLMs。通过对使用嵌入模型(也称为转换器)生成的向量进行语义相似性搜索,向量数据库支持快速检索非结构化数据,例如文本和其他数据格式。
Select AI RAG 自动执行将提示转换为一个或多个向量并对向量数据库中的内容执行语义相似性搜索的编排步骤。此外,使用 Select AI RAG 使用原始数据自动创建和填充矢量数据库,以帮助开始使用这一强大的功能。
将 Select AI 与 LangChain 等单个编排框架进行对比。这样的框架允许您在应用程序中手工制作 RAG 等技术。Select AI 以最少的额外规范简化和自动化在应用程序中启用 RAG,而无需明确编码 RAG 技术。
例如,Select AI 允许员工通过自然语言对话从公司的多个来源提出问题并获得见解。选择 AI RAG 在用户请求与企业数据中文档对应的向量之间执行语义相似性搜索。例如,这可能包括您的产品文档、竞争分析报告、年度报告、客户呼叫转录、客户代表互动说明和公司政策文件等。
Select AI 简化了每个 RAG 步骤:
- 连接到现有 vector store 或创建新的 vector store
- 按重复计划使用对象存储的对象填充和更新向量索引或触发事件
- 使用该向量存储自动使用相关内容来增强提示,然后将其发送到指定的 AI 提供程序
- 将 LLM给用户
接下来,我们将更详细地了解 Select AI RAG。
构建 vector store
选择 AI 会自动使用您的内容填充您的矢量存储。它将文档分块为适当的大小,并应用指定的 transformer 模型来生成向量嵌入。文档可以来自 Object Storage 等数据源。

Select AI RAG 的一个重要功能是将新数据从对象存储集成到矢量存储中。当新数据到达对象存储时,它会自动添加到相应的向量存储中,并更新向量索引。
检索增强一代
Select AI 使用 AI Profile 中的“narrate”操作和新的矢量索引规范来启用 RAG。对于 SQL 生成,“narrate”使用 LLM,然后要求 LLM 生成该结果的自然语言描述——这本身就是一种“检索增强生成”的形式。当 RAG 使用矢量索引启用时,“narrate”会根据用户提示自动使用矢量搜索结果来增强提示。然后,它将增强提示发送到 LLM,以使用通过语义搜索检索到的内容生成响应。
要查看从向量存储中检索到的内容,LLM 基于“narrate”的响应,请使用 Select AI 的“runsql”操作,而不是“narrate”,并使用相同的提示。“runsql”和“narrate”之间在自然语言到 SQL 的生成和 RAG 的使用方面都是对称的。在这两种情况下,“runsql” 都会根据提示检索数据 – 无论是从数据库表还是向量存储中。然后 'narrate' 获取该结果并将其发送到 LLM 以生成自然语言响应。
在提示下,Select AI 使用 AI Profile 中指定的嵌入模型和向量数据库对前 k 个相似向量执行语义相似性搜索。然后,相应的文档块和原始提示被组合成一个增强的提示,该提示被发送到 LLM。Select AI 处理 RAG 技术的完整编排。

此外,Select AI 会运行可能包含在 LLM,这些查询可能是向量搜索内容的一部分。考虑一个示例,其中您使用 Select AI RAG 了解如何查询数据库以获取系统统计信息。向量搜索可能会返回包含查询的文档来执行此操作。在将响应返回给用户之前,运行此类 SQL 查询的结果将添加到 LLM 响应中。此示例涉及上图中未捕获的其他步骤,用于识别结果中的 SQL 查询、运行这些查询,并将这些结果与直接 LLM。
使用 Select AI RAG
包DBMS_CLOUD_AI具有一个新的过程CREATE_VECTOR_INDEX,它采用索引名称和一组属性。这些属性包括矢量数据库提供程序、对象存储中存储内容的位置、对象存储凭证名称、指定嵌入模型的 AI 配置文件的名称、矢量大小、距离度量以及所需的块重叠和大小。
请注意,就像 AI Profile 具有默认的 LLM,vector index 具有默认的 transformer 模型。作为最佳实践,您可以创建特定于您要使用的变压器模型的 AI 配置文件。但是,如果 LLM 和 transformer 都来自同一个 AI 提供程序,则可以将两者包含在同一个 AI Profile 对象中,对两者使用单个 AI Profile。
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'OPENAI_TEXT_TRANSFORMER',
attributes => '{"provider": "openai",
"credential_name": "OPENAI_CRED",
"embedding_model": "text-embedding-ada-002" }');
END;
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_VECTOR_INDEX',
attributes => '{"vector_db_provider": "oracle",
"location": "https:.../my_namespace/my_bucket/my_data_folder",
"object_storage_credential_name": "OCI_CRED",
"profile_name": "OPENAI_TEXT_TRANSFORMER",
"vector_dimension": 1536,
"vector_distance_metric": "cosine",
"chunk_overlap":128,
"chunk_size":1024}');
END;CREATE_VECTOR_INDEX过程使用 DBMS_CLOUD_PIPELINE 创建管道,这将触发在用户架构的表中创建向量嵌入向量以及向量索引。您可以在名称为 <vector_index_name>$PIPELINE 的 USER_CLOUD_PIPELINES 视图中查看和监控管道。
向量索引可用后,在 AI 配置文件中指定向量索引名称。请注意,在此示例中,嵌入模型在 attributes JSON 字符串中显式指定。Select AI 还允许您列出从向量存储中检索的源。默认情况下,此选项处于启用状态,但如下所示以突出显示。
使用 vector 索引创建 AI 配置文件。
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'OPENAI_GPT',
attributes => '{"provider": "openai",
"credential_name": "OPENAI_CRED",
"vector_index_name": "MY_VECTOR_INDEX",
"temperature": 0.2,
"max_tokens": 4096,
"model": "gpt-3.5-turbo",
"embedding_model": "text-embedding-ada-002",
"enable_sources": true }');
END;现在,您可以使用“narrate”操作。如果我们有一个包含天气信息的矢量数据库,那么在询问 2023 年的最高温度时,我们可能会看到如下结果:
EXEC DBMS_CLOUD_AI.SET_PROFILE('OPENAI_GPT');
SELECT AI NARRATE what was the maximum temperature in 2023;
RESPONSE
--------------------------------------------------------------------------------
The maximum temperature in 2023 was 82.1 in August.
Sources:
- SOP_Weather_Current.csv (<bucket>/SOP_Weather_Current.csv)请注意,Select AI 还提供了从向量数据库中检索并由 LLM生成响应的源文档。
相应的 'runsql' 调用提供输出:
SELECT AI RUNSQL what was the maximum temperature in 2023; DATA SOURCE URL SCORE ------------------- ---------------- -------------------------------- ----- SOP – This file SOP_Weather_Current.csv <bucket>/SOP_Weather_Current.csv 0.67 contains weather data for 2021-2024 ...
请注意,使用 RAG 时,从 'runsql' 返回的列始终相同。
主要优势
Select AI RAG 具有以下优势:
- 实现数据访问民主化:消除使用企业数据的障碍。无需依赖 SQL 专家来访问和查询企业数据存储,只需以自然语言提供问题并利用强大的矢量搜索即可。
- 更相关的结果:LLMs 在提供来自企业数据的足够上下文时,可以产生更准确和相关的响应。这有助于减少 LLM 幻觉。
- 当前结果:易于更新向量存储意味着提供给 LLM可以根据需要是最新的。训练数据集没有截止日期,也没有昂贵或耗时的模型微调。
- 简单性: Select AI 自动执行流程中的关键步骤。开发人员不需要成为生成向量索引、编码数据、填充向量存储或开发 RAG 管道的专家。只需指定私有数据的存储位置(例如,对象存储中的 html 文件)和生成向量嵌入时要使用的 transformer 模型。
- 易于理解的上下文结果:获取从载体存储中检索并提供给 LLM。通过了解响应所基于的源材料,这为提高 LLM。以自然语言文本或 JSON 格式查看结果,以便轻松提取响应组件(如源)以开发应用程序。
支持更多用例
RAG 支持跨行业和组织的新使用案例。
- IT:技术人员可以通过对话式查询知识库,而不是梳理支持网站和手册,从而更快地获得系统故障排除问题的答案,例如“数据库错误 ORA-xxxxx 的可能原因是什么?
- 客户服务: 使用买家历史记录和商品信息,通过个性化、相关的回复来回答“如何修复新购买商品上损坏的功能”等问题,从而改善买家体验。
- 财务:根据市场动向、分析报告和其他经济指标,为管理客户关系的财务顾问提供关键发展的定制快照。
总结
Select AI RAG 改变了您获得紧迫业务问题的答案的方式。在数据驱动型决策比以往任何时候都更加重要的情况下,Select AI RAG 有助于通过生成式 AI 提供有价值的最新企业数据,并可以提高生产力并支持开发 AI 驱动的应用程序。
资源
有关更多信息,请参阅以下内容并立即尝试通过 Oracle LiveLabs 选择 AI RAG!
博客
- 将 Select AI Natural Language 引入 SQL on Autonomous Database
- 宣布在 Autonomous Database 上使用 Azure OpenAI 服务推出 Select AI
- 宣布推出基于 Oracle 自治数据库的 Select AI 和 OCI 生成式 AI 服务
- 如何帮助 AI 模型生成更好的自然语言查询
- 对话是自然语言查询中的下一代
- 利用企业数据、OCI 生成式 AI 和增强的安全性加速创新
- 什么是 Retrieval Augmented Generation (RAG)?
文档
LiveLabs 实验室
作者:Mark Hornick
Oracle机器学习和 AI 产品管理高级总监
2024年9月11日




