下一代搜索引擎会什么?

news2024/11/24 16:52:35

        现在是北京时间2023年11月18日。聊一聊搜索。

        说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力,需要很大存储空间。至今为止又有多少个公司能够真的去做AI搜索呢?普通的公司又能够做什么呢?

        ChatGPT是大模型,它的数据总是停留在历史的某个时间点上,目前来看,它对新事物的了解还是很慢的,并不能时时刻刻把新的内容加入到知识库中。未来在更强大的算力进步下,或许会实现。但是我觉得下一代的搜索仍然需要和上一代的搜索结合。这会是一个漫长的过渡期。很显然,大家也都是这么玩的。它叫做搜索增强。

        上一代传统搜索

        上一代的搜索引擎的关键是关键词匹配。这里还是以elasticsearch为例,关键词匹配,BM25相关性算法,来决定数据的召回。这种基于关键词的匹配技术,是存在很多弊端的,它的召回能力,效果也有限。大家更喜欢AI搜索这种模式,通常AI搜索给的答案,更接近问题本身。而在传统的搜索模式下,通常就是问一个问题,然后返回你几条数据,然后再在这几条数据中,人工获取答案。悲伤的是,这几条数据里边未必有我们的结果。

       传统搜索与大模型构造增强式搜索引擎

        最简单的玩法就是,把召回的结果,给大模型,然后由大模型总结整理一个答案。其实这个过程就是省去了使用者思考的过程。为使用者带来很大的便利性。这正是被更多人追捧的原因。最典型的就是bing的搜索。它就是这么玩的,这样以来,弥补了大模型的知识停留在历史的某个阶段的问题。

       传统搜索的未来

        除了上述的搜索增强,我觉得下个时代的搜索,还是会有很大变化空间的。有的公司在说神经搜索,有的人在说语义检索,还有人在说跨模态检索。总之,大家都期望搜索能够有更强大的能力。推荐基于深度学习的神经语义搜索 - 智源社区 看看这篇文章,详细了解神经搜索(NLP模型 )。

        其实上述的搜索目标,实现起来都是一种形式。大模型 + 向量,通过大模型将各种模态的数据,图片,文本,声音等等各种形式的内容,映射成向量。但是下个时代的到来,还有几个问题等待解决。第一个是算力问题,把文本或者图片,使用大模型转成向量,需要算力,这个过程是非常慢的。第二个是存储和检索问题,这些转完的向量如何存储,如何高效快速检索。因为通常文本内容,例如一篇文章,通常需要先进行分割,按照行或者按照段落做切分,然后再对切分后的内容使用模型转成向量。每个向量通常是一个512维度甚至更高维度的浮点型数组。这让原本的存储空间变得更大。所以存储是一个问题。除了存储的问题,在向量中做检索,通常是计算完成的。在海量数据中做检索已经很难了,在限量中做计算,需要的算力资源又是一个难题。我在一台128G内存96核心的服务器上使用elasticsearch做存储和检索,亿级数据的检索性能已经是一个比较大的问题了。在千万级向量中检索是毫秒级别。

        未来的搜索如何玩

        想要做起来很容易。选取适合自己的模型,可以在huggingFace上看一看。https://huggingface.co/models

        首先先拿文本来说,需要做文本嵌入,寻找text-vex的模型,这里推荐一个 可以看看。https://huggingface.co/moka-ai/m3e-base

        假如想做多模态搜索,又需要特定的模型。效果较好的例如Clip,https://huggingface.co/openai/clip-vit-base-patch32 

        然后把转好的向量使用向量库存起来。这里我是用的elasticsearch 8.X版本。因为我本来就是做es搜索的,对elasticsearch非常熟悉。其实也调研了非常多的向量数据库,在大规模数据下,es的读写性能都是非常出色的。至少单个节点去解决千万级别的向量数据的存储和检索还是很轻松的,优化万了以后,性能在毫秒级别。

        跑起来总是很容易。想要有更好的效果却是不容易的。对于选模型来说,是一个问题,而且要经过大量的测试对比各个模型的效果才行。并且非常可能面临着模型不符合自己的使用场景的问题,可能又要对模型进行微调。在huggingFace上,模型非常多,但是多数都是用英文语料训练的模型。往往不能够满足我们的需求。此外数据向量化的工程问题,又要去写挺多的代码,跑起来速度又不行,又需要进行调优。关于数据转向量工程化的内容,推荐一下Jina AI · GitHub。

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

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

相关文章

【动态规划】求解编辑距离问题

目录 问题描述递推关系运行实例时空复杂度优化Hirschberg 算法 问题描述 编辑距离问题是求解将⼀个字符串转换为另⼀个字符串所需的插⼊、删除、替换的最小次数。 C O M M O M → s u b C O M M U M → s u b C O M M U N → i n s C O M M U N E \mathbb{COMMOM} \overset{sub…

迪杰斯特拉算法(C++)

目录 介绍: 代码: 结果: 介绍: 迪杰斯特拉算法(Dijkstras algorithm)是一种用于计算加权图的单点最短路径的算法。它是由荷兰计算机科学家Edsger W. Dijkstra在1956年发明的。 该算法的思路是&#xf…

Confluence 快速安装教程

安装jdk yum install -y java-1.8.0-openjdk.x86_64 java -version 安装MySQL mkdir -p /data/mysql/data chmod 777 /data/mysql/datadocker rm -f mysql docker run -d --name mysql \-p 3306:3306 \-e MYSQL_ROOT_PASSWORDfingard1 \-v /data/mysql/data:/var/lib/mysql …

使用Pandas进行时间重采样,充分挖掘数据价值

大家好,时间序列数据蕴含着很大价值,通过重采样技术可以提升原始数据的表现形式。本文将介绍数据重采样方法和工具,提升数据可视化技巧。 在进行时间数据可视化时,数据重采样是至关重要且非常有用的,它支持控制数据的…

SQL 文本函数

前言 SQL文本函数是SQL语言中非常有用的一类函数,它们用于处理和操作字符串数据。在实际应用中,我们经常需要对数据库中的文本数据进行各种操作,比如提取子串、替换子串、拼接字符串等等。而SQL文本函数可以帮助我们轻松地完成这些任务&#…

SQL SERVER 2008安装教程

SQL SERVER 2008安装教程 本篇文章介绍了安装SQL Server 2008企业版的软硬件配置要求,安装过程的详细步骤,以及需要注意的事项。 安装步骤 (1). 在安装文件setup.exe上,单击鼠标右键选择“以管理员的身份运行”,如下图所示&#…

一文搞懂设计模式之代理模式

大家好,我是晴天,本周我们又见面了。本周有点发烧感冒,更文有点慢了,请大家见谅。言归正传,本周我们继续一起学习一文搞懂设计模式系列文章之代理模式。 什么是代理模式 我们先来看看 GoF 对代理模式的定义&#xff1…

HarmonyOS真机调试报错:INSTALL_PARSE_FAILED_USESDK_ERROR处理

1、 新建应用时选择与自己真机匹配的sdk版本 查看自己设备sdk版本 创建时先择匹配版本: 2、 根据报错提示连接打开处理方案 3、查询真机版本对应的compileSdkVersion 和 compatibleSdkVersion 提示3.1版本之后和3.1版本之前的不同命令(此处为3.0版…

Git企业开发级讲解(四)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、理解分⽀二、创建分支三、切换分⽀四、合并分⽀五、删除分⽀六、合并冲突七、分⽀管理策略…

轻量封装WebGPU渲染系统示例<34>-数据驱动之Json构建场景

场景和数据之间的互通: 场景数据化或者数据化场景,是当前的主流场景数据构成方式。方便传输方便交换甚至是交互。 内置数据互通机制更有利于用户在各种应用场合下实现具体的3D相关的应用需求。用户只需要关心标准的或者约定好的数据定义及操作方式就能方…

PostgreSQL 入门

文章目录 PostgreSQL介绍PostgreSQL和MySQL的区别PostgreSQL的安装PostgreSQL的配置远程连接配置配置数据库的日志 PostgreSQL基本操作用户操作权限操作 图形化界面安装总结 PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库,底层基于C实现。其开源…

Sam Altman 被罢免细节曝光,投资 100+ 公司或成「话柄」?

2022 年 11 月,ChatGPT 发布掀起 AI 狂潮。时隔 1 年,2023 年 11 月,ChatGPT 之父、Sam Altman 的一项人事巨变,再次掀起了一场 AI 界的风暴,只是这次并不是技术革命,而是 OpenAI 巨头换帅——Sam Altman 被…

YOLO目标检测——烟雾检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:烟雾检测数据集可用于监控烟雾情况,实现火灾的早期预警。数据集说明:烟雾检测数据集,真实场景的高质量图片数据,数据场景丰富,含烟雾1个类别标签说明:使用lableimg标注软件标注&am…

QtCreator开发环境的安装和配置

QtCreator开发环境的安装和配置 介绍下载与安装环境介绍示例新建工程示例程序 帮助模式Qt Designer(设计师)Qt Linguist(预言家)结论 介绍 Qt Creator是一个跨平台、完整的集成开发环境(IDE),专门用于Qt开发。它包含了完整的编辑器、调试器和…

数据结构 栈与队列详解!!

一.栈 关于内存中的栈和数据结构中的栈是不同的,本章着重讲的是数据结构的栈。 这是一张关于栈的表达图。从图中可以看出栈很像是一副卡牌,发牌时只能从上取出,即出栈。 而入栈则是像你出牌后,要把你出的牌压在上一张出的牌上面。…

Android跨进程通信,IPC,RPC,Binder系统,C语言应用层调用

文章目录 Android跨进程通信,IPC,RPC,Binder系统,C语言应用层调用()1.概念2.流程3.bctest.c3.1 注册服务,打开binder驱动3.2 获取服务 4.binder_call Android跨进程通信,IPC&#xf…

Swagger示例

对于项目完成后不用写文档,好处还是蛮大的 不需要关注项目其他 只关注接口与实体类即可 SpringBoot项目 依赖 <!--Swagger依赖--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version…

Vue3 插槽 v-slot

插槽 视频链接&#xff1a;尚硅谷vue-插槽章节 不使用插槽的情况下 结果&#xff1a; 1 默认插槽 结果&#xff1a; 2 具名插槽 #b是v-slot:b 的缩写 顾名思义就是指着名字去插入 结果&#xff1a; 3 作用域插槽 可以传递数据的插槽&#xff0c;子组件可以将数据回…

​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第15章 面向服务架构设计理论与实践&#xff08;P527~554&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

经典ctf ping题目详解 青少年CTF-WEB-PingMe02

题目环境&#xff1a; 根据题目名称可知 这是一道CTF-WEB方向常考的知识点&#xff1a;ping地址 随便ping一个地址查看接受的数据包?ip0.0.0.0 有回显数据&#xff0c;尝试列出目录文件 堆叠命令使用’;作为命令之间的连接符&#xff0c;当上一个命令完成后&#xff0c;继续执…