文本向量化(Embedding)模型
📚 文本向量化(Embedding)模型知识总结
1. ✅ 什么是文本向量化(Embedding)?
➡️ 定义
将文本(单词、句子、段落、文档)通过特定模型映射为 稠密向量(Dense Vector),用于表示文本的 语义信息。
➡️ 为什么需要?
- 计算机不理解自然语言,只能理解数字。
- 向量化后可以:
- 相似度计算(语义检索、聚类)
- 分类任务(情感分析、标签分类)
- 问答系统(向量检索+大模型)
- 推荐系统(基于语义的推荐)
2. ✅ 向量化的核心任务
场景 |
目标 |
技术路径 |
文本相似度 |
判断文本之间语义是否相似 |
向量表示 + 相似度计算 |
信息检索 |
检索与查询语义相关的文档 |
向量索引 + 相似度排名 |
文本分类 |
判断文本属于哪个类别 |
向量表示 + 分类模型(ML/DL) |
问答系统(RAG) |
基于知识库回答用户提问 |
向量搜索 + 大模型生成 |
多模态分析 |
跨模态(图片、视频、音频)表示统一 |
跨模态向量模型(CLIP) |
3. ✅ 常见的文本向量模型分类
3.1 静态词向量(单词级别,已过时但基础)
模型 |
特点 |
缺点 |
Word2Vec |
词向量,能表达词之间相似性 |
不能解决多义词问题 |
GloVe |
结合全局与局部信息 |
表达能力弱 |
FastText |
子词嵌入,处理 OOV 词更好 |
表达句子无能为力 |
3.2 句子/文档级别嵌入(现代主流)
模型 |
简介 |
适用语言 |
SBERT |
基于BERT,优化为句子嵌入 |
多语言 |
SimCSE |
无监督/有监督句子嵌入 |
英文为主,部分中文 |
Text2Vec |
中文优化的句子嵌入模型 |
中文 |
M3E |
中英文双语句向量模型 |
中英文 |
BGE |
专为检索优化的通用嵌入模型 |
中文/英文 |
3.3 多模态向量模型(图文/视频/音频)
模型 |
简介 |
适用场景 |
CLIP |
图文对齐嵌入 |
图文搜索 |
OFA |
图文、OCR、VQA多模态任务 |
更复杂 |
BLIP |
图文生成/理解 |
多模态任务 |
4. ✅ 主流文本嵌入模型介绍
4.1 BGE(BAAI General Embedding)系列
- 出自:北京智源研究院(BAAI)
- 版本:
bge-small
(256维,轻量)
bge-base
(768维,效果平衡)
bge-large
(1024维,效果最优)
- 亮点:
- 针对检索任务优化
- 多语言支持(M3版本)
- 文本检索与RAG问答强项
- 适合场景:知识库、问答系统、相似度计算
4.2 M3E
- 出自:Moka AI
- 优势:
- 版本:
moka-ai/m3e-small
(CPU友好)
moka-ai/m3e-base
/ m3e-large
- 适合场景:信息检索、分类、知识库
4.3 Text2Vec
- 出自:Shibing624(开源社区)
- 专注中文优化
- 优势:
- 轻量级(低内存/CPU可用)
- 适合中文分类、相似度任务
- 场景:资源有限的中文文本任务
4.4 GTE (General Text Embedding)
- 出自:Google
- 覆盖多语言
- 版本:
gte-small
gte-base
gte-large
- 场景:多语言检索、分类
4.5 MiniLM / SBERT
- 适合英语任务
- 模型小,计算快
- SBERT更适合做相似度匹配
5. ✅ 文档向量化处理流程
➡️ 文档预处理
- 文件加载
PDF
:PyMuPDF、pdfminer、PyPDFLoader
Word
:python-docx
文本
:标准读取
- 清洗
- 切分
- 按段落、句子、字符切分
- 推荐使用
LangChain
的 RecursiveCharacterTextSplitter
➡️ 嵌入生成
from langchain.embeddings import HuggingFaceEmbeddings
embedding_model = HuggingFaceEmbeddings(model_name="BAAI/bge-large-zh")
vectors = embedding_model.embed_documents(text_chunks)
6. ✅ 向量检索/存储(向量数据库)
常见数据库
名称 |
特点 |
推荐场景 |
FAISS |
轻量,单机快速 |
小型应用 |
Milvus |
分布式,支持亿级数据 |
企业级 |
Chroma |
快速上手,支持多模态 |
轻量应用 |
Weaviate |
自动化管理,带API |
快速构建 |
基本流程
- 文档 → 嵌入向量
- 存入向量库
- 查询时:
7. ✅ 模型评估指标和方法
➡️ 常用指标
指标 |
含义 |
Recall@K |
前K个结果中包含正确答案比例 |
MRR |
Mean Reciprocal Rank |
NDCG |
排名质量衡量 |
➡️ 评估方法
- 构造问答对 / 检索对
- 生成查询向量,查找相似向量
- 计算准确率/召回率/排名指标
- 比较不同模型效果
8. ✅ 模型选型建议(总结)
场景 |
推荐模型 |
推荐数据库 |
中文RAG检索 |
BGE-Large-zh / M3E |
FAISS/Milvus |
英文或多语言检索 |
M3E / GTE |
FAISS/Weaviate |
中小型项目,轻量需求 |
Text2Vec / M3E-small |
Chroma/FAISS |
跨模态搜索(图文) |
Taiyi-CLIP / OpenAI-CLIP |
Milvus/Weaviate |
9. ✅ 推荐资源
➡️ 开源模型地址
BAAI/BGE
: https://huggingface.co/BAAI/bge-large-zh
M3E
: https://huggingface.co/moka-ai/m3e-base
Text2Vec
: https://huggingface.co/shibing624/text2vec-base-chinese
GTE
: https://huggingface.co/models?search=gte
Taiyi-CLIP
: https://huggingface.co/IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese
➡️ 向量数据库
- FAISS:https://github.com/facebookresearch/faiss
- Milvus:https://milvus.io/
- Chroma:https://github.com/chroma-core/chroma
- Weaviate:https://weaviate.io/
10. ✅ 未来趋势
- 更轻量化和高效的多语言模型
- 多模态嵌入统一化(文本、图片、视频等)
- 向量数据库自动优化(智能索引、混合搜索)
- 私有化RAG系统与大模型紧密集成
🚀 总结一句话
如果做中文知识检索和问答系统,用 BGE
系列准没错!
如果是多语言或者轻量级部署,M3E
和 Text2Vec
是很好的选择!
跨模态搜索就上 CLIP
或 Taiyi-CLIP
!
所有评论(0)