文本向量化

文本向量化通过嵌入模型,将文本表示为数值向量。这样就能对向量进行数学运算,用于比较或组织文本。这种表示可以捕捉短语之间有用的关系,却不存储人类可读的解释来说明它们为何相关。

作者:Ai Flowi · 发布于

嵌入既不是生成的答案,也不是真实性标签。两段文本的主题可能相关,但陈述的事实相互矛盾。用于检索时,应将原始文本及其来源与向量一同保留,让应用检查候选内容究竟说了什么。

文本如何转化为表示?

嵌入模型接收文本输入,并根据其学习到的表示返回向量。模型及其配置定义了向量可相互比较的空间。文本长度处理、不同语言的表现和表示维度,取决于具体模型,而不是“嵌入”这个通用词语。

向量坐标是数学值,不是主题、作者或审批状态这样的普通字段。不要假设某个坐标可以解读为“已获授权”,也不要认为坐标相近就意味着来源权威。元数据和证据审核提供这些独立的含义。

语义搜索条目解释搜索系统如何利用表示检索候选。本页关注更早的问题:表示是什么,以及何时可以有效比较不同表示。

空间兼容比形状相同更重要

存储的文档向量与查询向量,必须来自兼容的嵌入空间,其距离才有意义。使用同一个预期模型和配置,是直接的起点。迁移需要明确判断兼容性,而不只是检查两个输出是否都是数字列表。

向量长度相同,不能证明兼容。不同模型可以为相同坐标位置赋予不同含义。比较它们的输出,可能产生一个数值结果,却对检索任务没有有用的解释。

更换嵌入模型时,应计划重新生成文档向量,除非模型文档明确说明了受支持的兼容路径。保留源文本和模型配置,以便重新生成。不要仅因为数据库接受载荷,就将新的查询向量与旧的文档向量混用。

同义改写与矛盾的小示例

考虑以下虚构句子:“重置账户密码”“更改账户凭据”和“不要更改账户密码”。前两句描述相关行动。第三句拥有相同主题和措辞,却反转了指令。

概念关系示例;未编造向量值
配对应考察的问题相近不能证明什么
重置密码 / 更改凭据所选模型能否有用地表示这种同义改写。不能证明两段描述的是同一项获允许的操作流程。
重置密码 / 不要更改密码否定含义是否对任务重要。不能证明相关段落与指令一致。
重置密码 / 更换账户持有人相关账户词汇是否掩盖了不同的行动。不能证明两个请求可以归入相同的目标类别。

这里未提供这些句子的嵌入坐标或比较结果。这些值取决于指定模型的运行。本示例确立的是待测试的问题,而不是假装展示某个未指定的提供商如何对文本排序。

AI Flowi Workflow 中从 Message 到嵌入的过程

Text Embedder 的目录描述为:使用指定的嵌入模型,为给定消息生成嵌入。其 message 字段为必填,接受 Message;embedding_model 同样为必填,接受 Embeddings。名为 embeddings 的输出类型为 JSON。

这里,复数类型名 Embeddings 表示接受的模型连接,而输出 JSON 表示生成的嵌入数据。两者是不同的约定。不能仅因显示标签相似,就将 JSON 向量输出当作嵌入模型对象。

Embedding Similarity 接收 embedding_vectors,这是接受 Data 或 JSON 的必填输入,并以 JSON 形式返回 similarity_data。可选择的 similarity_metric 列出 Cosine Similarity、Euclidean Distance 和 Manhattan Distance。其描述明确指出比较的是两个嵌入向量。

概念路径是将 Message 传入 Text Embedder,然后为 Embedding Similarity 单独准备一对向量。目录未提供向量对的构建模式,因此本条目不编造 JSON 键的组织方式,也不声称可以直接链式执行。尝试这种设计前,应检查真实输出和比较输入。

目录中已记录;未经 Ai Flowi 生产环境测试

表示相关条目可在目录中查看;通过外部模型生成向量,需要你自己的嵌入服务账户和 API 密钥,提供商费用在 Flowi 使用费用之外另行支付。

相似度度量能告诉你什么

余弦相似度比较向量方向;欧几里得距离和曼哈顿距离以不同方式衡量间隔。距离和相似度不应采用相同的排序约定来解读。在判断哪个值表示候选更接近之前,应检查所选度量。

目录只给出了这些度量的名称,未定义返回的 JSON 模式、归一化行为或阈值。不要仅凭名称推断这些细节。只有将比较值与所选模型和输入准备方式下、带有相关性标签的案例联系起来,它才有用。

相似度也不能证明记录是否最新、是否可访问,或是否得到权威来源支持。这些检查属于元数据和应用规则。“在嵌入空间中接近”描述的是表示关系,而非完整决策。

常见错误与更适合其他方法的情况

不要假设嵌入能保留精确标识、可靠地解决每项任务中的否定含义,或在不同语言中的表现相同。应测试实际打算使用的语言和文档风格。公开示例应使用虚构文本,因为向提供商发送敏感段落,需要单独作出数据处理决策。

检索已知标识时,应使用精确查询;需要匹配字面短语时,应使用普通文本匹配。当基于含义的关系重要时,嵌入才有用。在精确匹配任务中加入表示步骤,可能引入不确定性,却无助于满足要求。

存储和检索可继续参考向量数据库及现有的知识库配置指南。后续应用阶段可参考使用案例和 Agent 组件。生成向量只是一个操作,并不能证明整个检索或问答工作流已通过测试。