90%的程序员都在错误选择Embedding模型!6步评估框架+代码实战,让你避开所有坑,小白也能秒变向量专家!

通过通过将原始输入转换为固定大小的高维向量,捕捉语义信息,embedding(嵌入)模型在构建RAG、推荐系统,甚至自动驾驶的模型训练过程中都产生着至关重要的影响。

即使 OpenAI、Meta 和 Google 等科技巨头,也选择在近些年来,在 embedding 模型的研发上持续加大投入。以 OpenAI 为例,其最新的 text-embedding-3-small生成 1536 维向量,在保持高语义表达能力的同时,实现了更低的延迟和更小的模型体积,适用于对性能敏感的大规模语义检索场景。Meta 则早在 2019 年就推出了 DLRM(Deep Learning Recommendation Model),以 embedding 层为基础构建用户和物品的向量表示,用于广告点击率预测。DLRM 至今仍是支撑 Meta 推荐系统的核心组件,服务于其每天数千亿次的推荐请求。

但要如何选择 embedding 模型?本文将提供一个实用的评估框架,我们可以根据自身需求选择最合适的 embedding 模型。

01

明确任务和业务需求

在选择模型前,首先需要明确你的核心目标:

  • 任务类型:你要构建的是语义搜索、推荐系统、分类管道,还是其他类型的应用?不同任务对 embedding 表征信息的方式有不同要求。例如:
  • 语义搜索:需要如 Sentence-BERT 等模型,能够捕捉查询与文档之间的语义细节,使相似概念在向量空间中彼此接近。
  • 分类任务:embedding 需要反映类别结构,相同类别的输入应靠得更近,方便下游分类器区分。常用模型如 DistilBERT 和 RoBERTa。
  • 推荐系统:embedding 需反映用户-物品的关联,可采用如神经协同过滤(NCF)等基于隐反馈训练的模型。
  • ROI 评估:根据业务上下文权衡性能与成本。对于如医疗诊断等关键任务,提升准确率可能事关生死,可接受使用更昂贵但更精准的模型。而高并发的成本敏感应用则要精打细算,判断性能提升是否值回成本。
  • 其他限制条件
  • 多语言支持:通用模型往往对非英文内容表现不佳,可能需要多语言专用模型。
  • 专业领域支持:通用模型无法理解特定术语,比如医疗中的 “stat” 或法律中的 “consideration”。需考虑 BioBERT、LegalBERT 等专业模型。
  • 硬件/延迟要求:模型体积和推理速度直接影响部署的可行性。

02

评估数据特性

你的数据特性将直接影响模型选择。需考虑以下几点:

  • 数据模态:文本、图像、音频还是多模态?选用匹配的数据类型模型:
  • 文本:BERT、Sentence-BERT;
  • 图像:CNN 或 Vision Transformer;
  • 多模态:CLIP、MagicLens;
  • 音频:CLAP、PNN 等。
  • 领域特定性:是否需要专用模型?OpenAI 等通用模型对大众话题表现良好,但在医疗、法律等专业场景下可能抓不到细微差别,需考虑 BioBERT 等行业专用模型。
  • Embedding 类型选择
  • 稀疏 embedding(如 BM25)擅长关键词匹配;
  • 稠密 embedding(如 BERT)擅长语义理解;
  • 实践中常用混合方案:用稀疏 embedding 做精准匹配,稠密 embedding 做语义召回。

03

调研可用模型

了解任务与数据后,开始调研候选模型:

  • 受欢迎程度:选择社区活跃、使用广泛的模型更有保障,易于排障、更新快、文档丰富。
  • 文本:OpenAI embeddings、Sentence-BERT、E5/BGE;
  • 图像:ViT、ResNet,文本图像对齐可用 CLIP、SigLIP;
  • 音频:PNN、CLAP 等。
  • 版权与许可
  • 开源模型(MIT、Apache 2.0)适合自建部署,灵活性高但需运维能力;
  • 第三方 API 模型部署简单但费用持续、存在数据隐私和合规性顾虑;
  • 特别是金融、医疗等行业,自托管部署可能是唯一选择。

04

评估候选模型

初步筛选后,需在真实数据上测试模型质量:

  • 质量评估
  • 对于语义检索、RAG 应用,重点关注:结果的真实性(faithfulness)相关性(relevance)上下文精度召回率
  • 可借助工具如 Ragas、DeepEval、Phoenix、TruLens-Eval,统一评估流程。
  • 数据集选择也很重要,可基于真实案例、用 LLM 合成、或使用工具(如 Ragas、FiddleCube)构造。
  • 基准测试
  • 可参考公开 benchmark,如 MTEB(用于语义检索)。
  • 注意不同场景排名差异大,通用 benchmark 表现佳不代表真实环境中也优。
  • 应用自己的样本测试,防止模型对 benchmark 过拟合、在实际数据上反而不如人意。
  • 负载测试
  • 自部署模型时,需模拟真实并发请求,测试 GPU 利用率、内存占用、吞吐和延迟。
  • 有些模型单机测试效果不错,但在高负载下资源消耗过大,影响上线。

一般来说,比较常见的基准测试榜单有以下几种:

(1)文本数据:MTEB 排行榜

HuggingFace 的 MTEB leaderboard 是一个一站式的文本 Embedding 模型榜,我们可以了解每个模型的平均性能。

  • 可以将“Retrieval Average”列进行降序排序,因为这最符合向量搜索的任务。然后,寻找排名最高、占内存最小的模型。
  • Embedding 向量维度是向量的长度,即 f(x)=y 中的 y,模型将输出此结果。
  • 最大 Token 数是输入文本块的长度,即 f(x)=y 中的 x ,您可以输入到模型中。
  • 除了通过 Retrieval 任务排序外,还可以根据以下条件进行过滤:
  • 语言:支持法语、英语、中文、波兰语。(例如:task=retrieval, Language=chinese)。
  • 法律领域文本。(例如:task=retrieval,Language=law)

(2)图像数据:ResNet50

有时候我们可能想要搜索与输入图像相似的图片。比如,当我们想寻找更多苏格兰折耳猫的图片。在这种情况下,您可以上传一张苏格兰折耳猫的图片,并要求搜索引擎找到类似的图片。

ResNet50 是一种流行的 CNN 模型,最初由微软在 2015 年使用 ImageNet 数据训练。

同样,对于视频搜索,ResNet50 仍然可以将视频转换为 Embedding 向量。然后,对静态视频帧进行相似性搜索,返回给用户最相似的视频作为最匹配结果。

(3)音频数据:PANNs

类似于以图搜图,也可以基于输入的音频片段搜索相似音频。

PANNs(预训练音频神经网络)是常用的音频搜索 Embedding 模型,因为 PANNs 基于大规模音频数据集预训练,并且擅长音频分类和标记等任务。

(4)多模态图像与文本数据:SigLIP

近几年,涌现了一批针对多种非结构化数据(文本、图像、音频或视频)混合训练的 Embedding 模型。这些模型能够在同一向量空间内同时捕获多种类型的非结构化数据的语义。

多模态 Embedding 模型支持使用文本搜索图像、为图像生成文本描述或以图搜图。

OpenAI 在 2021 年推出的 CLIP 是标准的 Embedding 模型。但由于其需要用户自行进行微调,并不好用,所以到了 2024 年,谷歌推出了的 SigLIP(Sigmoidal-CLIP)。该模型在使用 zero-shot prompt时取得了不错的表现。

(5)多模态文本、音频、视频数据

多模态文本-音频 RAG 系统大多使用多模态生成型 LLM。这类应用首先将声音转换为文本,生成声音-文本对,然后将文本转换为 Embedding 向量。之后我们可以像往常一样使用 RAG 来检索文本。在最后一步,文本被映射回音频。

OpenAI 的 Whisper 可以将语音转录为文本。此外,OpenAI 的 Text-to-speech (TTS) 模型也可以将文本转换成音频。

多模态文本-视频的 RAG 系统使用类似的方法首先将视频映射到文本,转换为 Embedding 向量,搜索文本,并返回视频作为搜索结果。

OpenAI 的 Sora 可以将文本转换成视频。与 Dall-e 类似,您提供文本提示,而 LLM 生成视频。Sora 还可以通过静态图像或其他视频生成视频。

05

集成部署规划

选定模型后,考虑集成策略:

  • 权重选择:直接使用预训练权重上手快,但若需领域定制化,需投入资源微调。微调虽能提升效果,但需评估其投入产出比。
  • 部署方式选择
  • 自托管:控制力强、可降低大规模使用成本,数据私密性好,但需运维能力;
  • 云服务 API:部署快、运维省心,但存在网络延迟、成本累积问题。
  • 系统集成设计
  • 包括 API 设计、缓存策略、批处理方案;
  • 选择合适的向量数据库存储与检索 embedding,如 Milvus、Faiss 等。

06

端到端测试

在生产上线前,务必进行闭环测试:

  • 性能验证
  • 用实际业务数据验证是否符合预期;
  • 检查检索相关指标(MRR、MAP、NDCG),准确率指标(Precision、Recall、F1),以及运行效率(吞吐、P95/P99 延迟)。
  • 鲁棒性测试
  • 模拟不同输入情况,确保模型能稳定应对边缘情况与复杂数据。

如有必要,我们可以可以在自己的数据集上评估Embedding模型。以下是一个Embedding模型的流程示例:

数据集准备如下:

接下来,我们采用pymilvus[model]对于上述数据集生成相应的向量Embedding。关于pymilvus[model]使用,参见https://milvus.io/blog/introducing-pymilvus-integrations-with-embedding-models.md

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 save_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)

查询

我们定义查询函数,方便对于向量Embedding进行召回。

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

评估Embedding模型性能

我们采用 OpenAI的两个 Embedding模型,text-embedding-3-smalltext-embedding-3-large,对于如下两个查询进行比较。有很多评估指标,例如准确率、召回率、MRR、MAP等。在这里,我们采用准确率和召回率。

准确率(Precision) 评估检索结果中的真正相关内容的占比,即返回的结果中有多少与搜索查询相关。

Precision = TP / (TP + FP)

其中,检索结果中与查询真正相关的内容 True Positives(TP), 而 False Positives(FP) 指的是检索结果中不相关的内容。

召回率 (Recall)评估从整个数据集中成功检索到相关内容的数量。

Recall = TP / (TP + FN)

其中,False Negatives (FN) 指的是所有未包含在最终结果集中的相关项目

对于这两个概念更详细的解释,参见 https://zilliz.com/learn/information-retrieval-metrics

查询 1auto 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

查询 2suite 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

在这两个查询中,我们通过准确率和召回率对比了两个Embedding模型text-embedding-3-smalltext-embedding-3-large。我们可以以此为起点,增加数据集中数据对象的数量以及查询的数量,如此才能更有效地评估Embedding模型。

总结

选型的关键是遵循以下六步:

  1. 明确业务目标与任务类型
  2. 分析数据特性与领域需求
  3. 调研现有模型与授权模式
  4. 用测试集和 benchmark 严格评估
  5. 设计部署与集成方案
  6. 进行全链路上线前测试

要记住,最合适的模型不一定是 benchmark 分最高的,而是最契合你业务实际需求与技术约束的模型

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1124528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于遗传算法优化的VMD信号去噪算法:样本熵与信噪比双重适应度函数提升信噪比及故障诊断特征提取研究

Matlab 基于遗传算法优化的VMD信号去噪算法 创新点:基于样本熵作为适应度函数 创新点2:基于信噪比作为适应度函数 提高信噪比 本人研究方向信号处理特征提取与故障诊断算法轴承振动信号中的微弱冲击特征总是被噪声淹没,这给旋转机械故障诊断…

测试人员压力管理:构建可持续的截止日期应对框架——面向软件质量守护者的专业生存指南

引言:被压缩的时间与被放大的责任 在敏捷开发与DevOps普及的浪潮中,测试工程师站在质量防线的最后关卡。IBM研究显示,78%的测试人员经历过程度不同的截止日期焦虑(2025),而因时间压力导致的漏测问题占生产…

美国地产交易被AI大模型颠覆,RAG+混合搜索效率提升40%,程序员都在学!

在中国,买一套房,除了要有钱,还要看居住证、看社保、看户籍地;要关注当地限购政策,关注交易税,关注银行贷款、资金审核、税率变化……各种乱七八糟的文件与政策看得人头晕眼花? 其实美国也一样…

S32K144 Bootloader开发实战:CAN与串口双剑合璧

S32K144的bootloader,包括CAN和串口的,上 S32K144的bootloader,包括CAN和串口的,上下位机全部开源,提供使用指导和有限的代码解释,仅供学习使用,无uds,无uds,无uds&#…

硕士论文过审第一步:paperzz 论文查重功能,怎么帮你避开重复率雷区?

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 论文查重https://www.paperzz.cc/check 对研究生来说,论文写完后的 “重复率检测” 是 “临门一脚”—— 但很多人要么不知道 “不同检测版本的区别”,要么踩坑 “查重不…

MATLAB四旋翼仿真中的滑模控制、反步控制与PID控制方法及公式文献参考

MATLAB四旋翼仿真 滑模控制 simulink 三种控制方法 有公式和文献参考1.滑模SMC 2.反步控制 backsteping control 3.pid控制四旋翼无人机在天上飞得稳不稳,全靠控制算法撑腰。今天咱们用MATLAB/Simulink实战三种硬核控制方案,手把手教你建模仿真。老规矩…

GRBL三轴在STM32F103C8T6上的移植与脱机运行控制指南:源码资料打包,含OLED屏...

主页全部资料打包!GRBL三轴脱机运行移植STM32F103C8T6 GRBL_V1.1f三轴移植到STM32F103C8T6,并添加脱机控制,使用OLED屏和旋转编码器控制,联机脱机都可使用。 价格为本人主页内全部资料代码打包的价格,持续搬运更新新代…

IP5385至为芯支持C口双向快充的30W到100W移动电源方案芯片

英集芯IP5385是一个广泛用于移动电源,充电宝,户外应急电源等便携设备的移动电源管理SOC芯片,支持30W-100W双向充放电。兼容UFCS、PD3.0、QC、SCP、FCP、AFC等主流快充协议。实现跨品牌设备的快速充电。提供USB-A2、双向USB-C1,USB…

【Linux命令大全】003.文档编辑之pico命令(实操篇)

【Linux命令大全】003.文档编辑之pico命令(实操篇) ✨ 本文为Linux系统文档编辑与文本处理命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 (关注不迷路哈!!&…

生活电器:重塑日常的科技力量

从清晨唤醒人的智能音箱,到早餐时刻高效运转的破壁机,再到夜晚守护安睡的空气净化器,生活电器已深度融入现代家庭的每一个角落。它们以科技为内核,以实用为导向,将人们从繁琐的家务劳动中解放出来,不断重塑…

深度探索无线充电黑科技:LCL-S拓扑结构的那些事儿

无线电能传输LCL-S拓扑结构(左边两电平逆变器,右边不可控整流结构) 基于滑模控制的移相控制 仿真效果较好 matlab/simulink 感性耦合电能传输系统 还有PI控制的模型,可以用做对比无线电能传输技术,这个听起来像是科幻小说里的玩意儿&#xff…

WordPress数据可视化插件定制开发最佳公司

数据可视化在WordPress网站中的重要性在当今数字化时代,数据已经成为企业决策的核心驱动力。仅仅拥有海量数据是不够的,关键在于如何将这些数据以直观、易懂的方式呈现给用户。WordPress作为全球最流行的内容管理系统,占据了超过43%的网站市场份额,但其原生功能在数据可视化方面…

罗德与施瓦茨HMP4040 HMP4030可编程直流电源四通道

产品简述: 深圳市伊璐华科技有限公司是ROHDE&SCHWARZ罗德与施瓦茨的代理商。罗德与施瓦茨公司是电子测试与测量设备在欧洲影响力大的制造商。我们的测试与测量仪器和系统成为全球在研究,开发,生产和服务中的标准。在模拟和数字通信领域中…

基于STM32的智能红绿灯控制系统

基于STM32的智能红绿灯控制系统 第一章 系统设计背景与需求分析 传统红绿灯多采用固定配时方案,在车流量动态变化的场景中存在明显局限:高峰时段易导致拥堵,低谷时段则造成路口资源浪费。据统计,固定配时路口的通行效率比动态调节…

Delta 台达PLC-EH3铆压机程序:3轴控制方案详解及电气设计(含MODBUS通讯、伺服...

Delta/台达PLC-EH3铆压机程序。 3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLC MODBUS通讯控制台达A2伺服扭矩,自动上下料,每个点位可跳点,可设位置和扭矩,PLC程序有完整的注释,触摸…

今日头条视频下载方法汇总 高清无水印 (2026 最新实测)

在刷今日头条的时候,经常会遇到一些干货满满、剪辑精良的视频,比如教程、纪录片片段、搞笑剪辑、热点解说等,想保存下来反复观看或者二次学习,但直接保存往往自带水印。那么问题来了 今日头条视频怎么无水印下载? 手机…

adb.exe logcatadb.exe: command not found

出现 adb.exe: command not found 的原因通常有两个: 路径未共享: 虽然 WSL 能够访问 Windows 文件,但它不会自动把所有 Windows 的环境变量(PATH)都加到 Linux 里。 未包含在 PATH 中: adb.exe 所在的文件夹没有在 Linux 的搜索路径($PATH)中。 你需要告诉 Ubuntu 你的…

【Linux命令大全】003.文档编辑之rgrep命令(实操篇)

【Linux命令大全】003.文档编辑之rgrep命令(实操篇) ✨ 本文为Linux系统文档编辑与文本处理命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 (关注不迷路哈!!&am…

JavaScript 中 async + await 和直接同步方式执行有什么区别和意义

结论先给一句话:async / await 并不是把异步变成同步,而是用“同步写法”来写“异步代码”,本质仍然是异步。下面我从执行方式、事件循环、性能、使用意义、对比示例一步一步讲清楚。一、最核心的区别一句话版方式本质同步代码阻塞线程&#…

全球实验室耗材市场:技术驱动下的区域竞争与未来增长图谱

实验室耗材作为科研、医疗和工业检测的“基础工具箱”,其市场规模与技术创新紧密关联。QYResearch数据显示,2024年全球实验室耗材市场规模达10.21亿美元,预计2031年将增至14.6亿美元,2025-2031年复合增长率(CAGR&#…