什么是嵌入?向量、相似性和搜索

什么是嵌入?

Scrapeless Web Unlocker 可获取您可以为嵌入和语义搜索准备的渲染网页内容。

嵌入是对象在向量空间中的数字表示,旨在通过向量的位置表达有用的关系。对象可以是句子、产品描述、图像或其他类型的输入。文本嵌入模型将文本转换为有序的数字列表。检索系统可以将该列表与其他向量进行比较,以查找相关内容。

重要的问题是模型学会了将什么视为相关。相似性可能意味着共享的主题、对问题的可能答案或可比较的视觉内容。嵌入并不独立地确定文档是否真实、当前或适合特定读者。这些属性属于周围的数据和评估工作流程。

数字所代表的含义

嵌入坐标描述了一种学习的表示,而不是一组可读的数据库列。您通常无法仅通过检查向量将一个坐标标记为“价格”,另一个标记为“可靠性”。含义分布在表示中,训练目标影响模型保留哪些区别。

考虑一个包含关于重置密码、更改电子邮件地址和编辑账单地址的文章的说明性支持集合。询问恢复账户访问的客户可能使用的标题的确切单词没有一个。一个有用的嵌入模型将该问题放在密码文章附近,因为这些文本与相同的任务相关。这描述了预期行为,而不是每个模型的测量结果。

嵌入与文档标识符不同。标识符在文本发生变化时应保持稳定。当材料变化影响文本的含义时,应重新生成嵌入。保持两者可以让您将检索到的向量追溯到实际来源,而不是将匿名的数字记录视为证据。

文本如何变得可搜索

文本嵌入以经过训练的模型开始,该模型将输入转换为特定模型配置的固定长度表示。标记化、模型处理和组合中间表示的方法共同影响输出。使用模型的文档化输入格式和长度限制,因为截断一段文字可能会删除回答问题的句子。

关于 句子嵌入的语义相似性 的研究表明,独立编码的段落是有用的:它们的向量可以在不通过完整语言模型共同处理每个可能对的情况下进行比较。这一特性支持在用户提交查询之前对集合进行索引。

在搜索时,系统编码问题,找到候选段落,应用访问和元数据约束,并返回源文本。一些检索模型使用不同的查询和文档编码器。请遵循模型期望的配对;仅仅相同的向量长度并不会使表示兼容。

相似性分数需要明确定义的含义

相似性分数衡量特定嵌入空间中通过数学比较指定的关系。余弦相似性比较向量方向。点积受到方向和大小的影响,除非向量被标准化。欧几里得距离测量分离。正确的选择取决于模型和索引的构建方式。

将分数视为排名信号。它并不自动是一个置信概率,相同的数值阈值在更改模型或源材料后可能表现不同。一个将相关和无关段落分开的分数在产品手册中可能在短目录名称上表现不佳。根据您实际打算搜索的集合中的示例进行校准决策。

索引可以使用近似最近邻方法来减少搜索工作。这引入了一个单独的问题:索引是否返回了在精确比较下嵌入模型会排名最高的候选项?当搜索质量下降时,请分别检查表示质量和索引行为。否则,您可能在缺少结果是由于过滤或索引配置导致的情况下替换模型。

嵌入、关键字和确切标识符

当不同的措辞描述相似的意图时,嵌入是有用的,而当确切文本很重要时,关键字匹配则有价值。产品代码、错误标识符、引用短语和不常见名称通常值得精确匹配路径。语义系统可以检索到设备的合适邻近模型,而错过用户请求的确切版本。

混合检索设计在对其进行排名之前,将词汇候选与语义候选相结合。对于包含错误代码和常用语言描述的支持查询,将代码作为过滤器或词汇信号保留,并使用描述进行语义匹配。测试组合;添加更多检索阶段并不保证更好的答案。

密集段落检索方法 说明了问题与段落之间关系的学习。其任务特定性质很重要:一个经过培训以匹配问题与答案的模型不一定是找出重复法律条款或分组产品照片的最佳选择。 开始使用 Scrapeless 进行抓取

在嵌入之前准备网页

嵌入准备应该保留有用的内容,并删除扭曲检索的材料。导航菜单、重复的页脚、同意覆盖和浏览器检查消息都可以成为向量。如果这些文本在许多文档中占主导地位,则搜索系统可能会以令人信服的相似度评分返回它们,即使意图文章从未被收集。

使用 Web Unlocker 作为需要呈现页面内容的网页检索阶段。收集后,检查最终页面的身份和预期文章内容,移除不相关的外观,并保留规范的源 URL。 干净的网页文本管道 开发提取和块划分方面的工作流程。嵌入生成仍然是一个单独的模型操作。

在有意义的边界(如标题及其解释)周围拆分文档。关于资格的块应保留限制要约的条件。关于安装的块应保留平台要求。重叠可以帮助保留跨边界的上下文,但不加选择的重叠也会创建近似重复的内容,使其他有用结果被淹没。

与每个块一起存储标题路径、收集时间、源标识符和模型配置。保留访问限制作为元数据,由检索层强制执行。如果在生成后排除未经授权的文本,那是太晚了,因为它已经被传递到模型的上下文中。

实用检索评估

用代表性的问题和关于哪些段落实际上回答它们的判断来评估嵌入。构建涵盖普通请求、模糊措辞、精确标识符、过时内容和集合无法回答的问题的示例。保持一组保留样本,以便重复调整不会仅仅针对熟悉的示例进行优化。

对于每个查询,在评估生成的答案之前检查候选段落。询问相关段落是否被检索,资格是否在块划分中得以保留,以及是否有不相关的近似重复替代了它。记录失败类别。检索失败、提取失败和答案生成失败需要不同的修复。

一个说明性的产品支持测试可能会询问某个设备是否支持特定操作系统下的配件。如果段落中提到配件但描述的是不同的设备版本,则是不够的。添加版本元数据,并将结果与纯语义搜索进行比较。有用的结果是正确的证据选择,而不只是高分。

嵌入在RAG中的适用性

检索增强生成使用检索到的证据作为生成模型的上下文。嵌入可以帮助选择这些证据,但它们并不是整个RAG系统。收集过程、权限、检索规则、提示构造和源呈现都会影响答案。

原始的 检索增强生成研究 将检索与生成结合,而不是仅依赖存储在模型参数中的信息。在实际的网络数据应用中,已更改的文档可以被收集和索引,而不将每个内容更新视为模型训练项目。

不要将向量作为证据传递给读取器。返回基本段落和源链接,以及足够的周围文本以检查其含义。如果证据薄弱或矛盾,则应用程序应说明。一份流畅的答案无法修复缺失的来源。

刷新和替换嵌入

嵌入维护始于文档身份和变更检测。当页面更改时,识别受影响的块并替换它们的向量以及相关的源文本。当页面被移除时,确保其旧块无法继续作为当前证据出现。仅凭集合时间戳并不能证明原始声明仍然有效。

将模型变更视为索引迁移。记录旧模型和新模型配置,在相同评估集上比较检索质量,并在迁移完成之前保持集合分开。在一个相似度比较中混合无关的嵌入空间会产生没有可靠解释的分数。

为集合、提取、模型推断、存储和查询工作分别预算。 无刮擦定价 涵盖集合基础设施;它不描述独立嵌入模型或向量数据库的成本。这种分离使识别哪个阶段需要优化变得更容易。

结论

嵌入将内容转化为支持有用比较的表示。其价值来自模型、数据和检索任务之间的关系。以干净的源段落为起点,保持其身份,并评估系统是否找到回答实际问题的证据。维护良好的集合与适度的检索机制可以比充满不相关文本的复杂索引更有用。

建立更干净的源集合

使用无刮擦的工具收集呈现的公共页面,然后准备您嵌入工作流程所需的段落。

今天注册并获得 $5的免费信用 — 无需信用卡.

领取您的 $5 信用 →

常见问题

问:嵌入和向量是一样的吗?

嵌入是通常存储为向量的表示,但并不是每个向量都是学习得来的嵌入。手写的测量列表也可以是一个向量。使嵌入有用的是它的表示保留了与任务相关的关系。

问:嵌入可以取代数据库吗?

嵌入不会取代真实的数据库。它们支持像相似性搜索这样的操作,而数据库则保留记录、权限和精确值。存储每个嵌入与所表示的记录或段落之间的稳定连接。

问:两个嵌入模型可以共享一个索引吗?

不同模型的向量不应被比较,除非明确建立了兼容性。匹配维度是不够的。保持特定模型的集合,并在更换搜索应用之前评估迁移。

问:高相似度得分是否证明答案正确?

高相似度得分并不能证明事实的正确性。这意味着所选度量发现了表示的相似性。验证源段落、其日期和范围,以及它是否实际上支持所呈现的答案。

问:Scrapeless 创建嵌入吗?

在这里描述的工作流程中,Scrapeless 检索网络内容,另一个嵌入模型创建向量。保持这些阶段的独立性可以让您更改集合设置,而不必假设嵌入模型或检索索引也必须更改。

参考文献