什么是 Embedding
1.1 一句话解释
Embedding(嵌入)= 把文字转换成数字向量
1.2 形象理解
想象你要给每个人建立档案
传统方式(文字)

Embedding 方式(向量)

这些数字向量包含了所有信息,而且类似的人向量会更接近。
1.3 核心特点

三个核心特点
- 1. 固定维度:无论文本长短,都转换为固定长度的向量(如 768 维、1536 维)
- 2. 语义类似:意思相近的文本,向量也相近
- 3. 可计算:可以用数学方法计算类似度
2. 为什么需要 Embedding
2.1 计算机不懂文字
问题: 计算机如何判断两段文字是否类似?
错误方法:字符串匹配

正确方法:Embedding + 向量类似度

2.2 应用场景

2.3 实际案例对比
场景:在知识库中搜索
用户问题: “如何重置密码?”
知识库中的文档:
- 1. “忘记密码怎么办”
- 2. “修改登录凭证的方法”
- 3. “公司年会时间安排”
传统关键词搜索:
- • 搜索 “重置密码”
- • 结果:无匹配 (由于知识库中没有”重置”这个词)
Embedding 语义搜索:
- • 计算问题的 embedding
- • 与所有文档的 embedding 计算类似度
- • 结果:
- • 文档1:”忘记密码怎么办” – 类似度 0.89
- • 文档2:”修改登录凭证的方法” – 类似度 0.76
- • 文档3:”公司年会时间安排” – 类似度 0.12
3. Embedding 的工作原理
3.1 从词向量到句子向量
早期:Word2Vec(词向量)

特点:
- • 只能处理单个词
- • 类似的词向量相近(apple 和 orange)
现代:Transformer(句子向量)

特点:
- • 可以处理整个句子/段落
- • 理解上下文关系
- • 捕捉语义信息
3.2 Embedding 模型的训练

训练方式举例:
- 1. 对比学习
- • 正样本对:”天气真好” <-> “今天天气不错” → 向量要接近
- • 负样本对:”天气真好” <-> “我喜爱编程” → 向量要远离
- 2. 问答对训练
- • 问题:”如何学习 Python?”
- • 答案:”可以从基础语法开始…”
- • 目标:问题和答案的 embedding 要接近
3.3 维度的意义
为什么是 768 维或 1536 维?
每一维可以理解为捕捉某种语义特征:

直观比喻:
- • 1 维:只能表明”大小”(一条线)
- • 2 维:能表明”长宽”(一个平面)
- • 3 维:能表明”长宽高”(一个空间)
- • 1536 维:能表明 1536 种不同的语义特征(超空间)
4. 向量类似度计算
4.1 三种常见类似度算法
余弦类似度(最常用)
公式:

图示:

优点:
- • 不受向量长度影响
- • 只关注方向
- • 适合文本类似度
欧氏距离

点积(内积)

对比
余弦类似度:文本语义比较、文档检索排序、内容推荐系统(多数场景用的都是这个)
欧氏距离:空间位置测量、聚类分析、异常检测
点积类似度:快速初步筛选、计算资源有限场景(说白了,就是比较拉)
4.2 实际例子

余弦类似度计算:

4.3 类似度阈值设置

5. 常见的 Embedding 模型
5.1 国际主流模型

5.2 国内主流模型

5.3 开源 vs 闭源

5.4 模型性能对比
中文检索任务 Benchmark:

推荐选择:
- • 中文 RAG:阿里 text-embedding-v4
- • 预算有限:bge-large-zh(开源)
- • 英文为主:OpenAI text-embedding-3-small
6. 向量数据库介绍
6.1 为什么需要向量数据库?
问题: 假设你有 100 万个文档的 embedding
暴力搜索:

向量数据库:

6.2 常见向量数据库对比

6.3 Milvus 架构

核心概念:
- 1. Collection(集合)
- • 类似关系型数据库的”表”
- • 存储同一类型的向量
- 2. Field(字段)
- • 向量字段:存储 embedding
- • 标量字段:存储元数据(ID、文本、标签等)
- 3. Index(索引)
- • HNSW:高性能,内存占用大
- • IVF_FLAT:平衡性能和内存
- • DiskANN:处理超大规模
- 4. Partition(分区)
- • 按业务逻辑分区(如按日期、类别)
- • 提高查询效率
6.4 向量检索流程

© 版权声明
文章版权归作者所有,未经允许请勿转载。



AI大模型全套系统化学习🗂→@AI大模型学习小助理
大学线性代数 离散数学全忘了
通俗易懂,为作者点赞
收藏了,感谢分享