关于对向量检索研究的一些学习资料整理

官方学习资料

        主要是的学习资料是, 官方文档 和官方博客。相关文章还是挺多 挺不错的 他们更新也比较及时。有最新的东西 都会更新出来。
es scdn官方博客

这里简单列一些,还有一些其他的,大家自己感兴趣去看。

什么是向量数据库

Elasticsearch:向量数据库的真相-CSDN博客

什么是向量嵌入

什么是大语言模型(LLM)

什么是语义搜索

向量搜索的优势

什么是机器学习

关于多模态


        这个是多模态检索。目前es只能做文本类转向量的模型导入。不支持图片转向量的模型导入。(clip是双塔模型,一个负责文本转向量,一个负责图片转向量。我测过了,图片转向量模型不支持导入)如果用es做多模态。还是要在外边部署模型。 整体体验不好。而且模型导入es,是收费的白金版。 最佳实践(不付费玩法)应该是完全在外边做转向量。 考虑付费,可以用es

学术界前沿的研究对比


        这个是学术稍微前沿一点的研究。里边包含的论文,感兴趣可以看看。里边探讨对比了关于BM25和向量检索的效果。还包含稀疏向量相关的知识。

关于稀疏向量

        稠密向量有一个致命问题。 检索速度,以及做嵌入的速度。太慢,现在最先进的方向是稀疏向量

这里边有对比 语义检索 和 BM25的效果对比。(最佳实践是两者结合,做内容召回。两者可以互补)根据官方提供的稀疏向量的模型测试结果如下图所示,据说20个场景有19个都优遇BM25.

这是稀疏向量模型的转换效果,应该不会多花费空间。它的维度相对低。 

这里有我的一篇文章,国内生产实践经验帖。ES-ELSER 如何在内网中离线导入ES官方的稀疏向量模型(国内网络环境下操作方法)-CSDN博客

如何做向量嵌入

        模型转向量,简单来讲,是利用机器学习模型把一块文本(数据),映射到网络空间内,同样问题(query)也是用同一个模型,映射到网络空间内。然后计算cosin值,也就是夹角越小,就越相近。

        我在生产实践中,是选择使用es来的机器学习模块倒入hugging face上的NLP模型,来做文本嵌入。

        这里有一篇我自己写的国内环境下。如何在es中导入NLP模型。elasticsearch 内网下如何以离线的方式上传任意的huggingFace上的NLP模型(国内避坑指南)-CSDN博客

        这里还有一个例子,是在es中使用 E5 嵌入模型进行多语言向量搜索

向量检索简单举个例子

        data 是一篇文章的内容。这个内容最终可能是切分成N个片段。 然后通过模型把每个片段都转成向量,然后再把向量存到向量库。

例如,第一个段落 片段转完是 [1.0000009,0.11111111,0.899998]

然后问题,也转成向量可能是 [1.0044449,0.55551111,0.449998]

然后通过计算这两个数组,的cosin值,然后再比较 其它片段和问题的cosin值(当然还可以用其它计算方式),然后做个排序,然后把topN小的返回。这就是KNN最邻近搜索。

关于相关性或者说相似性

        相似不相似,其实更多是依赖模型效果好不好。向量库都只是起计算作用。关于向量库的选择,只需要看该向量数据库的稳定性,数据承载能力(也就是能存多少数据,是否满足业务需求。)已经向量数据库实现的向量检索算法都有哪些(实际上目前学术界也就那么多)。还有就是该库的检索性能如何,稳定性如何,能够满足业务需求。但是不要想着在向量数据库上去提升搜索相关性的事情,因为相关性和库没有太大关系。如何要研究提升召回效果。应该去考虑选择什么样的机器学习模型效果更好,还要考虑模型的语言能力,是否支持多语种。例如你在英文模型下做中文数据的embedding,效果肯定会很差。此外不同的业务应该选择自己的模型,加上微调。而不是一个大一统的模型。另外一个提升相关性的方向是探索数据切割的规则,针对不同类型的数据做不同的切分。

        实际上利用向量检索的相关性效果,还确实是比BM25好的。但是它不是绝对的,在关键词精准匹配场景下,BM25算法更好一些。

如何选择模型

语义检索系统如何选择合适的embedding模型-CSDN博客

使用模型做文本陷入,如何做数据切分,不丢失语义

        目前这一块探索还比较少。根据看过的一些案例,基本上推荐在500个token,300-400个字。再多了就会丢失语义。这里还需要摸索和测试一下。

ES支持混合检索吗? 向量检索+倒排索引 

es ANN搜索

这样可以先筛选数据。然后剩下的在做 knn搜索。这个逻辑会先走倒排搜索。

提供一个向量检索的案例

腾讯es云,最近写的最佳实践
 

关于请求改写经验


美团的查询改写

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

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

相关文章

文件加密软件哪个最好用 好用的文件加密软件推荐

一说到文件加密软件,可能大家都会去搜一些不知名的软件来,但是选择这种加密软件,最好还是要看一些资质的。 资质不好的,可能加密过后你自己也打不开文件,(ps:我自己就遇到过这种情况&#xff09…

基于Java SSM框架高校校园点餐订餐系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架高校校园点餐订餐系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

Oracle(2-14)User-Managed Incomplete Recovery

文章目录 一、基础知识1、Incomplete Recovery Overview 不完全恢复概述2、Situations Requiring IR 需要不完全恢复的情况3、Types of IR 不完全恢复的类型4、IR Guidelines 不完全恢复指南5、User-Managed Procedures 用户管理程序6、RECOVER Command Overview 恢复命令概述7…

Python数据科学视频讲解:Python注释

2.3 Python注释 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.3节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学应用的全流程,包括数据科学应用和…

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

【AIE】AIE微信合集

AIE微信合集 AIE(1) 对于Versal,我们从系统角度看,可将其分为3个Domain:AIE、PS和PL,如下图所示。如果要运行一个AIE的应用,绝大多数情况下,这3个Domain我们都会用到,使其协同工作。这里我们仅…

《绝地求生》新手怎么玩 游戏基本介绍

随着电竞热潮的兴起,《绝地求生》已经成为了一款备受玩家热爱的游戏。这款游戏在全球范围内拥有庞大的玩家群体,它将你置身于一个荒无人烟的岛屿上,与其他99名玩家展开生死竞争。作为一个新手,下面闲游盒小盒子就为大家详细介绍一…

写实3D游戏模型纹理贴图设置

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格: …

Mybatis源码解析5:Mapper执行流程1

Mybatis源码解析5:Mapper执行流程1 1.项目结构2. 源码分析2.1 Mapper代理 MapperProxy#invoke2.2 创建MapperMethod2.2.1 方法名称解析器ParamNameResolve2.2.2 MapperMethod#execute 2.3 DefaultSqlSession2.4 CachingExecutor2.5 SimpleExecutor#doQuery获取连接对…

Nacos源码解读09——配置中心配置信息创建修改怎么处理的

存储配置 从整体上Nacos服务端的配置存储分为三层: 内存:Nacos每个节点都在内存里缓存了配置,但是只包含配置的md5(缓存配置文件太多了),所以内存级别的配置只能用于比较配置是否发生了变更,只用…

进行生成简单数字图片

1.之前只能做一些图像预测,我有个大胆的想法,如果神经网络正向就是预测图片的类别,如果我只有一个类别那就可以进行生成图片,专业术语叫做gan对抗网络 2.训练代码 import torch import torch.nn as nn import torch.optim as optim import torchvision.transforms as transfo…

盛域宏数合伙人张天:AI时代,数字化要以AI重构

大数据产业创新服务媒体 ——聚焦数据 改变商业 在这个飞速发展的科技时代,数字化已经深刻地改变了我们的生活和商业方式。信息技术的迅猛发展使得数据成为现代社会最宝贵的资源之一。数字化已经不再是可选项,而是企业持续发展的必由之路。背靠着数据的…

【React】路由的基础使用

react-router-dom6的基础使用 1、安装依赖 npm i react-router-dom默认安装最新版本的 2、在src/router/index.js import { createBrowserRouter } from "react-router-dom"/* createBrowserRouter:[/home]--h5路由createHashRouter:[/#/ho…

Linux访问NFS存储及自动挂载

本章主要介绍NFS客户端的使用 创建NFS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用 1.1 访问NFS存储 前面那篇介绍了本地存储,本章就来介绍如何使用网络上上的存储设备。NFS即网络文件系统,所实现的是Linux和Linux之…

通信:mqtt学习网址

看这个网址:讲的很详细,后面补实战例子 第一章 - MQTT介绍 MQTT协议中文版 (gitbooks.io)https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html

【论文极速读】LVM,视觉大模型的GPT时刻?

【论文极速读】LVM,视觉大模型的GPT时刻? FesianXu 20231210 at Baidu Search Team 前言 这一周,LVM在arxiv上刚挂出不久,就被众多自媒体宣传为『视觉大模型的GPT时刻』,笔者抱着强烈的好奇心,在繁忙工作之…

m.2固态硬盘怎么选择?

一、什么是固态硬盘 固态硬盘又称SSD,是Solid State Drive的简称,由于采用了闪存技术,其处理速度远远超过传统的机械硬盘,这主要是因为固态硬盘的数据以电子的方式存储在闪存芯片中,不需要像机械硬盘那样通过磁头读写磁…

【CiteSpace】引文可视化分析软件CiteSpace下载与安装

CiteSpace 译“引文空间”,是一款着眼于分析科学分析中蕴含的潜在知识,是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。由于是通过可视化的手段来呈现科学知识的结构、规律和分布情况,因此也将通过此类方法分析得到的可…

【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述

目录 1,SpringMVC简介2、SpringMVC概述 欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》&…

python使用vtk与mayavi三维可视化绘图

VTK(Visualization Toolkit)是3D计算机图形学、图像处理和可视化的强大工具。它可以通过Python绑定使用,适合于科学数据的复杂可视化。Mayavi 依赖于 VTK (Visualization Toolkit),一个用于 3D 计算机图形、图像处理和可视化的强大…