【一文读懂】基于Havenask向量检索+大模型,构建可靠的智能问答服务

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
推荐全链路深度定制开发平台,高级版 1个月
简介: Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内的几乎整个阿里的搜索业务。本文针对性介绍了Havenask作为一款高性能的召回搜索引擎,应用在向量检索和LLM智能问答场景的解决方案和核心优势。通过Havenask向量检索+大模型可以构建可靠的垂直领域的智能问答方案,同时快速在业务场景中进行实践及应用。

一、 Havenask介绍

Havenask 是阿里巴巴广泛使用的自研大规模分布式检索系统,是过去十多年阿里在电商领域积累下来的核心竞争力产品,广泛应用在搜推广和大数据检索等典型场景。在2022年云栖大会-云计算加速开源创新论坛上完成开源首发,同时作为阿里云开放搜索OpenSearch底层搜索引擎,OpenSearch 自2014年商业化,目前已有千余家外部客户。


二、 向量检索

近年来,随着短视频、电商等领域的繁荣,产生了越来越多的非结构化数据,如图片、音频、视频、行为数据等。人们通常使用人工智能算法从中提取出特征向量,再通过对这些特征向量的计算和检索来实现对非结构化数据的分析与检索,以实现搜索推荐、人脸识别等功能场景。因此,需要存储这些特征向量,并进行高效率的检索。


传统的基于关键字的信息检索,只有命中全部或者部分关键字的数据才会被召回。与此不同的是,向量检索是一种近似搜索(Approximate Nearest Neighbor),从大量数据中找出最相似的n个结果。在业界主要有两种支持向量检索的方式:一是针对向量构建索引、提供召回服务的向量数据库。另一种是将向量检索融合进传统的搜索引擎或中,作为搜索引擎的一种索引。将传统倒排索引与向量检索配合使用,二者互补,提高召回结果的相关性。


Havenask作为传统的搜索引擎,深度集成阿里自研的高性能向量库Proxima,实现了对向量检索的支持。在Havenask中有多种倒排索引,如文本索引、数字索引、字符串索引等。而向量作为一种特殊的自定义索引,与其他普通的倒排索引一样地使用,从而可以将向量检索与文本检索结合起来,实现向量与文本的混合检索。


1、使用方式

  • 与文本倒排结合

目前,向量索引是Havenask的一种自定义索引,可以与其他倒排索引一起结合使用。业务上比较常见的使用方式,如在nlp场景,将向量检索的结果与文本检索的结果合并起来,丰富结果内容。文本检索保证查询的精确度,向量检索扩展语义提供更广泛的内容。二者相互补充,能够提升结果的准确性,降低无结果率。

vector:'0.1,0.2,0.3' OR ((title:'havenask' OR content:'havenask') AND type:'1')


解析后的查询语法树:

每个叶子节点做索引的查询,之后合并结果。


  • 带条件过滤检索

在大多数业务场景中,通常会带有特定的过滤条件,只召回满足条件的结果。Havenask的向量检索将条件过滤和向量相似度计算结合起来,精确判断过滤条件,进行高效的向量检索。从而使得结果更加准确,且不会缺少结果。

如:

Query: vector:'0.1,0.2,0.3'
Filter: count > 10


  • 带标签检索

在一些场景下,数据是按某些特定的标签进行分类。 如数据按用户维度组织,一次查询只查询某个指定用户下的数据。针对这种场景,Havenask提供了按标签查询的功能,在建索引时就将数据按标签分类,从物理上将数据按标签隔离,分别构建索引。查询时,只需要检索相应用户的索引数据。这样能够提高向量检索的性能和准确性。


2、索引构建方式

目前Havenask支持HNSW(图)、QC(量化距离)、Linear(暴力计算)三种索引构建方式。

  • HNSW

HNSW是经典的多层图算法,召回率高、性能好,适用于对召回结果要求高的场景。


  • QC

QC表示量化聚类,与Fassis的IVF类似,通过聚类的方式构建向量索引。且支持int8、int16量化,量化后能够显著地减少索引的体积,并且保证较高的召回率。适用于超大规模的向量场景,节省资源。


  • Linear

Linear为暴力计算,会遍历所有的索引数据,适用于数据规模非常小的场景。


三、 LLM问答

ChatGPT的出现带起了大模型热,大模型能够帮助从大量的信息里总结出关键的信息。很多企业或者个人都希望构建知识库,通过大模型进行归纳、总结后回答问题。

下图是典型的知识库构建流程:

整体流程可以分为两部分:数据处理和问答流程。


  • 数据处理

这部分主要功能是将已有的知识数据向量化,依赖文本向量化模型,将文本数据向量化,生成的向量数据存入Havenask中。处理步骤如下:

  1. 从原始文档中提取出所有的文本数据,按文本语义将文本切分成多个chunk
  2. 将这些chunk丢给文本模型,生成embedding数据
  3. 将embedding和chunk,以及chunk所属的原始文档的一些属性信息(如文件名、文章地址等)一起存入Havenask中


  • 问答流程

这部分主要处理与LLM的交互,依赖和数据处理一样的文本模型以及一个大模型。可以分为三个步骤:

  1. 将输入的问题丢给文本模型,生成embedding数据
  2. 将embedding数据以及一些其他的查询条件(如:查询的用户ID等)给到Havenask,查询获取最相关或相似的内容。这里的查询条件可以将向量与文本以及其他一些属性信息相结合,以便查询出更加精确的知识,降低无结果率。
  3. 让LLM根据获得的最相关的内容,以及问题推理出答案。查询LLM的prompt可能如下:
请根据以下已知信息,简洁和专业的来回答用户的问题。如果无法从中得到答案,请说不知道,不允许在答案中添加编造成分,答案请使用中文。
已知信息:
   内容1
   内容2
   ...
问题:
   问题内容


最后将结果展示给用户:


四、 性能

下面是Havenask向量检索的测试数据:

数据集

测试机型

算法

召回率

平均耗时

QPS

deep 10M

1000万 96维

ECS 16核64G

QC(int8量化)

99

14.94ms

1608

某内部数据集

1亿 384维

ECS 64核512G

QC(int8量化)

99

158ms

150


五、总结

Havenask通过深度集成proxima向量库,以Havenask中的一种索引类型的方式支持向量检索。支持向量与文本的混合查询、带标签的向量查询、以及支持按过滤条件的向量查询。支持HNSW、QC、Linear等3种向量索引构建方式。支持超大规模的向量数据,支持水平扩展,具有低延迟、高吞吐的特点。


关注我们:

Havenask 开源官网:https://havenask.net/

Havenask-Github 开源项目地址:https://github.com/alibaba/havenask

阿里云 OpenSearch 官网:https://www.aliyun.com/product/opensearch

钉钉扫码加入 Havenask 开源官方技术交流群:

1715594790746.png

相关实践学习
基于OpenSearch搭建高质量商品搜索服务
本场景主要介绍开放搜索(OpenSearch)打造独有的电商行业垂直解决方案,模板内置电商查询分析、排序表达式及行业算法能力,沉浸式体验更高性能和效果的智能搜索服务,助力企业在线业务智能增长。
目录
相关文章
|
7月前
|
人工智能 监控 算法
深入评测:向量检索服务在开发者视角下的表现
本文从开发者的角度出发,深入评测了向量检索服务的性能、易用性、可扩展性、便捷性等方面,并与其他向量检索工具进行了比较。同时,本文还探讨了向量检索服务在语义检索、知识库搭建、AI多模态搜索等场景的最佳实践,以及它给公司带来的成本和收益。
146 1
|
7月前
|
存储 自然语言处理 搜索推荐
ChatGPT 文本Embedding融合Qdrant向量数据库:构建智能问答系统的技术探索
向量数据库结合ChatGPT带来了什么 1. **语义搜索:** 使用向量数据库进行语义搜索,可以更准确地找到与查询相关的信息。ChatGPT可以理解用户的自然语言查询,而向量数据库可以根据语义相似性返回匹配的向量数据。 2. **智能推荐:** 结合ChatGPT的智能理解和向量数据库的相似性搜索,可以实现更智能的推荐系统。系统可以根据用户的历史行为和语境,向用户推荐相似的向量数据,如文章、产品或其他内容。 3. **自然语言处理与向量表示结合:** ChatGPT可以将自然语言转换为向量表示,这样就可以在向量数据库中进行更高效的查询。这种集成使得自然语言处理和向量数据库可以相互补充等
564 0
ChatGPT 文本Embedding融合Qdrant向量数据库:构建智能问答系统的技术探索
|
1月前
|
人工智能 自然语言处理 数据挖掘
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
|
2月前
|
存储 人工智能 自然语言处理
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
高级 RAG 技术:提升生成式 AI 系统输出质量与性能鲁棒性【预检索、检索、检索后、生成优化等】
|
2月前
|
自然语言处理 数据可视化 数据挖掘
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
本文探讨了自然语言处理中嵌入技术的应用,重点在于语义搜索及聚类方法。通过对比不同规模的开源与闭源模型,文章展示了如何利用聚类技术过滤无关结果,提高搜索精度。实验结果显示,较小模型如mxbai在某些任务上表现优异,提示我们在追求高性能的同时不应忽视计算效率与成本效益。最后,文章还介绍了重新排序技术,进一步优化检索结果的相关性。
100 6
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
|
2月前
|
数据采集 自然语言处理 算法
实战RAG:构建基于检索增强的问答系统
【10月更文挑战第21天】在当今大数据时代,如何高效地从海量信息中获取所需知识,成为一个亟待解决的问题。检索增强的生成模型(Retrieval-Augmented Generation, RAG)应运而生,它结合了检索技术和生成模型的优点,旨在提高生成模型的回答质量和准确性。作为一名热衷于自然语言处理(NLP)领域的开发者,我有幸在多个项目中应用了RAG技术,并取得了不错的成效。本文将从我个人的实际经验出发,详细介绍如何使用RAG技术来构建一个问答系统,希望能够帮助那些已经对RAG有一定了解并希望将其应用于实际项目中的开发者们。
200 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
超越传统搜索:探索基于GraphRAG的信息检索新范式
【10月更文挑战第10天】随着信息爆炸时代的到来,如何从海量的数据中快速准确地找到所需的信息成为了一个亟待解决的问题。传统的信息检索系统主要依赖于关键词匹配和文档排名算法来提供结果,但这种方法往往无法捕捉到数据间的复杂关系,也无法很好地理解用户的查询意图。近年来,一种新的信息检索方法——基于图的检索增强生成(Graph-based Retrieval-Augmented Generation, GraphRAG)应运而生,它通过结合知识图谱与机器学习技术,为信息检索带来了全新的视角。
76 1
|
1月前
|
机器学习/深度学习 自然语言处理 数据管理
GraphRAG核心组件解析:图结构与检索增强生成
【10月更文挑战第28天】在当今数据科学领域,自然语言处理(NLP)和图数据管理技术的发展日新月异。GraphRAG(Graph Retrieval-Augmented Generation)作为一种结合了图结构和检索增强生成的创新方法,已经在多个应用场景中展现出巨大的潜力。作为一名数据科学家,我对GraphRAG的核心组件进行了深入研究,并在此分享我的理解和实践经验。
68 0
|
5月前
|
机器学习/深度学习 自然语言处理 并行计算
淘宝搜索中的深度语义模型:从理论到实践
淘宝搜索系统通过引入深度语义模型,极大地提升了搜索质量和用户体验。这些模型不仅能够准确理解用户的需求,还能够智能地匹配和推荐商品,为用户提供了一个更加便捷、个性化的购物环境。随着技术的不断发展和完善,淘宝搜索将会变得更加智能和高效。
|
5月前
|
机器学习/深度学习 存储 人工智能
ACL 2024|D2LLM:将Causal LLM改造成向量搜索模型的黑科技
D2LLM:一种针对语义搜索任务的新颖方法,它结合了大语言模型(LLM)的准确性与双编码器的高效性。实验表明,D2LLM在多项任务上的性能超越了五个领先基准模型,尤其是在自然语言推理任务中,相对于最佳基准模型的提升达到了6.45%
110 1
下一篇
DataWorks