
做RAG的兄弟应该都有这个痛苦明明文档里就有答案就是召回不来。用户问这个API的rate limit是多少检索系统给你翻出几十条无关紧要的配置说明就是没有那条关键的限制说明。问题出在哪90%是embedding模型没选对。上周我实在忍不住了干脆把市面上主流的几个embedding模型都拉出来测了一圈——BGE、GTE、Jina用我自建的中文问答测试集跑了个遍。结果说实话差距比我想象的大得多。我为什么要做这个测试其实起因很简单。我们在做一个内部文档的RAG系统用的是OpenAI的text-embedding-3-small。召回效果怎么说呢凑合但远不够好。经常要命中3-5条才能找到真正有用的那一条用户体验很差。而且用国外模型还有个现实问题速度慢、成本高、还要考虑数据合规。我们内部文档都是中文用中文优化过的模型理论上应该效果更好、速度更快。但我搜了一圈发现网上评测大多是英文的或者就是C-MTEB榜单上的那些分数。榜单分数好看但实战效果怎么样没人说。没人测那我就自己测。怎么测的测试集我搞了个自建的大概500条中文问答对。都是真实场景的技术文档问答、常见问题、配置说明、API使用指南。指标我选了两个召回率k前k个结果里有没有正确答案k1,3,5,10MRR正确答案在第几个位置越靠前分数越高跑分环境是本地MacBook ProM1芯片用sentence-transformers加载模型。数据切分是简单的问答对用问题作为query用对应的答案段落作为candidate。核心代码长这样from sentence_transformers import SentenceTransformer加载模型model SentenceTransformer(‘BAAI/bge-large-zh-v1.5’)encodequery_embedding model.encode(query)doc_embeddings model.encode(documents)计算相似度用cosine similarityfrom sklearn.metrics.pairwise import cosine_similarityscores cosine_similarity([query_embedding], doc_embeddings)[0]不想折腾环境的话用OpenAI API也行但那个我这里不展开说了。测试结果差距真的很明显先说结论BGE在中文检索上确实有统治力GTE是均衡选手Jina是多语言和长文本的专家。具体跑分是这样的注意这是我自建小规模测试集的结果仅供参考精确数据请看C-MTEB官方榜单▪ BGE-large-zh-v1.5召回率172%召回率589%MRR0.78这表现是真能打。我们在内部系统上线后命中准确率直接提升了15个百分点。原本要翻3-5页才能找到答案现在基本上第一条就是对的。BGE是国内团队做的BAAI专门优化了中文语料。从C-MTEB榜单来看它在中文检索任务上确实处于第一梯队这点和我的实测结果是一致的。缺点也有模型尺寸大推理速度相对慢内存占用高。如果你资源有限这个可能不太友好。▪ GTE系列我测的是gte-base-zh召回率168%召回率585%MRR0.73GTE的表现也很稳定略逊于BGE但差距不大。它是阿里出的特点就是均衡速度、效果、模型尺寸各方面都不差。如果你要一个省心的选择GTE是不错的。不用太担心某个场景特别拉垮属于那种不会让你失望的选手。▪ Jina-embeddings-v2-base-zh召回率163%召回率581%MRR0.69纯中文检索的表现Jina确实比BGE和GTE差一截。但要注意Jina的强项是多语言和长文本。如果你要做的是跨语言检索比如英文查询找中文文档或者文档段落特别长超过512 tokenJina的优势就出来了。C-MTEB榜单也印证了这一点在多语言任务上Jina是领先选手。怎么选模型这个测试给我最大的启发就是没有最好的模型只有最适合你场景的模型。我给你整理了个对比表看完应该就有数了模型维度中文效果梯队速度适用场景BGE-large-zh-v1.51024第一慢中文RAG、问答系统、对召回率要求高的场景BGE-small-zh-v1.5512第二快中文检索、资源受限环境GTE-base-zh768第二中等通用场景、均衡需求Jina-embeddings-v2-base-zh768第三快多语言检索、长文本处理▪ 场景一纯中文RAG召回率优先选BGE-large-zh。实测效果确实好尤其对技术文档、API文档这种结构化内容。如果你资源够上large没问题如果资源有限small版本效果也还行。▪ 场景二混合语言需要跨语言检索选Jina。英文查中文、中文查英文它都行。而且它支持长上下文很适合那种段落比较长的文档。▪ 场景三资源受限要平衡效果和速度选GTE-base或者BGE-small。GTE更均衡BGE-small更偏中文。看你实际需求。▪ 场景四语义搜索不是RAG那你的选择会更自由一些。如果是产品功能搜索、内容推荐这几个模型都能用。建议选个快的比如GTE或者Jina。那些坑我替你踩了测试过程中也发现几个坑提醒一下不同模型的embedding长度不一样BGE-large是1024维GTE是768维Jina也是768。你切换模型的时候向量库要重建不然维度对不上。token长度限制大多数模型限制512 token。Jina可以到8192但如果你用sentence-transformers的默认配置还是会截断。要手动设置maxseqlength。归一化问题算cosine similarity之前建议把向量统一归一化到单位长度sentence-transformers里normalize_embeddingsTrue。有的向量库默认算的是内积归一化和不归一化的结果会差很多切换库的时候务必确认。BGE的查询要加指令前缀这是BGE官方文档里明确写的检索场景下query要加一句为这个句子生成表示以用于检索相关文章文档侧不用加。我第一次用没加召回率直接掉了几个点查了半天才发现是这个原因。最后说句实在的很多兄弟问我“到底要不要自己微调模型”我的建议是先别急着微调。选对模型、调好prompt、优化检索策略比如混合检索、rerank这些低成本的改动往往能带来更大的提升。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】