面包屑图标 当前位置: 首页
AI资讯
热点详情

RAG应用选择最佳Embedding模型完整指南

AI热点日报
AI热点日报时间:2026-06-28
热点解读

首先,需要明确一个关键问题:在 RAG 应用中,Embedding 模型扮演着“翻译官”的角色,它将文本、图像等数据对象转化为数值向量,从而让机器能够理解语义。然而,面对市面上众多模型,如何挑选出最适合的那一个?答案非常直接:取决于你的具体业务场景和实际需求。接下来,我们将一步步深入分析这一过程。

首先,需要明确一个关键问题:在 RAG 应用中,Embedding 模型扮演着“翻译官”的角色,它将文本、图像等数据对象转化为数值向量,从而让机器能够理解语义。然而,面对市面上众多模型,如何挑选出最适合的那一个?答案非常直接:取决于你的具体业务场景和实际需求。接下来,我们将一步步深入分析这一过程。

01. 确定具体用例

在着手选择模型之前,先理清以下几个问题:

  • 通用模型能否满足我的需求?
  • 或者,是否存在特殊诉求?比如数据处理上是否只涉及文本、图片这类单一模态,还是需要多模态?另外,数据是否集中在某个特定领域,例如法律、医学这类专业性极强的场景。

坦诚而言,大多数情况下,针对你所需要的模态,选择一个通用模型就已足够。不必一开始就把问题复杂化。

02. 选择通用模型

那么,通用模型该如何挑选?HuggingFace 上的 MTEB 排行榜是一个不错的参考入口。该榜单列出了市面上各类开源和专有文本 Embedding 模型,每个模型都附带参数规模、内存占用、向量维度、最大 token 数等硬性指标,以及在检索、摘要等任务上的具体得分。

在为 RAG 应用选择模型时,需要重点关注以下几个维度:

任务:MTEB 排行榜顶部提供了多种任务选项卡。由于 RAG 的核心是检索(Retrieval),直接点击该标签即可。

语言:必须与你的数据集语言完全对齐,这一点无需赘述。

得分:它反映了模型在特定基准上的表现。不同任务采用的评估指标不同,但总体范围都在 0 到 1 之间,分数越高越好。

模型规模与内存:这是一个硬性约束。模型越大,检索性能通常越好,但延迟也会更高。而且,有时大模型可能出现过拟合,在生产环境中表现反而不如小模型。一个务实的做法是:先用一个轻量级的小模型快速搭建 RAG 原型,待整套流程跑通后,再更换更大、性能更强的模型进行精调。

向量维度:维度越长,理论上能捕获的数据细节越丰富。但真的有必要将文档数据用 8192 维来表示吗?大概率不需要。相反,维度小一些,推理速度更快,存储也更节省。关键在于信息捕获与运行效率之间找到平衡点。

最大 token 数量:对于多数 RAG 场景来说,将分块粒度控制在单个段落即可,512 token 的模型基本能满足需求。只有在处理超长文本的特殊场景时,才需要 token 数量更大的模型。

03. 在 RAG 应用中评估模型

MTEB 排行榜的参考价值很大,但需要谨慎使用。因为那些结果是由模型方自行报告的,不排除有些模型将 MTEB 数据集纳入训练数据,导致分数虚高。更关键的是,基准数据集与你的真实业务数据往往存在偏差。因此,最终判断必须基于你自己的数据进行评估。

3.1 数据集

从 RAG 应用的数据中,抽取一小部分制作成标注好的数据集。例如下面这个示例:

LanguageDescription
C/C++A general-purpose programming language known for its performance and efficiency...
JavaA versatile, object-oriented programming language designed to have as few implementation dependencies as possible...
PythonA high-level, interpreted programming language known for its readability and simplicity...
JavaScriptA high-level, dynamic programming language primarily used for creating interactive and dynamic content on the web...
C#A modern, object-oriented programming language developed by Microsoft...
SQLA domain-specific language used in programming and managing relational databases...
PHPA server-side scripting language designed primarily for web development...
GolangA statically typed, compiled programming language designed by Google...
RustA systems programming language focused on safety and concurrency...

3.2 创建 Embedding

接下来,利用 PyMilvus 中的模型工具,为这些数据生成向量。代码示例如下:

def gen_embedding(model_name):
    openai_ef = model.dense.OpenAIEmbeddingFunction(
        model_name=model_name, 
        api_key=os.environ["OPENAI_API_KEY"]
    )
    
    docs_embeddings = openai_ef.encode_documents(df['description'].tolist())
    return docs_embeddings, openai_ef

然后将生成的 Embedding 存入 Milvus 的 collection 中:

def sa ve_embedding(docs_embeddings, collection_name, dim):
    data = [
        {"id": i, "vector": docs_embeddings[i].data, "text": row.language}
        for i, row in df.iterrows()
    ]
    
    if milvus_client.has_collection(collection_name=collection_name):
        milvus_client.drop_collection(collection_name=collection_name)
    milvus_client.create_collection(collection_name=collection_name, dimension=dim)
    
    res = milvus_client.insert(collection_name=collection_name, data=data)

3.3 查询

定义好查询函数,便于后续检索:

def query_results(query, collection_name, openai_ef):
    query_embeddings = openai_ef.encode_queries(query)
    res = milvus_client.search(
        collection_name=collection_name, 
        data=query_embeddings, 
        limit=4,  
        output_fields=["text"],
    )
    result = {}
    for items in res:
        for item in items:
            result[item.get("entity").get("text")] = item.get('distance')
    return result

3.4 评估 Embedding 模型性能

我们以 OpenAI 的两个模型——text-embedding-3-smalltext-embedding-3-large——进行一次对比。评估指标很多,这里重点看两个最基本且直观的:准确率(Precision)和召回率(Recall)。

准确率:检索结果中,真正相关的内容占比。

Precision = TP / (TP + FP)

召回率:从整个数据集中,成功检索出多少真正相关的内容。

Recall = TP / (TP + FN)

查询 1:auto garbage collection

相关项:Java, Python, JavaScript, Golang

Ranktext-embedding-3-smalltext-embedding-3-large
1❎ Rust❎ Rust
2❎ C/C++❎ C/C++
3✅ Golang✅ Java
4✅ Java✅ Golang
Precision0.500.50
Recall0.500.50

查询 2:suite for web backend server development

相关项:Java, JavaScript, PHP, Python(此处存在一定主观判断)

Ranktext-embedding-3-smalltext-embedding-3-large
1✅ PHP✅ JavaScript
2✅ Java✅ Java
3✅ JavaScript✅ PHP
4❎ C#✅Python
Precision0.751.0
Recall0.751.0

通过这两个查询的对比,结果已能看出一定差异。当然,这仅仅是一个起点。要使评估结果具有说服力,还需要扩大数据量,增加查询数量。数据集越大、测试样例越多,评估结论才越可靠。

04. 总结

在 RAG 应用中,选择正确的 Embedding 模型是决定检索质量的关键环节。正确的路径是:从业务需求出发,在 MTEB 等排行榜上筛选出通用候选模型,然后利用自己的数据集进行真实评估,重点关注准确率和召回率。只有这样挑选出来的 Embedding 模型,才能真正提升 RAG 应用的召回准确率。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:RAG应用选择最佳Embedding模型完整指南要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/RAG/2024120459480.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-14 19:48
面壁智能CTO谈端侧AI:从打字机到大模型的进化突围

面壁智能聚焦端侧AI,不拼参数大小,而是通过知识密度提升与模型风洞技术,将大模型压缩至手机、汽车等设备。其MiniCPM以2B参数超越同期8B对手。CTO曾国洋22岁主导训练中国首个大语言模型CPM-1。端侧AI追求“默契系统”,在用户开口前预判需求,已在吉利、上汽大众等车型落地应用。

AI热点2026-07-14 19:48
印度IT巨头HCL Tech投350亿卢比建50MW AI数据中心

印度IT巨头HCLTech投资最高350亿卢比建设AI数据中心,容量可扩展至50MW,提供从设计到运营的端到端服务,旨在满足政府及企业日益增长的算力需求,抢占印度快速增长的数据中心市场,并推动AI基础设施布局。

AI热点2026-07-14 19:48
小米具身智能机器人新工站双侧螺母上件成功率达98%

小米具身机器人在汽车工厂自攻螺母上件工站实现双侧作业成功率98%,接近人工水平。同时在新工站分别达到90%成功率,从单一操作拓展至多工站协同,验证了具身智能在复杂工业环境的落地能力。

AI热点2026-07-14 19:48
DeepSeek梁文锋身价360亿美元成AI新首富

全球AI行业正迎来新的财富格局,DeepSeek创始人梁文锋凭借其公司的迅猛发展,个人财富急剧膨胀,一举超越多位硅谷知名人物,成为全球AI公司领域的新首富。以下将详细解析其身价飙升背后的关键因素及公司发展历程。 一、身价飙升至360亿美元,超越多位AI大佬 根据最新彭博亿万富豪指数,DeepSeek

延伸阅读