阿里云搜索专家实操:如何高效构建企业级 AI 搜索?

作者:来自阿里云搜索产品专家牛俊

本文由阿里云搜索产品专家牛俊在【AI 搜索 TechDay】上的分享【阿里云 AI 搜索 Demo 展示和动手实践】整理而成。

阿里云 AI 搜索的产品能力与业务价值

阿里云 AI 搜索的方案,基于阿里云 Elasticsearch Inference API,可以结合阿里云自研的 AI 模型服务,灵活的搭建语义搜索或者是 RAG 链路。AI 搜索可以基于 ES 语法进行灵活的编排,易用性更高,后面的实操环节大家可以具体体验下。

直接使用大模型去进行语义搜索,不仅有成本的问题,还会有准确性的问题。阿里云 AI 搜索 RAG 全链路,不论是对文本的解析处理,还是切分、向量化,以及混合检索,其实都是为了提升搜索的准确率。通过提升搜索的准确率,拿到最精准的结果,然后再组成 prompt 给到大模型,来提升准确性。这里我们如果仅使用大模型加向量检索,仅仅能达到 40% 的准确率,通过全链路的优化能够提升到 90% 乃至 95%,这就是检索增强优化带来的价值。

在下面的图示中,是搭建 RAG 全链路的流程,主要分为 2 个链路:

第一步,是数据写入流程。我们可以对多样化的数据进行解析理解,抽取出文档的结构,然后采用文档切分模型对内容进行语义的切分,生成语义切片树,然后基于自研的向量化模型,将切分后的文档片段生成稠密向量以及稀疏向量。然后在 ES 引擎中构建对应的索引。

第二步,就是在线查询的流程。用户输入问题后,首先使用查询分析模型来理解用户的意图,同时对输入的内容进行语义的扩充、做省略补充等操作。然后调用同样的向量化模型生成稠密和稀疏向量。在 ES 引擎中进行 3 路混合检索,以及 RRF 融合排序,最后召回最相关的 TOP N 内容片段。此时,可以引入重排模型,做进一步的排序来提升 TOP 结果的相关性。结合用户的问题以及检索的结果,组成 prompt 给到大模型进行答案的生成。

最后,完成 RAG 全链路后,可以使用测评服务进行效果的评估。

RAG 在各行业领域的应用实践

目前在各个场景中都有 RAG 的应用,这里罗列的内容更偏向 to C 的场景,比如内容问答的场景,在一些技术社区已经有了问答式搜索的实践。还有企业知识库问答场景,这个也是目前应用最广泛的一个场景,可以基于企业内部知识库进行智能问答。

电商的导购场景,应用于商品售前环节,传统方式需要维护大量的问答对,来匹配到用户的问题。同时很难理解用户问题的意图,难以给到比较理想的答案。使用传统方式,其实很容易发现在跟机器人交流,回复也非常的生硬。基于大模型在电商导购这个场景,可以赋予更人性化的角色来进行回复。

最后教育场景,在 K12 的教育,或其他成人的教育场景中,往往会有非常多的知识,使用 RAG 方案,可以很快给出题目的答案和解题过程。

除了 C 端的场景之外,还会有一些智能运维、开发的场景都可以应用。这也是我们后续需要去持续探索的方向,可以在更多的场景中有更好的实践。

电商导购与多模态场景应用 Demo

接下来为大家演示下电商导购的 demo,这里提前录入了一些商品的数据,作为基础的知识库。

我们咨询第一个问题,需要购买一个女士领带,很快,这里给出了一款领带的推荐。接着继续追问,领带支持机洗嘛?这里根据知识库的数据依然给出了答复。紧接着,需要让系统帮忙推荐一款大衣。这里给出了 2 款大衣的推荐,告知了身高体重后,系统回复了适合用户穿的码数。在这个 demo 中有商品选型的咨询,还有一些追问,模型都可以根据实际的数据给出有效的答案,解决用户的问题,同时整体体验过程也比较流畅。

接下来我们看几个多模态的场景,这也是我们后续即将发布的能力。这里是一个图书多模态问答场景,采用的数据是图书的封面图片。问题是:适合儿童的书?在这里可以看到,首先给出的是一段文本的回答内容,推荐了对应的儿童书籍。同时,还有对应的参考链接。最下面显示了相关的参考图片。在这个 case 中,由于底层数据是纯图片的,因此需要先对图片内容进行解析理解,抽取出对应的文本描述,生成索引。当用户提出问题时,会在已经解析好的文本内容中进行检索,然后给出对应的答案。

接下来我们看几个多模态的场景,这也是我们后续即将发布的能力。这里是一个图书多模态问答场景,采用的数据是图书的封面图片。问题是:适合儿童的书?在这里可以看到,首先给出的是一段文本的回答内容,推荐了对应的儿童书籍。同时,还有对应的参考链接。最下面显示了相关的参考图片。在这个 case 中,由于底层数据是纯图片的,因此需要先对图片内容进行解析理解,抽取出对应的文本描述,生成索引。当用户提出问题时,会在已经解析好的文本内容中进行检索,然后给出对应的答案。

接下来,这是一个电商多模态的问答场景,数据采用商品的标题和图片信息。这里会对商品的图片进行识别解析,结合标题信息,生成索引。因此,让系统推荐一个红色的高跟鞋时,这里可以给出几款不同品牌的商品推荐,以及理由,下面还可以给出对应的商品图片信息。在我们实际电商导购的场景中,可以把商品信息、图片信息,以及更多的信息都容纳进来,可以更进一步的理解,给出最终的答案,整体的丰富度也会更好一些。

基于阿里云 Elasticsearch 的 AI 搜索演示

最后,为大家演示下 AI 语义搜索场景的 demo。

我们这里主要使用 3 个模型服务,来进行 AI 语义搜索的搭建:

  1. 开通阿里云 ES 8.13 版本的实例,以及搜索开发工作台服务,搜索开发工作台主要提供组件化的模型服务,可以跟 ES 配合搭建 AI 语义搜索方案。
  2. 完成阿里云 ES 和搜索开发工作台的基础配置,主要是白名单和访问 API-KEY 相关的配置。
  3. 使用 inference api 在阿里云 ES 中创建搜索开发工作台的模型服务。
  4. 在阿里云 ES 中配置语义搜索的 pipeline。

数据的写入及检索验证。

首先为大家展示下阿里云搜索开发工作台,进入控制台的服务广场,这里提供了 9 类模型服务。

我们进入体验中心,来做一些模型服务的体验。

目前新用户开通服务后,前 100 次调用是免费的,大家可以结合自己的业务做一些尝试。

首先看下文档解析服务。使用这里的示例数据,原始的文档中包括较多的表格数据,这里可以将 pdf 中的表格、图片、文本信息都解析提取出来。

接下来看下切片服务,这里指定切片最大长度为 300,模型会在保证语义完整性的同时,按照最大 300 的长度来切分。可以看到右侧的结果,每一个切片的语义都相对比较完整,这也是为了在我们后续检索时,达到更好的效果。切片完的信息,会返回一个树状的结构,方便在后续召回时进行上下文的补全,给大模型更加完整准确的信息,也有助于提升最终大模型回答的效果。

接下来先看下向量服务,这里给出的是一组 1536 维的稠密向量编码。

稀疏向量模型,稀疏向量区别于 BM25 的模型,我们使用机器学习训练的稀疏向量模型。不仅可以统计到相关的词频信息,也可以理解上下文的语义,给出对应的权重。使用稀疏向量的方式进行检索,可以达到超越全文检索的效果,全文检索仅仅是关键词的匹配。

更多阿里云 Elasticsearch AI 场景语义搜索的具体实操,可参考

https://help.aliyun.com/zh/es/user-guide/alibaba-cloud-es-ai-scene-semantic-search

阿里云搜索开发工作台 面向企业及开发者提供先进的 AI 搜索开发平台,内置实践打磨的多模态数据解析、文档切分、文本向量、查询分析、大模型文本生成、效果测评等丰富的组件化服务以及开发模版,同时,可选多种引擎能力,用户可灵活调用,实现智能搜索、检索增强生成(RAG)、多模态搜索等搜索相关场景的搭建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/403922.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java巅峰之路---进阶篇---面向对象(一)

static关键字 介绍 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 其中,被static修饰的成员变量,叫做静态变量;被static修饰的成员方法,叫做静态方法。 静态变量 调用…

牛客面经学习笔记(四)

这种拨码开关在PLC里面很是常用: 这种弧型线就很漂亮: 这个白色按键很漂亮: 快恢复保险丝: 继电器电路: 这里的续流二极管很重要,因为继电器是感性元件: 【【必考】5招搞清楚!单点接…

【轻松拿捏】Java中ArrayList 和 LinkedList 的区别是什么?

ArrayList 和 LinkedList 的区别是什么? 1. ArrayList 2. LinkedList 3.总结 🎈边走、边悟🎈迟早会好 ArrayList 和 LinkedList 都是 Java 中常用的 List 接口的实现类,但它们在内部结构和操作性能上有所不同。 1. ArrayLis…

SpringBoot+Vue实现大文件上传(分片上传)

SpringBootVue实现大文件上传(分片上传) 1 环境 SpringBoot 3.2.1,Vue 2,ElementUI 2 问题 前几篇文章,可以用于较小文件的上传,对于较大文件来说,为了提高上传效率和可靠性,可以采…

【1-4】设计模式概述

目录 一.设计模式产生背景 二.软件设计模式的概念 三.学习设计模式的必要性 四.设计模式分类 一.设计模式产生背景 二.软件设计模式的概念 软件设计模式,又称设计模式,是一套被反复使用、多人知晓的、经过分类编目的、代码设计经验的总结。它描述了…

Python爬虫使用实例

IDE:大部分是在PyCharm上面写的 解释器装的多 → 环境错乱 → error:没有配置,no model 爬虫可以做什么? 下载数据【文本/二进制数据(视频、音频、图片)】、自动化脚本【自动抢票、答题、采数据、评论、点…

深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)

目录 🍔 前言 🍔 图像基础知识 1. 像素和通道的理解 2. 小节 🍔 卷积层 1. 卷积计算 2. Padding 3. Stride 4. 多通道卷积计算 5. 多卷积核卷积计算 6. 特征图大小 7. PyTorch 卷积层 API 7. 小节 🍔 池化层 1. 池…

代码随想录算法训练营第十六天(二叉树 四)

力扣题部分: 513.找树左下角的值 题目链接:. - 力扣(LeetCode) 题面: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 思路(层序遍历): 应该是这道题最简单的方法了&#xff0…

C++ 设计模式——建造者模式

建造者模式 建造者模式组成部分建造者模式使用步骤1. 定义产品类2. 创建具体产品类3. 创建建造者接口4. 实现具体建造者5. 创建指挥者类6. 客户端代码 建造者模式 UML 图建造者模式 UML 图解析建造者模式的优缺点建造者模式的适用场景完整代码 建造者模式 建造者模式&#xff…

C语言—指针(1)

目录 一、内存和地址 (1.1)内存 (1.2)编址的理解 二、指针变量和地址 (2.1)取地址操作符(&) (2.2)指针变量和解引用操作符 (2.2.1&…

XSS复现

目录 XSS简单介绍 一、反射型 1、漏洞逻辑: 为什么有些标签可以触发,有些标签不能触发 可以触发的标签 不能触发的标签 为什么某些标签能触发而某些不能 二、DOM型 1、Ma Spaghet! 要求: 分析: 结果: 2、J…

Unity项目优化记录

背景:测试反馈项目组游戏存在内存泄露,来找到中台这边协调排查。好家伙,跑了两次看了内存快照,再看资源组织和管理方式,存在的问题确实比较多。 1、修复内存泄露:结算界面由于资源引用丢失导致整个面板不会…

44.【C语言】指针(重难点)(G)

目录 19.字符指针变量 *定义 *简单说明 *如果是字符串 *像数组一样指定访问常量字符串的字符 *练习 20.数组指针变量 *定义 *格式 *例子 问题1 问题2 *利用指针打印 21.二维数组传参的本质 *回顾 往期推荐 19.字符指针变量 *定义 指向字符的指针变量,用于存储字符…

使用Python实现B站自动答题机器人

文章目录 1. 写在前面2. 接口分析3. 点选验证分析4. Python程序实现 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…

什么是OpenTiny?

OpenTiny 是一套企业级的 Web 前端开发解决方案,提供跨端、跨框架的 UI 组件库和低代码引擎,帮助开发者高效构建 Web 应用 。企业运用开发中,可以利用 OpenTiny 的以下核心组件和优势: TinyVue 组件库:一个丰富的组件库…

C/C++实现蓝屏2.0

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 前…

【机器学习-监督学习】逻辑斯谛回归

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

使用Python制作贪吃蛇小游戏

引言 贪吃蛇游戏是一款经典的电子游戏,玩家通过控制一条不断增长的蛇在格子内移动,并吃掉随机出现的食物来获得分数。随着分数的增加,蛇的身体也会越来越长,游戏的难度也随之提升。在本文中,我们将详细介绍如何使用Py…

基于django的双选宠物托管服务平台/python宠物托管系统

摘 要 伴随着社会以及科学技术的发展,互联网已经渗透在人们的身边,网络慢慢的变成了人们的生活必不可少的一部分,紧接着网络飞速的发展,系统管理这一名词已不陌生,越来越多的双选宠物托管服务等机构都会定制一款属于…

使用 AWS CLI 自动在 Amazon EC2 实例上部署 Apache Web 服务器

“使用 AWS CLI 节省时间” 欢迎来到雲闪世界。今天,我们将利用 AWS CLI 的实际用途来提高效率并自动执行在 Amazon EC2 实例上部署 Apache Web 服务器的步骤。完成“使用 AWS CLI 节省时间”任务后,最后有一个非常有趣的秘密步骤,敬请…