重磅再推 | 基于OpenSearch向量检索版+大模型,搭建对话式搜索

news2024/10/7 2:27:09

面向企业开发者的PaaS方案

一周前,阿里云OpenSearch发布的LLM智能问答版,面向行业搜索场景,提供企业专属问答搜索服务。作为一站式免运维的SaaS服务,智能问答版基于内置的LLM大模型提供问答能力,为企业快速搭建问答搜索系统,详见链接:https://developer.aliyun.com/article/1239380

除了SaaS的解决方案外,如今阿里云OpenSearch再推面向企业开发者的PaaS方案:基于OpenSearch向量检索版,为企业开发者提供性能表现优秀、性价比优异的向量检索服务,并提供与大模型结合脚本工具,用户可在使用能力可靠的向量检索服务的同时,自由选择文档切片方案、向量化模型、大语言模型。

大语言模型时代,对话式搜索开启新纪元

随着2022年末发布大语言模型应用,短短两个月时间月活过亿,惊人的增长速度刷新了AI应用的记录,也把整个世界带到了大模型时代。

新的技术浪潮带来业务场景的革新,Google、Bing等大企业的跟进,使得对话式搜索成为企业争相探索的新领域,如何将大语言模型强大的逻辑推理、对话能力,与业务自身垂直领域数据相结合,打造出专属企业的对话式搜索服务,成为待解决的首要问题。

为什么不能直接使用大语言模型?

大语言模型表现出的“什么都懂,什么都能聊”,主要依赖于底座大语言模型(LLM)中压缩的世界知识,它能够回答比较普世的问题,但如果直接使用大语言模型咨询垂直专业领域问题,因为世界知识中并不包含企业专属的数据,得到的结果经常是完全错误的、不相关的。

下图示例中,提到的havenask是阿里巴巴自研的开源大规模搜索引擎(https://github.com/alibaba/havenask),作为OpenSearch的底层引擎于2022年11月对外开源,但大语言模型并未获知此信息,返回结果不理想。

开源信息尚且如此,可见企业想基于自身数据构建对话式搜索,是无法直接使用大语言模型的,需寻求结合方案。

在这里插入图片描述

为什么用向量检索+大语言模型搭建对话式搜索?

对话式搜索的应用场景

对话式搜索可被应用于电商、内容、教育、企业内部等多行业领域,根据客户特征与问题需求,精准获得问答结果,高效获取信息。

在这里插入图片描述

那么企业该如何基于自身数据,构建垂直领域对话式搜索服务呢?

当前大多数企业均采用“文档切片+向量检索+大模型生成答案”的方式,构建垂直领域对话式搜索。

将企业数据和对话交互信息,先进行向量特征提取,然后存入向量检索引擎构建索引并进行相似度召回,将召回TOP结果传入LLM大语言模型,对信息进行对话式结果整合,最终返回给客户。这种方案在成本、效果、业务使用灵活度等方便均具备优势,成为企业的优选方案。

什么是向量?

将物理世界产生的非结构化数据(如图片、音视频、对话信息),转化为结构化的多维向量,用这些向量标识实体和实体间的关系。再计算向量之间距离,通常情况下,距离越近、相似度越高,召回相似度最高的TOP结果,完成检索。向量检索其实离我们很近:以图搜图、同款比价、个性化搜索、语义理解……

在这里插入图片描述

为什么向量能用于对话式搜索?

向量检索的其中一个典型应用场景就是「自然语义理解、语义理解」,而对话式搜索的核心,也在于对问题和答案的语义理解。

下图举例,当用户咨询“浙一医院”的相关问题时,由于数据库中不具备“浙一”关键词,所以传统分词搜索无法召回。此时引入向量分析,对人们历史语言与点击关联进行分析,建立语义相关性模型,将数据特征用高维向量表达,通过比对向量距离,发现“浙一医院”和“浙江大学医学院附属第一医院”相关性很高,可以被检索出来。

由此可见,向量可以在对话式搜索方案中,承担语义分析、返回相关数据结果的重要作用

在这里插入图片描述

OpenSearch向量检索版+大模型方案简介

OpenSearch向量检索版是阿里巴巴自主研发的大规模分布式搜索引擎,其核心能力广泛应用于阿里巴巴和蚂蚁集团内众多业务。OpenSearch向量检索版专注向量检索场景,数据毫秒级查询,数据秒级更新、实时写入,支持标签+向量混合检索等能力,满足同平台下不同企业、同企业内不同业务的问答场景向量结果返回。

OpenSearch向量检索版+大模型方案整体分为2个部分,首先将业务数据进行向量化预处理,其次在线搜索服务进行检索及内容生成。

(1)业务数据预处理

在这里插入图片描述

为了能够按照用户需求搜索到目标商品,需要对业务数据进行预处理,构建向量索引实现搜索功能

步骤1:将文本形式的业务数据导入文本向量化模型中,得到向量形式的业务数据

步骤2:将向量形式的业务数据导入到OpenSearch向量检索版中,构建向量索引

(2)搜索问答在线服务

在这里插入图片描述

实现搜索功能后,结合Top N搜索结果,基于LLM问答模型返回搜索问答结果

步骤1:将终端用户输入的query输入文本向量化模型,得到向量形式的用户query

步骤2:将向量形式的用户query输入OpenSearch向量检索版

步骤3:使用OpenSearch向量检索版内置的向量检索引擎得到业务数据中的Top N搜索结果

步骤4:将Top N搜索结果整合作为prompt,输入LLM问答模型

步骤5:将问答模型生成的问答结果和向量检索得到的搜索结果返回给终端用户

(3)效果展示

下图为将OpenSearch产品文档作为业务数据,使用本方案构建的对话式搜索效果展示。

在这里插入图片描述

OpenSearch向量检索版+大模型方案,有哪些优势?

(1)高性能:自研的高性能向量检索引擎

  • 大模型场景下,向量维度普遍较高,对性能成本要求更高
  • OpenSearch向量检索版支持千亿数据毫秒级响应,实时数据更新秒级可见
  • OpenSearch向量检索版的检索性能优于开源向量搜索引擎数倍,在高QPS场景下召回率明显优于开源向量搜索引擎

OpenSearch向量检索版VS开源引擎性能:中数据场景

在这里插入图片描述

OpenSearch向量检索版VS开源引擎性能:大数据场景

在这里插入图片描述

上述数据来源阿里巴巴智能引擎事业部团队,2022年11月

(2)低成本:采用多种方式优化存储成本,减少资源消耗

  • 数据压缩:可将原始数据转化为float形式存储,并再采用zstd等高效算法进行数据压缩,实现存储成本优化
  • 精细索引结构设计:针对不容类型索引,可采用不同优化策略,降低索引大小
  • 非全内存加载:可以使用mmap非lock的形式加载索引,有效降低内存开销
  • 引擎优势:OpenSearch向量检索版引擎本身具备构建索引大小、GPU资源耗用的优势,同等数据条件下,OpenSearch向量检索版内存占用仅为开源向量检索引擎的50% 左右

(3)具备丰富的向量检索能力

  • 支持HNSW、QC、Linear等多种向量检索算法
  • 支持标签、文本倒排索引、向量索引的混合检索

在这里插入图片描述

  • 支持按表达式过滤,边过滤边检索

在这里插入图片描述

  • Query中支持设置,相似度阈值、扫描返回的节点数等参数,配置灵活

(4)海量数据支持,应对业务扩张

  • 支持大规模向量快速导入与索引构建,单节点 348维 1亿向量,通过配置优化,可在3.5小时内完成全量构建
  • 支持数据动态更新、即增即查、自动索引重建
  • 支持数据水平扩展

(5)可灵活、快速搭建企业专属对话式搜索

  • 稳定可靠:使用客户业务数据而非公开数据进行内容生成,输出结果更加稳定、可靠
  • 交互升级:既能为客户返回对话式检索结果,也可以作为传统检索,返回TOP结果,更灵活应对各种业务场景
  • 流式输出:向量检索之后的LLM交互通常耗时较长,OpenSearch支持流式输出,缓解等待时间过长的体验问题

产品配置流程

  1. 第一次开通阿里云账号并登录控制台,您需先创建AK和SK
  2. 产品支持MaxCompute数据源、API数据源,您需提前准备向量数据(后续产品将集成文本embedding服务,可关注产品更新公告)
  3. 购买OpenSearch向量检索版实例,系统自动部署与购买规格一致的空集群,您需为该集群「配置数据源、配置索引结构、索引重建」,完成向量数据导入与索引构建之后,才可正常搜索
  4. 在控制台查询测试页面或通过API/SDK,进行向量搜索效果测试
  5. 下载OpenSearch大模型结合工具,并配置大模型相关信息(用户可通过简单调整结合工具代码,自行选择第三方大模型结合使用)
  6. 启动对话式搜索服务

更多使用说明参考: https://help.aliyun.com/document_detail/2341640.html

特别提醒:本解决方案中的“开源向量模型”、“大模型”等来自第三方(合称“第三方模型”)。阿里云无法保证第三方模型合规、准确,也不对第三方模型本身、及您使用第三方模型的行为和结果等承担任何责任。请您在访问和使用前慎重考虑。此外我们也提醒您,第三方模型附有“开源许可证”、“License”等协议,您应当仔细阅读并严格遵守这些协议的约定。


欢迎有高质量搜索效果需求的技术同学测试体验~

专家咨询问卷:https://page.aliyun.com/form/act1204394004/index.htm

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统安装mysql8完整无脑步骤

1:卸载原有REPO源 查询已经存在的mysql及相关依赖包 rpm -qa | grep mysql此时你会看到一堆列表,使用 yum 命令依次卸载 yum remove mysql-xxx-xxx-xxx接下来删除 mysql 的残留目录及文件,先用下面的命令找出所有mysql相关的文件夹 find …

报表工具Stimulsoft Reports用户手册:如何激活控件

Stimulsoft Reports.Net是一个基于.NET框架的报表生成器,能够帮助你创建结构、功能丰富的报表。StimulReport.Net 的报表设计器不仅界面友好,而且使用便捷,能够让你轻松创建所有报表;该报表设计器在报表设计过程中以及报表运行的过…

WhoNet报不是有效dbf解决

由于现在Web已经部署到Linux上了,以前在Windows上导出dbf通过oledb执行sql生成dbf的路径已经不可用了,加上需要安装dataaccess驱动也麻烦,为此换了fastdbf生成dbf文件。 首先还算顺利,开始就碰到中文乱码问题,下载源码…

Qt学习之旅 - QTableWidget控件其他控件设置图标

文章目录 设置列数设置水平表头设置行数设置正文设置QTableWidget表格不可被选中、不可编辑设置表格中某个单元格不可被选中 防止越界int转QString其他控件Scroll Area按键 添加UI设置图标主窗口图标状态栏上显示图标使用QtCreator //QTableWidget控件 //设置列数 ui->table…

人工智能和传统行业的思考

人工智能和传统行业的思考 转载:原文链接 — https://xiaowenz.com/blog/2023/04/decouple-your-time/ 传统之传统 传统产业之所以被称为传统,除了大部分并非依靠计算机技术驱动之外,同时也因为这些产业往往更贴近社会的基础架构或生产要素…

常见中间件

中间件简介 中间件运行在系统软件和应用软件之间,以便于各部件之间的沟通。他充当的功能是:将应用程序运行环境与操作系统隔离,从而让开发者不必为更多系统问题忧虑,直接关注该应用程序在解决问题上的能力。 提供解析网站代码的一…

STM32ARM体系结构(嵌入式学习)

STM32&ARM体系结构 1. STM321.1 简介1.2 STM32的优势1.3 命名规范 2. ARM体系结构2.1 ARM体系结构面试题:谈谈你对ARM的认识?1.ARM公司2.ARM处理器3.ARM技术 目前主流处理器架构?精简指令集RISC和复杂指令集CISC的区别?精简指…

第二类曲线积分

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第二类曲线积分一、向量场是什么?二、向量场可视化三、计算1. 计算方式一2. 计算方式二 第二类曲线积分 因为之前学习第二类曲线的时候,不是…

CarEye 视频平台解决方案

前言 随着4G,5G技术和互联网技术的普及,流媒体应用越来越广发应用到生活中。本文档主要介绍CarEye视频服务器的主要软件硬件构成,功能实现。 功能介绍 CarEye 媒体服务器主要实现以下基本功能: 遵照GB28181/GT1078协议实设备到…

SQL Server Roles 角色權限

SQL Server 提供服务器级角色以帮助你管理服务器上的权限。 这些角色是可组合其他主体的安全主体。 服务器级角色的权限作用域为服务器范围。 (“角色”类似于 Windows 操作系统中的“组”。) 下表显示了服务器级的固定角色及其权限。 服务器级的固定角…

NLP 学习笔记十-simple RNN+attention(注意力机制)

NLP 学习笔记十-simple RNNattention(注意力机制) 感兴趣的伙伴,看这个笔记,最好从头开始看哈,而且我的笔记,其实不面向零基础,最好有过一些实践经历的来看最好。 紧接上一回,我们谈…

为什么指针被誉为 C 语言灵魂?

是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解。 不了解的对指针的理解就停留在“指针就是变量的地址”这句话,…

【数据结构与算法篇】手撕排序算法之插入排序与希尔排序

​👻内容专栏:《数据结构与算法篇》 🐨本文概括: 讲述排序的概念、直接插入排序、希尔排序、插入排序和希尔排序的区别。 🐼本文作者:花 碟 🐸发布时间:2023.6.13 一、排序的概念及其…

CSS差缺补漏之选择器

最近在复盘CSS基础知识,发现很多CSS选择器里面还是大有学问,需要详细总结一番,以备差缺补漏~ 作为CSS基础的一大类别,选择器又分为多种类别,本篇内容默认读者已了解并掌握基础选择器【通配符选择器】、【元素选择器】…

docker命令(查看容器状态stats、容器的导入导出、docker容器的详细信息inspect、docker cp命令的使用)

目录 查看docker容器状态: docker镜像的导入导出 第一种导入导出(是docker本地的静态) 第二种导出导入 (这种导出是正在运行的容器里的文件系统变成一个归档文件(可以包含已经下载好的软件)) docker容器的详细信息…

Java Stream流详解

本文目录 学习目标中间操作Filter(过滤)Map(转换)Sorted(排序)Distinct(去重)Limit(限制)Skip(跳过)Peek(展示) 终止操作forEach(循环)Collect(收集)Count(计数)Reduce(聚合)AnyMatch(任意匹配)AllMatch(全部匹配)NoneMatch(无匹配) 使用Stream流的优缺点:优点&…

linux常用查看服务器内存的命令

1.free free 命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。 free 命令的基本格式如下: [rootlocalhost ~]# free [选项…

分布式重试服务平台 Easy-Retry

文章目录 [toc] 1.简介1.1[爱组搭官网](http://aizuda.com/)1.2介绍1.3 相关地址 2.架构2.1系统架构图2.2 客户端与服务端数据交互图 3.业内成熟重试组件对比4.快速开始4.1 服务端项目部署4.1.0 初始化脚本4.1.1 源码部署4.1.2 Docker部署 4.2 客户端集成配置4.2.1 添加依赖4.2…

中阳期货龙舟赛跟踪和监控系统

上篇文章说了中阳期货龙舟赛计时的编程,那么下面给大家分享一下使用OpenCV库跟踪和监控系统。 跟踪和监控系统:通过船上的GPS设备和网络技术实时跟踪纪录龙舟在赛道上的位置,其中可利用传感器获取龙舟的方向、速度和姿态等信息,以…

接口自动化测试,HttpRunner框架参数化进阶实战,你要的都有...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、获取返回包数据…