当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 构建 LLM 应用程序:利用 Azure 认知服务的矢量搜索功能

构建 LLM 应用程序:利用 Azure 认知服务的矢量搜索功能

来源:51CTO.COM 2023-08-24 21:03:40 0浏览 收藏

下载万磁搜索绿色版

今天golang学习网给大家带来了《构建 LLM 应用程序:利用 Azure 认知服务的矢量搜索功能》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

作者 | Simon Bisson

策划 | Ethan

Microsoft 的认知搜索 API 现在提供矢量搜索即服务,可与 Azure OpenAI 等中的大型语言模型一起使用。

语义核心、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 提示准备使用

微软使用这种矢量存储作为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使用大型语言模型的核心方法。现在这些基础已经奠定,我们看到该公司推出了更多必要的支持技术。矢量搜索和矢量索引是提供准确响应的关键。通过构建熟悉的工具来提供这些服务,微软将帮助我们将成本和学习曲线降至最低

以上就是《构建 LLM 应用程序:利用 Azure 认知服务的矢量搜索功能》的详细内容,更多关于LLM,Azure,TypeChat的资料请关注golang学习网公众号!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
微软将 AI 功能融入 Windows 11 内置应用,为照片、截图、画图等带来全新体验微软将 AI 功能融入 Windows 11 内置应用,为照片、截图、画图等带来全新体验
上一篇
微软将 AI 功能融入 Windows 11 内置应用,为照片、截图、画图等带来全新体验
微软计划在Win11内置应用中引入AI功能
下一篇
微软计划在Win11内置应用中引入AI功能
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据
    ChatExcel酷表
    ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
    3193次使用
  • Any绘本:开源免费AI绘本创作工具深度解析
    Any绘本
    探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
    3406次使用
  • 可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图
    可赞AI
    可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
    3436次使用
  • 星月写作:AI网文创作神器,助力爆款小说速成
    星月写作
    星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
    4543次使用
  • MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画
    MagicLight
    MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
    3814次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码