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 可使用的矢量嵌入管道的关键原则和工具。随着数万亿个数据点即将触手可及,将模块化功能与融合体验相结合将催化下一个技术革命时代。

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

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

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

相关文章

C++ Qt 自制开源科学计算器

C Qt 自制开源科学计算器 项目地址 软件下载地址 目录 0. 效果预览1. 数据库准备2. 按键&快捷键说明3. 颜色切换功能(初版)4. 未来开发展望5. 联系邮箱 0. 效果预览 普通计算模式效果如下: 科学计算模式效果如下: 更具体的功能演示视频见如下链接…

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

ffmpeg滤镜-drawtext-命令行

使用 FFmpeg 在视频上添加文字可以通过 drawtext 滤镜来实现。这个滤镜允许你指定字体、大小、颜色、位置等。 基本用法 以下命令将 "Hello, World!" 添加到视频的顶部左侧: ffmpeg -i input.mp4 -vf "drawtexttextHello, World\!:fontcolorwhite…

JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发&#xff0c;后来被Google收购并于2006年开源。识别效果不好&#xff0c;速度还慢&#xff0c;但是好早好早了。 一、POM依赖 <!--OCR识别https://digi.bib.uni-mannheim.de/tesserac…

14-26 剑和侠客 – 预训练模型三部曲3 – 机器人时代来临

概述 在第 1 部分和第 2 部分中&#xff0c;我们讨论了适用于文本和图像任务的预训练模型&#xff0c;并探索了当今常用的模型。我们分析了这些模型的架构以及如何将它们用于特定任务。实现 AGI 所需的两个主要支柱是语言理解和机器的视觉能力。有许多任务与这两种能力有关。 …

Syncthing一款开源去中心化和点对点文件同步工具

Syncthing&#xff1a;一款开源的文件同步工具&#xff0c;去中心化和点对点加密传输&#xff0c;支持多平台&#xff0c;允许用户在多个设备之间安全、灵活地同步和共享文件&#xff0c;无需依赖第三方云服务&#xff0c;特别适合高安全性和自主控制的文件同步场景。 &#x…

4. kvm存储虚拟化

kvm存储虚拟化 一、命令行工具管理虚拟磁盘1、查看虚拟磁盘2、添加磁盘3、删除磁盘 二、qcow2格式的磁盘文件1、创建磁盘文件2、差量镜像/快速创建虚机2.1 创建差量镜像2.2 准备配置文件2.3 创建虚拟机2.4 批量部署虚拟机 三、存储池 storage pool1、类型2、在线迁移2.1 规划后…

【基于R语言群体遗传学】-14-种群起源的相对似然

我们可以将预测的基因型比例视为在种群中看到一组特定等位基因的概率。如果种群在等位基因频率上存在差异&#xff0c;我们可以使用基因型来推断个体起源于每个种群的相对可能性。大家可以先看一下之前的博客&#xff1a;群体遗传学_tRNA做科研的博客-CSDN博客 种群起源的相对似…

pytest-yaml-sanmu(六):YAML数据驱动测试

如果说 pytest 中哪些标记使用得最多&#xff0c;那无疑是 parametrize 了&#xff0c; 它为用例实现了参数化测试的能力&#xff0c;进而实现了数据驱动测试的能力。 1. 使用标记 parametrize 的使用需要提高两个内容&#xff1a; 参数名 参数值 pytest 在执行用例时&…

javascript DOM BOM 笔记

Web API API的概念 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细…

el-scrollbar实现自动滚动到底部(AI聊天)

目录 项目背景 实现步骤 实现代码 完整示例代码 项目背景 chatGPT聊天消息展示滚动面板&#xff0c;每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。 实现步骤 采用element ui 的el-scrollbar作为聊天消息展示组件。 通过操作dom来实…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

共筑智能未来 | 思腾合力闪耀2024世界人工智能大会(WAIC 2024)

在刚刚结束的2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;上&#xff0c;思腾合力作为行业领先的人工智能基础架构解决方案提供商&#xff0c;凭借卓越的产品和解决方案&#xff0c;成为展会上的亮点之一。此次盛会不仅展示了全球人工智…

Android 性能优化之启动优化

文章目录 Android 性能优化之启动优化启动状态冷启动温启动热启动 耗时检测检测手段TraceView使用方式缺点 Systrace环境配置使用方式TraceView和Systrace比较 AOP统计耗时环境配置使用 优化白屏优化异步加载优化环境配置使用 延迟加载优化AppStartup 源码下载 Android 性能优化…

网站高性能架构设计——高性能缓存架构

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、缓存基础 1.缓存简介 缓存提升性能的幅度&#xff0c;不只取决于存储介质的速度&#xff0c;还取决于缓存命中率。为了提高命中 率&#xff0c…

HarmonyOS Next应用开发之系统概述

一、鸿蒙系统概述 鸿蒙系统可以分为华为鸿蒙系统&#xff08;HUAWEI HarmonyOS&#xff09;和开源鸿蒙系统&#xff08;OpenHarmony&#xff09;&#xff0c;华为鸿蒙系统是基于OpenHarmony基础之上开发的商业版操作系统。他们二者的关系可以用下图来表示&#xff1a; 1.1、…

Linux 创建新虚拟机的全过程图解

一、创建新虚拟机 1.选择自定义 2.直接下一步 3.选择稍后安装 4.设置虚拟机名和安装位置 5.配置处理器&#xff08;处理器数量&#xff1a;4、每个处理器的内核&#xff1a;2&#xff09; 6. 内存选择 7.网络类型 8. IO控制器类型-默认推荐 9.磁盘类型-默认推荐 10.选择虚拟磁…

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver gdb是一款开源的、强大的、跨平台的程序调试工具。主要用于在程序运行时对程序进行控制和检查&#xff0c;如设置断点、单步执行、查看变量值、修改内存数据等&#xff0c;从而帮助开发者定位和修复代码中的错误。 gdbserve…

Mysql 高性能索引

引言 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引类型包括B-Tree索引、哈希索引、空间数据索引&#xff08;R-Tree&#xff09;、全文索引。 索引的类型 在MySQL中&#xff0c;索引是在 存储引擎层 而不是服…

论文总是写不好?这么向kimi提问再试试!【图文大全套】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 你是否有这样的困惑&#xff1a;论文为什么总是达不到预期的高标准&#xff1f;写作过程中总感觉缺乏方向和灵感&#xff1f;在文献搜索和数据分析上耗费了大量时间却收获甚微&#xff…