14-54 剑和诗人28 - 用于实时嵌入查找的向量检索

介绍

LLM 成功的关键因素是向量嵌入的使用。通过将文本转换为数字向量表示,我们可以将语义含义映射到数学向量空间。这使得模型能够根据向量之间的相似性在语言中概括模式。

随着我们的模型和数据集变得越来越大,高效地存储、组织和检索这些嵌入变得至关重要。我们需要能够在几毫秒内从数十亿个文本向量中识别相关内容的检索系统。

让我们深入研究向量相似性搜索和检索的最新技术。我将介绍索引、聚类和编码等基本构建块,以及利用近似最近邻、图形数据库、超球面搜索等的尖端算法。

无论您是想构建矢量搜索引擎还是想通过快速、相关的结果增强您的 NLP 模型,本指南都将为您提供关键概念和工具。让我们开始吧!

14-54 剑和诗人28 - 用于实时嵌入查找的向量检索

基本面

在探索高级技术之前,我们需要介绍一些作为矢量检索系统基础的基本构建模块。

嵌入

嵌入是编码语义的密集向量表示。通过将文本转换为数字,我们可以根据向量相似度等操作量化单词和段落之间的关系。

生成嵌入的流行技术包括 word2vec、GloVe 和 BERT。它们使用各种形式的矩阵分解和深度学习来生成将词汇映射到向量的嵌入表。

目标是使向量空间中的接近度反映语义或上下文相似度。因此同义词的嵌入应具有较高的余弦相似度,而不相关的术语则应相距较远。

索引

索引是指允许高效检索和存储数据的结构和算法。就像书籍索引可以帮助您根据关键字快速查找概念一样,嵌入索引有助于从大型数据集中检索相关向量。

常见的索引方法包括倒排索引、kd 树、球树和聚类。这些结构对数据集进行预处理,以加速后续的搜索查询。

当与产品量化等压缩技术结合使用时,索引还可以通过数据汇总来减少存储量。这使得系统能够以较小的内存占用承载数十亿个嵌入。

相似度指标

为了量化两个嵌入之间的关联程度,我们需要相似度指标。这些指标对向量之间的距离或方向进行评分。

余弦相似度使用点积来测量向量之间的角度。对齐越紧密,表示语义相似度越高。欧几里得距离和曼哈顿距离则相反,计算量级差异。

TF-IDF 等排名函数可以在比较过程中进一步加权某些向量维度。这些相似性指标为搜索中的下游相关性排名提供支持。

近似最近邻

要找到查询向量最相似的嵌入,需要对数十亿个候选对象进行详尽的比较。这种最近邻搜索在大规模计算上是难以实现的。

近似最近邻 (ANN) 算法通过牺牲精度来提高速度,提供了一种实用的解决方案。通过高级数据结构和矢量量化,它们将比较限制在最有希望的候选对象上。

Faiss、Annoy 和 ScaNN等领先的 ANN 库可实现闪电般的相似性搜索。这些近似结果的准确率超过 97%,但比蛮力搜索快 10-100 倍。

编码权衡

现代嵌入网络拥有数万亿个参数,可创建极高维空间。直接索引这些向量的成本非常高昂。

我们可以通过编码来缓解这种情况——将向量转换为更适合搜索的低维表示。这确实会损失一些保真度,因此平衡准确性、存储和速度是关键。

流行的编码技术包括二进制散列、乘积量化和通过 PCA 或自动编码器进行降维。我们将在后面的高级技术中介绍领先的解决方案。

高级技术

现在我们已经介绍了基础知识,让我们探索利用近似最近邻、图形、超球面、专用硬件等的前沿技术,为矢量搜索提供业界领先的规模和性能。

倒排索引

倒排索引通过反向查找彻底改变了文本搜索 — 将单词映射到文档,而不是相反。同样的原理也适用于向量检索。

通过在哈希表中枚举所有已知向量及其编码的文本片段,我们构建了一个将嵌入映射到数据的倒排索引。通过巧妙的压缩和编码,这些结构有助于实现闪电般的最近邻查找。

Meta 利用 Faiss 库率先实现了向量的倒排索引。它通过乘积量化压缩向量,然后构建指向这些代码簿的倒排索引。结果是 AI 级向量搜索,压缩率达到 70-80%,准确率超过 95%。

相似图

图形数据库通过对成对关系进行建模来扩展搜索空间。每个节点都是与相关邻居相连的嵌入。然后,遍历会动态发现这些预先计算的相似性。

Pinecone 使用相似性图来实现复杂的矢量查询,比如查找与 X 最相似但不与 Y 最相似的上下文。通过有效地修剪图中不相关的区域,它们可以显示通过纯 ANN 搜索无法实现的定制化、细致入微的结果。

代价是计算时间,因为图遍历比直接查找花费的时间更长。但对于重视结果质量而非原始速度的应用程序来说,相似图可以解锁强大的功能。

超球面索引

球面索引是一种创新方法,它优化了超球面(而不是传统的笛卡尔平面)上的向量遍历。这与人类的直觉排序相符,因为我们更多地考虑概念接近度而不是正交距离。

Weaviate 利用超球面搜索开发了 HNSW 算法。它比那些难以处理曲率和方差的 K-means 等方法表现更好。Weaviate 目前是 Semantic Sc​​holar 矢量搜索引擎等主要部署的幕后推手。

专用硬件

虽然算法改进加速了向量搜索,但利用 GPU、TPU 和 ASIC 可以实现数量级的规模。大规模并行处理可将吞吐量提高 100 倍,以承载数万亿个嵌入。

Pinecone 和 Weaviate 等初创公司提供基于 GPU 和 TPU 云的无服务器架构。Vector AI 的 CURRAY 硬件使用定制 ASIC 以每秒每台服务器提供 11,000 个查询。Groq 以每秒一万亿次操作进行矢量搜索。

通过协同设计算法和硅片来处理嵌入,专用硬件克服了传统云服务面临的瓶颈。这为价格实惠的下一代 LLM 提供了支持。

重新排序

初始 ANN 搜索通常利用紧凑代码来提高速度,但会牺牲一些准确性。我们可以通过针对原始向量重新运行有希望的候选集,然后重新评分以提高相关性来恢复这一点。

假设一个编码查询发现了 1000 个近似邻居。我们可以将这些浮点数传递给 GPU,以便根据完整向量进行并行评分。鉴于重新排序的计算量很大,我们可以重新获得精度,而不会严重影响延迟。

这为 Pinecone 的分层缓存等分阶段架构提供了动力,该架构结合了 CPU、GPU 和 TPU。混合系统通过多级重新排序提供高精度的实时矢量搜索。

分布式架构

将海量向量语料库分散到机器集群中,可以实现水平扩展。通过仔细分区和负载平衡,我们可以并行展开搜索,实现每秒数百万次查询的累计吞吐量。

Weaviate 的模块化分片允许跨节点管理单个向量集合。Faiss 同样支持跨联网机器对巨型索引进行切片。然后集群在查询时进行协调以检索分区并进行合并。

分布式向量解锁了处理数万亿个嵌入的部署——足以对 Wikipedia 进行 100 倍以上的编码。这种分布式拓扑支撑着为 AI 2.0 应用程序提供动力的网络规模向量引擎。

专门的距离度量

虽然余弦相似度提供了向量对齐的标准度量,但自定义指标可以更好地捕捉概念包含等细微关系。这支持语义术语消歧等高级用例。

初创公司 Anthropic 使用一种量化子集关系的距离度量 CAST 构建了 Constitutional AI。通过将人类偏好编码为向量空间上的约束,他们生成了可控的语言模型,从而避免不良行为。

专门针对特定任务的相似度评分可实现更有意义、更可控的向量检索,从而解锁新的应用。预计定制指标和奇异几何图形将突破向量搜索所能实现的界限。

未来机会

随着 PyTorch、TensorFlow 和 HuggingFace 等框架让所有人都能训练自定义模型,有效利用这些嵌入将成为下一个前沿。专门构建的向量检索为基于多功能构建块的可组合 AI 铺平了道路。

通过结合语音、视觉、语言和知识表示的最佳模块,我们可以构建 GPT-4 等单一模型无法实现的多模式体验和助手。矢量搜索的民主化访问使这一未来今天就可以实现。

随着矢量数据库规模、性能和功能的不断扩大,我们只触及了可能性的表面。未来几年,由所有数据矢量嵌入驱动的融合数字媒体将推动各行各业的转型。革命在于建立联系——连接数据、概念和能力。

趋势

扩展矢量搜索功能的主要趋势包括更广泛的编码支持、与图形和知识库的融合以及集成机器学习。

超越文本的编码

虽然目前大部分焦点集中在文本和图像矢量上,但我们正在扩展到音频、视频、传感器流等。寻找这些模式之间的联系需要多功能矢量空间来映射不同的数据格式。

整合知识

将向量相似度与外部知识图谱和本体相结合可提高结果相关性。如果两个点在向量空间中距离较近但编码的概念不同,则降低这些关系的权重可提高准确率。

融合

将最佳的矢量搜索、图形和机器学习整合成无缝体验,可实现下一代应用程序。我们看到领先供应商之间的整合以及在幕后利用这些技术的垂直解决方案。

向量的未来不仅仅是检索信息,还包括构建能力。随着模型的规模和范围不断扩大,找到将其预测与其他模块联系起来的途径将推动可组合人工智能的发展。向量搜索仍然是将这些构建块联系在一起的粘合剂。

未来范围

在增强向量检索方面仍有巨大的空间——从专用硬件上每个服务器超过数万亿个嵌入的庞大规模,到融合多种编码方案的增强维度。

大量初创企业的涌入继续拓展这一领域——构建模型状态图,重点检索狭窄的背景,内存硬件在纳秒内提供结果以实现实时响应,新的训练机制允许随着数据的演变动态更新活动索引。

随着通过托管服务和简化许可,利用向量的障碍消失,通过搜索提供神奇的体验成为下一波创新浪潮。

连接图像、文本、音频和视频之间的可逆映射,轻松实现跨模式转换,这提供了这样的机会。潜在空间之间的这种相互作用可根据细微背景和用户当下的需求定制响应。

从很多方面来看,当专有海量数据被编码到民主化、可互操作的向量空间中时,我们仅仅触及了可能性的表面。从个性化医疗到无限可探索的创作引擎,向量搜索照亮了前进的道路。我们只需将这些点连接起来。

结论

现代深度学习的突破在很大程度上依赖于向量搜索来大规模释放价值。随着模型的规模和范围越来越大/越来越小,检索相关切片以满足特定用户需求决定了其在现实世界中的采用。

我介绍了设计下游 AI 可使用的矢量嵌入管道的关键原则和工具。随着数万亿个数据点即将触手可及,将模块化功能与融合体验相结合将催化下一个技术革命时代。

希望本指南既能提供坚实的基础,又能让您一窥未来可能的发展,即通过向量连接数据、领域和仍难以想象的可能性。在不断扩展的向量宇宙中,只要能建立连接,机会就无处不在。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32智能交通灯控制系统教程

目录 引言环境准备智能交通灯控制系统基础代码实现:实现智能交通灯控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:交通灯管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通灯控…

【UE5】仅修改结构体的若干个数据

蓝图中的结构体变量 | 虚幻引擎4.27文档 (unrealengine.com) 连线连到傻,因为如果某个变量set空值也一起过去了。一查发现有这个节点。

Kubernetes 为pod指定DNS

在k8s里面,默认创建pod会给pod默认分配一个默认的dns,这个dns是哪来的呢?可不可以改成其他的dns呢? 先进入到pod里面来,可以看到这里面默认设置的DNS服务器,这个服务器地址为10.96.0.10。这个地址是k8s自动…

Qt入门(二):Qt的基本组件

目录 Designer程序面板 1、布局Layout 打破布局 贴合窗口 2、QWidget的属性 3、Qlabel标签 显示图片 4、QAbstractButton 按钮类 按钮组 5、QLineEdit 单行文本输入框 6、ComboBox 组合框 7、若干与数字相关的组件 Designer程序面板 Qt包含了一个Designer程序 &…

【Notepad】Notepad_6.3.1 的中文版安装详情

目录 🌼1. Notepad的认识 🌼2. Notepad中文版安装详情 🌼1. Notepad的认识 Notepad 是 Windows 操作系统中的一个文本编辑器程序,通常用于创建和编辑简单的文本文件,如文本文档 (.txt)。它非常轻量且功能简单&#…

Spring-AOP(二)

作者:月下山川 公众号:月下山川 1、什么是AOP AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期…

算法学习笔记(8.2)-动态规划入门进阶

目录 问题判断: 问题求解步骤: 图例: 解析: 方法一:暴力搜索 实现代码如下所示: 解析: 方法二:记忆化搜索 代码示例: 解析: 方法三:动态规划 空间…

全球激光位移传感器市场规模逐渐扩大 企业数量不断增多

全球激光位移传感器市场规模逐渐扩大 企业数量不断增多 位移传感器又称为距离传感器,是用于测量与被测物体之间距离的一种传感器。根据工作原理,位移传感器可以分为超声波位移传感器、红外线位移传感器、激光位移传感器等。其中,激光位移传感…

2024年06月CCF-GESP编程能力等级认证Python编程五级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 在Python中,print((c for c in “GESP”))的输…

vue实例和容器的一夫一制——04

//准备容器 <div classapp> <h1>{{mag}}</h1> </div> //准备容器 <div classapp> <h1>{{mag}}</h1> </div> //准备容器 <div classapp2> <h1>{{name}}</h1> </div> <script> // 验…

深度整合全球资源,分贝通打造高效、合规的海外差旅管理平台

在全球化商业活动的背景下,中国企业出海已成为常态。然而,随着海外差旅市场的全面增长,企业在海外支出管理上面临诸多挑战。据2023年数据显示,分贝通出海差旅业务GMV同比增长高达500倍,这一增长背后隐藏着企业对于更省钱、更高效管控方式的迫切需求。 面对与日俱增的开支,企业开…

嵌入式代码升级——IAP

目录 IAP的特点 实现 IAP 功能 STM32 正常的程序运行流程 STM32 加入IAP后的运行流程 程序执行流程 BootLoader程序 APP1程序 APP2程序 验证操作步骤 IAP&#xff08;In-Application Programming&#xff09;指的是在应用程序运行时对其自身的Flash存储器进行编程的操作…

LLM - Transformer 的 多头自注意力(MHSA) 理解与源码

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140281680 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 在 Transformer 中,多头自注意力机制 (MHSA, Multi-Head Self-Attenti…

【pytorch18】Logistic Regression

回忆线性回归 for continuous:y xwbfor probability output:yσ(xwb) σ:sigmoid or logistic 线性回归是简单的线性模型&#xff0c;输入是x&#xff0c;网络参数是w和b&#xff0c;输出是连续的y的值 如何把它转化为分类问题?加了sigmoid函数&#xff0c;输出的值不再是…

Gen4Gen:多概念个性化图像生成的数据驱动革新

个性化文本到图像生成模型在用户控制生成过程方面取得了重要进展。这些模型能够通过少量训练样本学习并合成包含新颖个性化概念的图像&#xff0c;例如用户的宠物或特定物品。然而&#xff0c;现有技术在处理多概念个性化时存在局限性&#xff0c;尤其是在生成包含多个相似概念…

挂耳式耳机哪款比较好、挂耳式耳机推荐高性价比

近年来&#xff0c;开放式耳机行业蓬勃发展&#xff0c;受到了越来越多消费者的喜爱&#xff0c;然而&#xff0c;这里边也夹着不专业的产品&#xff0c;低质量的生产不仅不能带来舒适的体验&#xff0c;甚至可能对耳朵造成潜在的伤害。挂耳式耳机哪款比较好&#xff1f;为了帮…

初识STM32:寄存器编程 × 库函数编程 × 开发环境

STM32的编程模型 假如使用C语言的方式写了一段程序&#xff0c;这段程序首先会被烧录到芯片当中&#xff08;Flash存储器中&#xff09;&#xff0c;Flash存储器中的程序会逐条的进入CPU里面去执行。 CPU相当于人的一个大脑&#xff0c;虽然能执行运算和执行指令&#xff0c;…

WPF依赖附加属性

依赖附加属性的定义 基本过程&#xff1a;声明、注册、包装 依赖附加属性必须在依赖对象&#xff0c;附加属性不一定&#xff0c;关注的是被附加的对象是否是依赖对象 快捷方式&#xff1a;propa tab 关键字&#xff1a;RegisterAttached // 方法封装 public static int …

Java客户端调用SOAP方式的WebService服务实现方式分析

简介 在多系统交互中&#xff0c;有时候需要以Java作为客户端来调用SOAP方式的WebService服务&#xff0c;本文通过分析不同的调用方式&#xff0c;以Demo的形式&#xff0c;帮助读者在生产实践中选择合适的调用方式。 本文JDK环境为JDK17。 结论 推荐使用Axis2或者Jaxws&#…

推出全新的无线通讯模块(1SJ型、2DT-158型、2GT-001型、1YN型、2AE型)助力物联网新发展

相关型号&#xff1a;LBAA0QB1SJ-296 LBAA0XV2DT-158 LBAA0XV2GT-001 LBEE5KL1YN-814 LBEE5PK2AE-564 全新的无线通讯模块&#xff08;1SJ型、2DT-158型、2GT-001型、1YN型、2AE型&#xff09;助力物联网新发展&#xff08;明佳达&#xff09; 1、1SJ型集成LoRaWAN调制解调器…