Azure LLM 在 运行程序 认知服务中经常使用矢量搜查构建

作者 | Simon Bisson

筹划 | Ethan

Microsoft 的认知搜查 API 如今提供矢量搜查即服务,可与 Azure OpenAI 等中的大型言语模型一同经常使用。

Semantic Kernel、TypeChat 和 LangChain 等工具使得围绕 Azure OpenAI 等生成式 AI 技术构建运行程序成为或许。这是由于它们准许对底层大言语模型 (LLM) 施加解放,将其用作构建和运转人造言语界面的工具。

从实质上讲,LLM 是一种用于导航语义空间的工具,其中深度神经网络可以预测从初始揭示开局的标志链中的下一个音节。假设揭示是放开式的,LLM 或许会超出其输入范畴,发生看似正当但实践上齐全是无稽之谈的内容。

正如大家偏差于信赖搜查引擎的输入一样,咱们也偏差于信赖LLM的输入,由于咱们将它们视为相熟技术的另一个方面。然而,经常使用来自维基百科、Stack Overflow 和 Reddit 等网站的可信数据来训练大型言语模型并不能传播对内容的了解;它只是赋予生成文本的才干,该文本遵照与这些来源中的文本相反的形式。有时输入或许是正确的,但有时却是失误的。

咱们如何防止大型言语模型的失误和有意义的输入,并确保咱们的用户取得准确且正当的查问答案?

1、限度用语义记忆解放大模型

咱们须要做的是限度 LLM,确保它只从更小的数据集生成文本。这就是 Microsoft 基于 LLM 的新开发堆栈的用武之地。它提供了必要的工具来控制模型并防止其发生失误。

你可以经过经常使用 TypeChat 之类的工具来强迫经常使用特定的输入格局,或许经常使用 Semantic Kernel 之类的编排管道来处置其余可信消息源,从而有效地将模型“root”在已知的语义空间中,从而解放 LLM。在这里,LLM 可以做它长于的事件,总结构建的揭示并依据该揭示生成文本,而不会超限(或至少显着增加出现超限的或许性)。

微软所说的“语义记忆”是最后一种方法的基础。语义记忆经常使用向量搜查来提供揭示,可用于提供 LLM 的理想输入。矢量数据库治理初始揭示的高低文,矢量搜查查找与初始用户查问婚配的存储数据,LLM 依据该数据生成文本。Bing Chat 中看到这种方法的实践运行,它经常使用 Bing 的本机矢量搜查工具来构建从其搜查数据库中失掉的答案。

语义记忆使矢量数据库和矢量搜查成为提供基于LLM的运行程序的手腕。你可以经常使用数量始终参与的开源矢量数据库中的任何一个,或将矢量索引参与到相熟的 SQL 和 NoSQL 数据库中。一项看起来特意有用的新产品裁减了 Azure 认知搜查,为数据参与了向量索引以及用于查问该索引的新 API。

2、将矢量索引参与到 Azure 认知搜查

Azure 认知搜查建设在 Microsoft 自己的搜查工具基础上,提供了相熟的 Lucene 查问和自己的人造言语查问工具的组合。Azure 认知搜查是一个软件即服务平台,托管私有数据并经常使用认知服务 API 来访问内容。Microsoft 最近参与了对构建和经常使用向量索引的支持,准许你经常使用相似性搜查对数据中的关系结果启动排名,并在基于 AI 的运行程序中经常使用它们。这使得 Azure 认知搜查成为经常使用 Semantic Kernel 和 Azure OpenAI 构建的 Azure 托管 LLM 运行程序的理想工具,并带有用于C# 和 Python认知搜查的语义内核插件。

与一切 Azure 服务一样,Azure 认知搜查是一项托管服务,可与其余 Azure 服务配合经常使用,准许你在各种 Azure 存储服务中启动索引和搜查,托管文本和图像以及音频和视频。数据存储在多个区域,提供高可用性并增加提前和照应期间。作为一个额外的好处,关于企业运行程序,你可以经常使用Microsoft Entra ID(Azure Active Directory 的新称号)来控制对私有数据的访问。

3、为内容生成和存储嵌入向量

须要留意的一点是,Azure 认知搜查是一项“自带嵌入向量”服务。认知搜查不会为你生成所需的矢量嵌入,因此你必定经常使用 Azure OpenAI 或 OpenAI embedding API 为内容创立嵌入。这或许须要对大文件启动分块,以便你坚持在服务的令牌限度内。预备在必要时为向量索引数据创立新表。

Azure 认知搜查中的矢量搜查经常使用最近邻模型前往选定数量的与原始查问相似的文档。这在对向量索引的调用中经常使用原始查问的向量嵌入,从数据库前往相似的向量以及索引内容,预备在 LLM 揭示中经常使用。

Microsoft 经常使用这样的矢量存储作为 Azure 机器学习的检索增强生成 (RAG) 设计形式的一局部,并与其揭示流工具配合经常使用。RAG 经常使用认知搜查中的向量索引来构建导致 LLM 揭示基础的高低文。这为你提供了一种构建和经常使用向量索引的低代码方法,例如设置查问前往的相似文档的数量。

4、Azure 认知搜查中的矢量搜查入门

经常使用 Azure 认知搜查启动矢量查问十分便捷。首先在同一区域中为 Azure OpenAI 和认知搜查创立资源。这将准许你以最小的提前加载带有嵌入的搜查索引。你须要调用 Azure OpenAI API 和认知搜查 API 来加载索引,因此最好经过参与治理重试的代码来确保代码可以照应服务中任何或许的速率限度为你。当你经常使用服务 API 时,你应该经常使用异步伐用来生成嵌入和加载索引。

向量作为向量字段存储在搜查索引中,其中向量是具备维度的浮点数。这些向量经过火层可导航小环球临近图启动映射,该图将向量分类到相似向量的邻域中,从而放慢了搜查向量索引的实践环节。

为矢量搜查定义索引架构后,你可以将数据加载到认知搜查索引中。请务必留意,数据或许有多个与之关联的向量。例如,假设你经常使用认知搜查来托管公司文档,你或许有针对关键文档元数据术语以及文档内容的独自向量。数据集必定存储为JSON 文档,这应该可以简化经常使用结果来组合揭示高低文的环节。索引不须要蕴含源文档,由于它支持经常使用最经常出现的 Azure 存储选项。

运转查问须要首先经常使用查问注释调用你选用的嵌入模型。这将前往一个多维向量,你可以经常使用它来搜查你选用的索引。调用矢量搜查API时,请注明指标矢量索引、你须要的婚配项数量以及索引中的关系文本字段。为查问选用适当的相似性度量十分有用,其中最罕用的是余弦度量。

5、逾越便捷的文本向量

Azure 认知搜查的矢量性能不只仅是婚配文本。认知搜查能够与多言语嵌入配合经常使用,以支持跨多种言语的文档搜查。你也可以经常使用更复杂的 API。例如,你可以在混合搜查中混合经常使用 Bing 语义搜查工具,以提供更准确的结果,从而提高 LLM 支持的运行程序的输入品质。

微软正在极速将其用于构建自己的基于 GPT-4 的 Bing 搜查引擎及其各种 Copilot 的工具和技术产品化。Semantic Kernel 和 Azure AI Studio 的揭示流等编排引擎是 Microsoft 经常使用大型言语模型的方法的外围。如今这些基础曾经奠定,咱们看到该公司推出了更多必要的支持技术。矢量搜查和矢量索引是提供准确照应的关键。经过构建相熟的工具来提供这些服务,微软将协助咱们将老本和学习曲线降至最低。

您可能还会对下面的文章感兴趣: