为什么要用向量检索

        之前写过一篇文章,是我个人到目前阶段的认知,所做的判断。我个人是做万亿级数据的搜索优化工作的。一直在关注任何和搜索相关的内容。

下一代搜索引擎会什么?-CSDN博客

        这篇文章再来讲讲为什么要使用向量搜索。

在阅读这篇文章之前呢,最好已经知道向量检索是怎么回事。如果还不知道,可以学习这篇文章。

什么是向量数据库

向量数据库的真相


 

大幅提升搜索相关性

        如果你在绞尽脑汁,做搜索内容相关性提升,搜索召回质量提升,以及排序优化的。那么一定要关注一下向量搜索了。因为向量搜索在很大概率上大幅度的为你带来效果提升。如果说的没错的话,你之前一直在提升BM25的相关性。不得不承认,在关键词命中匹配方面。BM25仍然还具有它的优势。并且不是向量搜索能替代的。到目前为止,BM25和向量检索所结合,才是相关性提升的最佳实践。

        问为什么能大幅度提升搜索相关性

        因为向量检索,得益于机器学习的进步,得益于深度学习的进步。利用深度学习NLP模型,去捕获上下文的相关性。将数据映射在更高维度的网络空间。而并非是单纯的关键词匹配。

        如果你还不知道什么是机器学习,已为你准备了这些文章

什么是机器学习
 

什么是大语言模型


什么是向量嵌入

跨模态搜索能力

        如果你想实现多模态搜索,以图搜图,以文搜索图,一图搜文,甚至是通过声音搜索。如果苦于找不到合适的方案,或者效果不好。都可以使用向量检索来实现。同样这项能力,本质上也是依赖深度学习和机器学习的进步,能够提供多模态大模型,例如CLIP等等。

让搜索变得更简单

        在很早很早以前,做搜索还是很复杂的事情。但是随着技术的进步,到了今天,各种问题都已迎刃而解了。例如:搜索意图识别、query改写、同义词扩展、等等用来提升提升搜索相关性的复杂性问题。都能在大模型中,在向量检索中得到很好的解决。随之而来的是新的问题,如何提升模型的空间映射效果、如何embedding的速度、到目前为止,GPU性能还是一个很大的问题。不过不久的将来,随着硬件技术的进步,这些也不会是问题了。

语义检索能力

        在这之前,最好能够先知道什么是语义检索。关于语义检索,可以学习这篇文章。https://elasticstack.blog.csdn.net/article/details/134806320

        不同于BM25算法。BM25是纯粹的利用关键词匹配技术,利用词频和逆文档率来计算相关性。假如你搜索的关键词,在数据中并未出现,则一定不会被搜索到。而向量检索,是依赖大模型的,做的事KNN最邻近搜索。总会给你一个最相关,最相近的答案。在模型中,能够更好的理解query的意图。而这一切在技术实现上,又并不复杂。

        想要用文本搜索图片,原本一定是要获取图片的表示内容的,传统的做法是将图片专为标签。但是标签总是有限的,会让图片损大量的有效信息,所以导致最终检索的效果并不好,召回效果不好。

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

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

相关文章

【网络安全】网络设备可能面临哪些攻击?

网络设备通常是网络基础设施的核心,并控制着整个网络的通信和安全,同样面临着各种各样的攻击威胁。 对网络设备的攻击一旦成功,并进行暴力破坏,将会导致网络服务不可用,且可以对网络流量进行控制,利用被攻陷…

【JavaEE】线程池

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

springcloud分布式事务

文章目录 一.为什么引入分布式事务?二.理论基础1.CAP定理2.BASE理论 三.Seata1.微服务集成Seata2.XA模式(掌握)3.AT模式(重点)4.TCC模式(重点)5.Saga模式(了解) 四.四种模式对比五.Seata高可用 一.为什么引入分布式事务? 事务的ACID原则 在大型的微服务项目中,每一个微服务都…

案例课4——智齿客服

1.公司介绍 智齿科技,一体化客户联络中心解决方案提供商。提供基于「客户联络中心」场景的一体化解决方案,包括公域私域、营销服务、软件BPO的三维一体化。 智齿科技不断整合前沿的人工智能及大数据技术,已构建形成呼叫中心、机器人「在线语音…

Python中函数的递归调用

函数调用自己的编程方式被称为函数的递归调用。递归通常能够将一个大型的复杂问题的递归条件,一层一层的回溯到终止条件,然后再根据终止条件的运算结果,一层一层的递进运算到满足全部的递归条件。它能够使用少量程序描述出解题过程中的重复运…

主机访问Android模拟器网络服务方法

0x00 背景 因为公司的一个手机app的开发需求,要尝试链接手机开启的web服务。于是在Android Studio的Android模拟器上尝试连接,发现谷歌给模拟器做了网络限制,不能直接连接。当然这个限制似乎从很久以前就存在了。一直没有注意到。 0x01 And…

分销电商结算设计

概述 分销电商中涉及支付与结算;支付职责是收钱,结算则是出钱给各利益方; 结算核心围绕业务模式涉及哪些费用,以及这些费用什么时候通过什么出资渠道,由谁给到收方利益方; 结算要素组成费用项结算周期出…

区块链的可拓展性研究【03】扩容整理

为什么扩容:在layer1上,交易速度慢,燃料价格高 扩容的目的:在保证去中心化和安全性的前提下,提升交易速度,更快确定交易,提升交易吞吐量(提升每秒交易量) 目前方案有&…

详解进程管理(银行家算法、死锁详解)

处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得更为重要,这主要由于计算机的速度越来越快,处理机的充分利用有利于系统效率的大大提高;处理机管理是整个操作系统的重心所…

前后端联调神器《OpenAPI-Codegen》

在后端开发完接口之后,前端如果再去写一遍接口来联调的话,会很浪费时间,这个时候使用OpenAPI接口文档来生成Axios接口代码的话,会大大提高我们的开发效率。 Axios引入 Axios是一个基于Promise的HTTP客户端,用于浏览器…

Go压测工具

前言 在做Go的性能分析调研的时候也使用到了一些压测方面的工具,go本身也给我们提供了BenchMark性能测试用例,可以很好的去测试我们的单个程序性能,比如测试某个函数,另外还有第三方包go-wrk也可以帮助我们做http接口的性能压测&…

C# 任务并行类库Parallel调用示例

写在前面 Task Parallel Library 是微软.NET框架基础类库(BCL)中的一个,主要目的是为了简化并行编程,可以实现在不同的处理器上并行处理不同任务,以提升运行效率。Parallel常用的方法有For/ForEach/Invoke三个静态方法…

Element-UI定制化Tree 树形控件

1.复制 说明&#xff1a;复制Tree树形控件。 <script> export default {data() {return {data: [{label: 一级 1,children: [{label: 二级 1-1,children: [{label: 三级 1-1-1}]}]}, {label: 一级 2,children: [{label: 二级 2-1,children: [{label: 三级 2-1-1}]}, {l…

Linux:进程优先级与命令行参数

目录 1.进程优先级 1.1 基本概念 1.2 查看系统进程 1.3 修改进程优先级的命令 2.进程间切换 2.1 相关概念 2.2 Linux2.6内核进程调度队列&#xff08;了解即可&#xff09; 3.命令行参数 1.进程优先级 1.1 基本概念 cpu资源分配的先后顺序&#xff0c;就是指进程的优…

【C++】在类外部定义成员函数时,不应该再次指定默认参数值

2023年12月10日&#xff0c;周日下午 错误的代码 #include<iostream>class A { public:void fun(int a10); };void A::fun(int a10) //<----在这里报错 {}int main() {} 正确的代码 代码目前有一个问题&#xff0c;主要是在类外部定义成员函数时&#xff0c;不应该…

解密QQ号——C语言

题目&#xff1a; 有一串已加密的数字“6 3 1 7 5 8 9 2 4”解密规则&#xff1a;首先将第1个数字删除&#xff0c;紧接着将第2个数字放到这串数字的末尾&#xff0c;再将第3个数字删除并将第4个数字放到这串数字的末尾&#xff0c;再将第5个数删除 代码实现&#xff1a; #inc…

利用Node.js和cpolar实现远程访问,无需公网IP和路由器设置的完美解决方案

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

ESP32网络编程-OTA方式升级固件(基于Web浏览器)

OTA方式升级固件(基于Web浏览器) 文章目录 OTA方式升级固件(基于Web浏览器)1、ESP32的OTA介绍2、OTA升级固件方式3、软件准备4、硬件准备5、代码实现6、一种优雅方式实现Web方式OTA升级6.1 基础OTA代码6.2 新固件库代码在前面的文章中,我们在Arduino IDE的网络端口中,实现…

LeetCode 77.组合

题目&#xff1a; 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 方法&#xff1a;灵神-组合型回溯 剪枝 class Solution {private int k;private final List<Integer> path new ArrayList<>();…

反序列化 [网鼎杯 2020 朱雀组]phpweb 1

打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去&#xff0c;func和p 我们需要猜测func和p两个参数之间的关系&#xff0c;可以用php函数MD5测一下看看 我们在响应处得到了一串密文&#xff0c;md5解密一下看看 发…