Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Milvus x Lucidworks 快速构建语义检索

Milvus x Lucidworks 快速构建语义检索

作者头像
Zilliz RDS
发布于 2021-06-25 03:10:53
发布于 2021-06-25 03:10:53
8920
举报

语义检索 [1](Semantic Search) 是能帮助你的客户或员工找到正确的产品或信息的绝佳工具,它甚至可以检索到一些难以被索引的信息,从而获得更好的结果。即便如此,倘若你所部署的方案没有速度优势,那也无济于事。如果系统响应查询请求的速度非常缓慢,客户或员工可没有耐心干等着,更不用说可能还有其他上千个查询请求在同时发生。

如果低效的语义检索难以胜任,那么如何进行高速的语义检索呢?

幸运的是,Lucidworks 热衷于解决此类问题。最近,我们测试了一个中等规模的集群(详情请看下文),针对逾百万文档的集合,可达到每秒 1,500 RPS(每秒请求率),平均响应时间约 40 毫秒。这个速度可以说是非常可观了。

执行语义检索

为了让机器学习达到闪电般快的速度,Lucidworks 通过向量搜索的方法执行语义检索,由两个关键部分组成。

第一部分:机器学习模型

首先,你需要将文本编码为特征向量。文本可以是产品说明、用户搜索查询指令、问题,甚至是问题的答案。训练语义模型对文本进行编码,语义上相似的文本被编码为数值上彼此“接近”的向量。为了支持每秒可能出现的数千个或更多的客户搜索或用户查询,该编码步骤需要快速完成。

第二部分:向量搜索引擎

其次,你需要一种能快速找到客户搜索或用户查询的最匹配结果的方法。前文中的模型已经将文本编码为特征向量。接着,将这个向量与目录或问答列表中的所有特征向量进行比较,找到与之最匹配的向量,即与查询向量“最接近”的向量。为此,一个能迅速高效地处理所有这些信息的向量引擎必不可少。引擎中可能包含了数百万个向量,而你实际上只需要其中匹配度最高的二十个左右。当然,它每秒需要处理约一千条此类查询。

为了解决这些难题,我们在 Fusion 5.3 版本[2]中添加了向量搜索引擎 Milvus[3]。Milvus 是一款开源软件,拥有极高的搜索速度。Milvus 采用的是 Facebook AI Similarity Search[4](FAISS,即 Facebook 人工智能相似性搜索)开源库,Facebook 在其自己的机器学习计划的生产中使用的也是这一技术。如有需要,它甚至可以在 GPU[5]的支持下运行得更快。Fusion 5.3(或更高版本)与机器学习组件一起安装时,Milvus 会作为该组件的一部分自动安装,轻松开启所有这些功能。

在创建集合的时候需要指定向量的维度(大小),这个向量的维度取决于生成这些向量的模型。例如,通过模型可以将产品目录中所有产品描述都编码为向量,并存储于一个给定的集合中。如果没有像 Milvus 这样的向量搜索引擎,那么就无法在整个向量空间上进行相似性搜索,而只能局限于从向量空间中预选出的候选项(比如 500 条),且性能低下、质量不佳。Milvus 可以存储多个向量集合的数千亿条向量,保证搜索快速且结果相关。

使用语义检索

在了解了 Milvus 如此重要的原因后,让我们回到语义检索的工作流程。语义检索分为三个阶段:第一阶段是加载和/或训练机器学习模型;接着,将数据导入到 Milvus 和 Solr 中并建立索引;最后是查询阶段,即实际搜索发生的阶段。下面将重点介绍后两个阶段。

导入 Milvus 并建立索引

如上图所示,在建立索引阶段,对给定的数据源中的每个文档执行以下步骤:

  1. 将文档发送到 Smart Answers 数据管道
  2. 将所选文档字段(例如,问答系统中的答案或电子商务系统中的产品描述)发送到机器学习模型。
  3. 机器学习模型返回一个特征向量(对字段编码生成)。向量大小取决于模型类型。
  4. 向量和其唯一的 ID 存储在 Milvus 集合中。
  5. 该文档和先前的唯一 ID 存储在 Solr 中。

当然,你也可以做一些调整,例如在 Milvus 中编码并储存多个字段。接下来,让我们进入第二阶段。

使用 Milvus 查询

如上图所示,查询阶段与索引阶段的起始步骤类似,只是将进入管道的文档换成了查询指令。步骤如下:

  1. 发送查询至 Smart Answers[6]数据管道。
  2. 发送查询指令到机器学习模型。
  3. 机器学习模型返回一个特征向量(从查询请求中加密)。同样地,向量大小取决于模型类型。
  4. 将该向量发送到 Milvus,然后由 Milvus 判断指定集合中哪些向量与提供的向量匹配度最高。
  5. Milvus 返回与步骤 4 中确定的向量相对应的唯一 ID 和距离列表。
  6. 将包含这些 ID 和距离的查询指令发送到 Solr。
  7. Solr 返回这些 ID 的关联文档的有序列表。

扩展测试

为了证明我们的语义检索流程的效率符合我们的客户服务要求,我们使用 Gatling 脚本在 Google Cloud 平台上进行了扩展测试,启动了 8 个机器学习模型副本、8 个查询服务副本以及一个 Milvus 实例的 Fusion 集群。测试使用 Milvus FLAT 和 HNSW 索引。FLAT 索引的召回率是 100%,但效率较低——除非数据集较小。而 HNSW 索引在保证高质量结果的前提下,针对较大规模的数据集进一步提升了性能。

以下测量数值均来自最近运行的示例:

参考资料:

[1] Lucidworks 原文: https://lucidworks.com/post/what-is-semantic-search/

[2] Lucidworks Fusion 5.3 版本: https://lucidworks.com/post/enhance-personalization-efforts-with-new-features-in-fusion/

[3] Milvus: https://doc.lucidworks.com/fusion/5.3/8821/milvus

[4] FAISS: https://ai.facebook.com/tools/faiss/

[5] GPU: https://en.wikipedia.org/wiki/Graphics_processing_unit

[6] Lucidworks Smart Answers: https://lucidworks.com/products/smart-answers/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZILLIZ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Milvus 实战|基于 Milvus 的图文检索系统
1. 通过 TIRG(Text Image Residual Gating)模型将图片特征和文本特征转化为多模态特征向量。
Zilliz RDS
2021/05/17
2.6K2
Milvus 实战|基于 Milvus 的图文检索系统
图形商标近似检索-知擎者的 Milvus 实践
知擎者是一个商标大数据智能应用平台,以商标数据为核心,结合企业大数据、法律大数据、营销大数据等,提供基础业务处理、商标预警监测、案件智能挖掘、数据情报分析等服务,为知产服务者提效赋能。知擎者不断协助知产服务者改变传统业务处理模式,创建智慧服务新体系,拓展更多业务机会,以达到知产服务者快速盈利和品牌建设的目标。
Zilliz RDS
2021/02/03
9880
图形商标近似检索-知擎者的 Milvus 实践
【RAG落地利器】Weaviate、Milvus、Qdrant 和 Chroma 向量数据库对比
向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,根据数据的复杂性和粒度,可以从数十到数千不等。
致Great
2025/01/23
8030
【RAG落地利器】Weaviate、Milvus、Qdrant 和 Chroma 向量数据库对比
解读向量数据库
不论是RAG,还是Agent,几乎每个LLM 驱动的应用程序都可能会用到向量数据库。那么,向量数据库是什么?与传统数据库有何不同? 又如何选择向量数据库呢? 本文是老码农关于向量数据库的学习笔记。
半吊子全栈工匠
2023/11/27
1.8K0
解读向量数据库
Milvus 在 Tokopedia 的应用 | 让语义搜索更加智能
Tokopedia 是印度尼西亚最大的电商平台,目前拥有逾 9000 万月活跃用户和 860 万家商户,覆盖印尼 98% 的行政区。我们深知,帮助用户迅速并精准地找到想要的商品才是产品语料库的价值所在。正因如此,我们致力于提高用户搜索结果的相关性,并引入了相似度搜索。在 Tokopedia 移动应用端的搜索结果页面上点击 ”...” 按钮,即可选择搜索与当前搜索结果类似的产品。
Zilliz RDS
2021/06/25
4030
基于 Milvus 的钓鱼网站检测
在海量信息中,不乏非法分子利用网络骗取用户信任并从中获利,钓鱼网站就是其中之一。“钓鱼”网站的网址、网页内容、布局等与真实网站极其相似,没有安全意识的网民容易因此上当受骗,造成严重后果。
Zilliz RDS
2020/11/04
1.5K0
基于 Milvus 的钓鱼网站检测
你的 AI 造型师-基于 Milvus 的服装图片搜索系统及应用
Mozat 是一家成立于 2003 年的互联网公司,总部位于新加坡,在广州和沙特阿拉伯设有分公司。Mozat 为全球移动互联网用户提供娱乐和社区服务,致力于打造一个充满乐趣的新移动世界。旗下产品 Stylepedia 是一款面向全球时尚女性的衣柜伴侣 APP。在这里,用户不仅可以打造自己的专属衣柜,还能与全世界的时尚达人在线互动,获取最 in 穿搭。
Zilliz RDS
2021/07/23
1K0
你的 AI 造型师-基于 Milvus 的服装图片搜索系统及应用
贝壳找房基于Milvus的向量搜索实践(一)
Milvus[1]:一种基于Faiss[5],NMSLIB[6] 和 Annoy[7]的相似特征向量搜索引擎。
Zilliz RDS
2021/01/05
2.4K0
贝壳找房基于Milvus的向量搜索实践(一)
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
语义搜索和检索增强生成(RAG)正在彻底改变我们的在线交互方式。实现这些突破性进展的支柱就是向量数据库。选择正确的向量数据库能是一项艰巨的任务。本文为你提供四个重要的开源向量数据库之间的全面比较,希望你能够选择出最符合自己特定需求的数据库。
deephub
2024/04/25
20.4K1
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
语义检索系统:基于Milvus 搭建召回系统抽取向量进行检索,加速索引
目标:使用 Milvus 搭建召回系统,然后使用训练好的语义索引模型,抽取向量,插入到 Milvus 中,然后进行检索。
汀丶人工智能
2023/08/02
2.8K0
语义检索系统:基于Milvus 搭建召回系统抽取向量进行检索,加速索引
用 Milvus 和 NVIDIA Merlin 搭建高效推荐系统
简单来说,现代推荐系统由训练/推理流水线(pipeline)组成,涉及数据获取、数据预处理、模型训练和调整检索、过滤、排名和评分相关的超参数等多个阶段。走遍这些流程之后,推荐系统能够给出高度个性化的推荐结果,从而提升产品的用户体验。
Zilliz RDS
2023/11/01
4730
用 Milvus 和 NVIDIA Merlin 搭建高效推荐系统
.NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
在当今数据驱动的时代,向量数据库(Vector Database)作为一种新兴的数据库技术,正逐渐成为软件开发领域的重要组成部分。特别是在 .NET 生态系统中,向量数据库的应用为开发者提供了构建智能、高效应用程序的新途径。
AI.NET 极客圈
2025/03/27
1350
.NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
相似问答检索——汽车之家的 Milvus 实践
汽车之家作为中国汽车互联网平台,拥有全球最大的汽车社区论坛。多年来积累了丰富的用户问答数据,能够解决用户在看车、买车、用车等方面遇到的各种问题。针对用户在平台上提出的各种问题,从海量的高质量问答库中匹配语义最相似的问题和答案,能够及时满足用户需求,大大提升用户体验。
Zilliz RDS
2020/09/08
1.5K0
相似问答检索——汽车之家的 Milvus 实践
Milvus 实战 | 基于 Milvus 的 CORD-19 论文检索引擎
论文检索是指根据用户输入的信息从大量的论文集合中查找出相关文本的一种技术。论文检索作为信息检索的一种,常用于搜索引擎、数字图书馆等领域,是信息检索技术的一个重要组成部分。
Zilliz RDS
2020/08/27
1.5K0
Milvus 实战 | 基于 Milvus 的 CORD-19 论文检索引擎
AI 搜房,贝壳找房的Milvus实践
贝壳作为一家房产服务互联网平台,如何在海量房源中选出能够快速成交的房源是对平台和经纪人来说都是一件非常重要同时具有挑战的事情,但是针对房型图,户型信息等一系列非结构化数据在平台中应该怎么搜索呢?
Zilliz RDS
2020/04/28
1.3K0
AI 搜房,贝壳找房的Milvus实践
Milvus 实战 | 基于 Milvus 的食谱检索系统
现在,社交媒体、电商网站以及短视频应用源源不断地产生大量多模态数据。这些数据包含了自然语言、视觉信号、声音信号等多种类型。由于单一模式的数据分析已经不能满足日益复杂的查询需求,如何高效利用这些多模态数据变得至关重要。
Zilliz RDS
2020/12/02
1.2K0
AI项目的十大向量数据库解决方案
探索AI项目十大向量数据库:Pinecone、Chroma、Weviate、Milvus、Faiss等,涵盖开源的Qdrant、Pgvector、ClickHouse、OpenSearch和Deep Lake。它们利用ANN算法高效处理高维向量,应用于LLM、推荐系统、图像识别等云原生场景,助力企业实现AI驱动的数据分析与相似性搜索。
云云众生s
2025/03/18
2480
使用Sentence Transformers和Faiss构建语义搜索引擎
介绍 您是否曾经想过如何使用Sentence Transformers创建嵌入向量,并在诸如语义文本相似这样的下游任务中使用它们在本教程中,您将学习如何使用Sentence Transformers和Faiss构建一个基于向量的搜索引擎。代码地址会在本文的最后提供 为什么要构建基于向量的搜索引擎? 基于关键字的搜索引擎很容易使用,在大多数情况下工作得很好。你要求机器学习论文,他们会返回一堆包含精确匹配或接近变化的查询结果,就像机器学习一样。其中一些甚至可能返回包含查询的同义词或出现在类似上下文中的单词的结
deephub
2020/11/17
2.5K0
使用Sentence Transformers和Faiss构建语义搜索引擎
Milvus 到底有多少种玩法?这份攻略合集请收好!
Milvus 是一款开源的向量相似度搜索引擎,支持使用多种 AI 模型将非结构化数据向量化,并为向量数据提供搜索服务。Milvus 集成了 Faiss、Annoy 等广泛应用的向量索引库,开发者可以针对不同场景选择不同的索引类型。使用 Milvus 就可以以相当低的成本研发出最简可行产品。
Zilliz RDS
2021/03/22
3.3K0
Milvus 到底有多少种玩法?这份攻略合集请收好!
Milvus 在趋势科技的实践
趋势科技(TrendMicro)是一家全球领先的信息安全软件公司,专为全球软件厂商及个人用户提供安全解决方案。本文作者目前负责构建移动安全 APP 和开发基础设施。工作流程为爬取 Google play 等平台上的外部 APK (Android application package,即 Android 应用程序包),运用趋势科技的算法检测出携带病毒的 APK。使用 Milvus 在趋势科技 APK 库中对携带病毒的外部 APK 进行相似性检索。如发现外部携带病毒的 APK 与库中 APK 相似,需要及时通知企业与个人用户相关的病毒信息。
Zilliz RDS
2021/03/04
9240
推荐阅读
相关推荐
Milvus 实战|基于 Milvus 的图文检索系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档