使用 Azure OpenAI 服务了解检索增强生成 (RAG)
使用 Azure OpenAI 的 RAG 支持开发人员使用受支持的 AI 聊天模型来引用特定信息源以使响应落地。 通过添加此信息,模型可以引用提供的特定数据及其预先训练的知识,从而提供更有效的响应。
Azure OpenAI 通过将预先训练的模型连接到自己的数据源来启用 RAG。 基于自己数据的 Azure OpenAI 可利用 Azure AI 搜索的搜索功能将相关数据块添加到提示。 在将数据放入 AI 搜索索引后,基于数据的 Azure OpenAI 会执行以下步骤:
- 接收用户提示。
- 确定提示的相关内容和意图。
- 使用该内容和意向查询搜索索引。
- 将搜索结果数据块与系统消息和用户提示一起插入到 Azure OpenAI 提示中。
- 将完整的提示发送到 Azure OpenAI。
- 将响应和数据引用(如果有)返回给用户。
默认情况下,基于数据的 Azure OpenAI 鼓励(但不要求)模型仅使用你的数据做出响应。 连接数据时,可以取消选择此设置,这可能会导致模型选择使用其预先训练的知识,而不是你的数据。
微调 vs.RAG
微调是一种用于通过使用其他训练数据的数据集训练现有基础模型(例如 gpt-35-turbo
)来创建自定义模型的技术。 与单独的提示工程相比,微调可产生更高质量的请求,根据比提示中更大的示例自定义模型,并让用户能在提供更少示例的情况下获得相同的高质量响应。 但微调的处理过程既昂贵又耗时,应仅在必要时采用。
基于你的数据的、使用 Azure OpenAI 的 RAG 还是使用无状态 API 连接到模型,这样就无需使用数据训练自定义模型,并简化了与 AI 模型的交互。 AI 搜索首先查找有用的信息来回答提示,并将此作为接地数据添加到提示,Azure OpenAI 则根据该信息产生响应。