Skip to content

Embedding 基础:文本向量化

Embedding 可以理解为“把文本变成一串数字向量”。这串向量不是随便生成的,它会尽量保留文本的语义信息,让计算机可以用距离、相似度来判断两段文本是否相关。

Embedding 语义空间

传统关键词检索更依赖字面匹配,用户问题和文档用词不一致时,容易搜不到。Embedding 检索更关注语义相似,比如“什么是大语言模型”和“LLM 的定义”虽然字面不同,但语义接近。

语义检索

通过向量相似度找到语义接近的内容,不只依赖关键词是否完全一致。

统一表示

文本、图片、音频等内容都可以被映射成向量,为多模态检索打基础。

RAG 建库

文档分块后,每个 chunk 都要转成向量,才能写入向量数据库。

词向量以单词为单位,把单词映射到向量空间。它能表达一部分语义关系,但容易忽略上下文差异。

  1. 文档分块

    先把文档切成适合检索的 chunk。

  2. 生成文档向量

    用 Embedding 模型把每个 chunk 转成向量。

  3. 写入向量库

    保存向量、原文内容和元数据。

  4. 问题向量化

    用户提问时,也用同一个 Embedding 模型把问题转成向量。

  5. 相似度检索

    比较问题向量和文档向量的距离,取回最相关的 Top K 文档块。

不同厂商接口写法不同,但返回结果通常都要关注这几项:

字段 作用
embedding 生成出的向量,是后续入库和检索的核心
model 使用的 Embedding 模型
usage token 使用情况,影响成本
dimension 向量维度,有些接口不会直接给,需要看返回数组长度

模型选择时主要看三件事:效果、价格、维度。维度越高不一定越好,还要看模型质量、语料适配和检索评测。

选择 适合情况 注意点
API Embedding 快速开发、效果稳定、不想本地部署 注意费用、限流、数据安全
本地 Embedding 私有化、成本可控、数据不能出网 需要本地算力和模型维护
中文向量模型 中文知识库、中文问答 要用真实业务问题测试召回
多语言模型 中英混合、多语言资料 检查不同语言之间的检索一致性