乐趣区

关于搜索引擎:OpenSearch-图搜图文搜图向量检索最佳实践

一、向量检索介绍

1.1 多模态信息的典型特点 - 非结构化

信息能够被划分为两大类:当信息可能用数据或对立的构造加以示意,称之为结构化数据;当信息无奈用数字或对立的构造示意,称之为非结构化数据。非构造数据与结构化数据相比较而言,更难让计算机了解。

以搜寻为例:须要将非结构化数据→转为结构化→再实现搜寻;

1.2 向量检索的定义与利用

1.2.1 什么是向量检索?

将物理世界产生的非结构化数据,转化为结构化的多维向量,用这些向量标识实体和实体间的关系。

再计算向量之间间隔,通常状况下,间隔越近、类似度越高,召回类似度最高的 TOP 后果,实现检索。

向量检索其实离咱们很近:以图搜图、同款比价、个性化搜寻、语义了解……

1.2.2 向量检索典型利用场景

1. 图像 / 视频 / 语音 多模态检索

图搜购物、同款比价,拍照搜题、图片辨认等;

2.NLP 文本检索

规范地址库检索、企业机构名称检索、通过补充向量语义召回,晋升搜寻成果;

3. 搜寻举荐广告

类似举荐、个性化搜寻等;

4. 向量检索简直可能利用到 AI 畛域的所有场景。

同时检索的后果也能够作为后续算法的输出进行更多业务相干的计算,实现简单的业务场景。

二、企业自建向量检索的痛点

  • 性能差:返回后果耗时太长、后果返回率低 —— 搜寻期待久,甚至超时解体,体验差
  • 老本高:索引占用过多内存,老本高,价格贵 —— 业务投入老本高,性价比低
  • 成果差:短少向量搭建教训,精度和参数调不好 —— 搜寻成果差
  • 海量数据反对差:业务快速增长,数据量飞涨,自建计划无奈无效进行海量数据的索引构建和解决 —— 构建慢、更新慢、拓展性差

三、OpenSearch 向量检索版 - 端到端图像搜寻解决方案

3.1 端到端图像搜寻计划介绍

就算企业没有向量数据、仅有图片原始数据,也能通过 OpenSearch 向量检索版端到端图像搜寻计划,疾速搭建图像搜寻服务。用户能够间接导入图片源数据,在 OpenSearch 外部便捷实现图片向量化、向量搜寻等步骤,实现以图搜图、以文搜图等多种图像检索能力。

(1)便捷、高性价比的端到端体验

  • 向量化和索引构建
  1. 客户将图片源数据上传到 OpenSearch 向量检索版,向量检索版应用内置算法,可能将千亿级别的图片数据进行向量化、存储、并造成向量索引。
  2. 针对字段、索引进行压缩,尽可能减少内存占用,帮忙客户降低成本。
  • 搜寻
  1. 客户将要搜寻的图片,上传给 OpenSearch 向量检索版,由它对该图片进行向量化
  2. 将向量化后的图片与此向量索引进行比对查问,获取类似度最高的后果,并返回给客户

(2)可选三种形式上传图片原始数据,进行向量化解决

  • OSS+MaxCompute+OpenSearch 向量检索版:用户先将图片上传至 OSS 中,在 MaxCompute 中存储业务表数据以及每条数据对应的图片地址(OSS 里的门路,比方 /image/1.jpg)
  • MaxCompute+OpenSearch 向量检索版:用户将图片通过 base64 编码后的图片及其表数据存储在 MaxCompute 中
  • API+OpenSearch 向量检索版:用户通过 OpenSearch 向量检索版给出的数据推送接口,将 base64 编码后的图片及其表数据推送到 OpenSearch 向量检索版实例中

(3)内置模型实现图片向量化

  • 以后内置达摩院开源 clip 模型实现图像转向量
  • 后续将内置更多可选模型

3.2 技术劣势

劣势一:高性能保障:自研的超高向量检索引擎

  • OpenSearch 向量检索版反对千亿数据毫秒级响应,实时数据更新秒级可见
  • OpenSearch 向量检索版的检索性能优于开源向量搜索引擎数倍,在高 QPS 场景下召回率显著优于开源向量搜索引擎

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

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

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

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

劣势二:低成本:采纳多种形式优化存储老本、缩小资源耗用

数据压缩:可将原始数据转化为 float 模式存储,并再采纳 zstd 等高效算法进行数据压缩,实现存储老本优化

精密索引结构设计:针对不容类型索引,可采纳不同优化策略,升高索引大小

非全内存加载:能够应用 mmap 非 lock 的模式加载索引,无效升高内存开销

引擎劣势:OpenSearch 向量检索版引擎自身具备构建索引大小、GPU 资源耗用的劣势,等同数据条件下,OpenSearch 向量检索版内存占用仅为开源向量检索引擎的 50% 左右。

劣势三:具备丰盛的向量检索能力

  • 反对 HNSW、QC、Linear 等多种向量检索算法
  • 反对标签、文本倒排索引、向量索引的混合检索,进步检索性能与查问精度,下图举例说明按外围词混合检索、类别过滤前后的搜寻成果比照:

劣势四:反对按表达式过滤,具备边检索边过滤能力 ,能无效升高搜寻无后果率,晋升搜寻成果

劣势五:Query 中反对设置,类似度阈值、扫描返回的节点数等参数 ,找到查问耗时与返回后果精度之间的最优解

劣势六:大规模数据疾速索引构建、反对实时更新、数据程度拓展

  • 反对大规模向量疾速导入与索引构建,单节点 348 维 1 亿向量,通过配置优化,可在 3.5 小时内实现全量构建
  • 反对数据动静更新、即增即查、主动索引重建
  • 反对数据程度扩大

3.3 产品配置流程

  1. 第一次开明阿里云账号并登录控制台,您需先创立 AK 和 SK
  2. 产品反对 MaxCompute 数据源、API 数据源,您需提前准备数据
  3. 购买 OpenSearch 向量检索版实例,零碎主动部署与购买规格统一的空集群,您需为该集群「配置数据源、配置索引构造、索引重建」,之后才可失常搜寻
  4. 在控制台查问测试页面或通过 API/SDK,进行以文搜图成果测试;通过 API/SDK 进行以图搜图成果测试
  5. 通过 API/SDK 调用向量搜寻服务

更多应用阐明参考::https://help.aliyun.com/document_detail/2247007.html?spm=a2c4…

3.4 客户案例

某电商客户,通过约 15 个工作日实现 POC 接入:

  1. 实现 2 亿级别 768 维向量数据的存储和索引构建,并反对增量更新无需重建索引
  2. 万级别数据,实现毫秒级检索响应,查问耗时比照自建计划升高 50%
  3. 反对按条件查问、分类筛选、标签过滤的向量检索能力,满足灵便的业务场景须要

原文链接

本文为阿里云原创内容,未经容许不得转载。

退出移动版