如何选择合适的 Embedding 模型?
检索增强生成(RAG)是生成式 AI 领域里一类相当实用的应用——它允许你用自己手里的数据,来扩充像 ChatGPT 这样的 LLM 模型的知识库。换句话说,它让大模型不再只是“背书机器”,而是能真正结合你的业务数据给出回答。

一套典型的 RAG 系统会用到三种不同的 AI 模型:Embedding 模型、Reranker 模型,以及大语言模型。这篇文章就专门聊聊——怎么根据你的数据类型、语言或特定领域(比如法律)来挑一个合适的 Embedding 模型。
1 文本数据:MTEB 排行榜
如果你处理的是纯文本数据,HuggingFace 上的
MTEB 排行榜
具体怎么用?把“Retrieval A verage”列按降序排列——这个指标最契合向量检索的场景。然后,在排名靠前的模型里,挑一个内存占用最小的。这时候有两个关键参数需要关注:
- :也就是输出向量 y 的长度,模型最终会输出这个维度的向量。
Embedding 向量维度
- :即输入文本块的长度 x,超过这个长度的文本会被截断或拆分。
最大 Token 数
除了按检索任务排序,你还可以进一步筛选:
- :支持法语、英语、中文、波兰语等(例如设置 task=retrieval, Language=chinese)。
语言
- :比如法律文本(例如设置 task=retrieval, Language=law)。
领域
需要留个心眼:部分训练数据最近才公开,导致 MTEB 上有些模型看起来排名很高,实际表现却可能“虚高”。HuggingFace 专门发过一篇博客,教你怎么判断模型排名是否可信。点击模型卡片后,注意两点:
- 找找有没有解释模型训练和评估过程的博客或论文,仔细看看它训练时用了什么语言、什么数据、什么任务。
- 优先选知名公司发布的模型。比如 voyage-lite-02-instruct 这个模型卡片上,列出了 VoyageAI 的其他模型,唯独没有这个——这其实是个危险信号:它很可能是一个过度拟合的模型,不推荐使用。
举个例子,截图里我试了 Snowflake 的新模型 "snowflake-arctic-embed-1",因为它排名靠前、体积小到能在笔记本上跑,而且模型卡片上附了博客和论文的链接,可信度很高。
用 HuggingFace 的好处是,选好模型后万一想换,代码里只要改一行 model_name 就行:
import torch
from sentence_transformers import SentenceTransformer
# Initialize torch settings
torch.backends.cudnn.deterministic = True
DEVICE = torch.device('cuda:3' if torch.cuda.is_a vailable() else 'cpu')
# Load the model from huggingface.
model_name = "WhereIsAI/UAE-Large-V1" # Just change model_name to use a different model!
encoder = SentenceTransformer(model_name, device=DEVICE)
# Get the model parameters and sa ve for later.
EMBEDDING_DIM = encoder.get_sentence_embedding_dimension()
MAX_SEQ_LENGTH_IN_TOKENS = encoder.get_max_seq_length()
# Print model parameters.
print(f"model_name: {model_name}")
print(f"EMBEDDING_DIM: {EMBEDDING_DIM}")
print(f"MAX_SEQ_LENGTH: {MAX_SEQ_LENGTH_IN_TOKENS}")
2 图像数据:ResNet50
有时候你想搜一张和输入图像相似的图片——比如想找更多苏格兰折耳猫的照片,那么上传一张苏格兰折耳猫的图片,搜索引擎就能帮你找到类似的。这种场景下,
ResNet50
对于视频搜索也一样:ResNet50 可以把视频帧转换成 Embedding 向量,然后做相似性搜索,把最相似的视频帧对应回原始视频返回给用户。
3 音频数据:PANNs
音频搜索的逻辑和以图搜图类似——给定一段音频片段,希望能找到相似的音频。常用的模型是
PANNs
4 多模态图像与文本数据:SigLIP 或 Unum
近几年出现了一批能同时处理文本、图像、音频甚至视频的 Embedding 模型。这些模型把多种非结构化数据映射到同一个向量空间里,让你可以:用文本搜图像、用图像生成文本描述、或者以图搜图。
OpenAI 在 2021 年推出的
CLIP
SigLIP
同时,小型 LLM 越来越流行——它们不需要大型云计算集群,在笔记本电脑上就能跑。小模型占用内存少、延迟低、速度更快。
Unum
5 多模态文本、音频、视频数据
如果要做多模态文本-音频的 RAG 系统,通常的思路是先用多模态生成型 LLM 把声音转成文本,生成声音-文本对,然后把文本向量化。检索时仍然像常规 RAG 一样搜文本,最后一步再把文本映射回音频。OpenAI 的
Whisper
Text-to-speech (TTS)
文本-视频的多模态 RAG 思路类似:先把视频映射成文本描述,转成 Embedding 向量,搜索时命中的文本再映射回对应的视频片段。OpenAI 的
Sora
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名