本文探讨了RAG知识库质量优化方法,对比了基于余弦相似度的评估指标与ragas框架的优缺点。通过召回率、正确度和是否基于知识三个指标评估知识库质量,并提出了改进方向:提升知识切片质量(包括自洽性、纯净度等维度)和调整embedding参数,以及通过优化提示词和选择更强模型提升回答能力。知识库优化是系统性工程,需从多维度综合改进。
一、前情提要——知识库评估框架搭建
1.之前的评估指标
我们提到了用retrieved_context、answer、ground_truth三个值,分别两两做余弦相似度,来衡量RAG知识库的建设情况。其中:
retrieved_context:即RAG知识库召回的内容,用作后续给大模型提示的上下文,以下会简称contextanswer:即大模型根据提示输出给用户所见的答案ground_truth:三个值中唯一由人类编写的基准问题答案
然后我们三个指标分别是:
- 召回率(recall_score):
context与ground_truth的余弦相似度对比 - 正确度(correctness):
answer与ground_truth的余弦相似度对比 - 是否基于知识(groundedness):
context与answer的余弦相似度对比
2.之前犯的错
之前获取context的方法为直接从基准的问答对中获取context(都怪ChatGPT给我生成的代码),在基准问答数量不多的情况下,完全无法匹配实际知识库的内容。因此我们第一次用20个基准问答进行测评的召回率非常低,只有0.54,从指标上来看就是一个基本不可用的状态。所以在改进的方法里,我们直接获取智能体链路中的context,这样就可以真实评估知识库的建设情况。
3.调整后我们的指标结果
在调整过上述内容后,我们用50个问答对的基准文件获取了新的三个指标,结果分别是:
- recall_score:0.84354
- correctness:0.856932
- groundedness:0.886386
可以看到分数相较之前(0.54,0.75,0.59)有了明显提升,并且也趋于理性,但这个分数到底应该怎么评价,我们设计了以下评价单:
| 分数区间 | 评价结果 | 表现 |
|---|---|---|
| 0.00 – 0.60 | 不可用 | 多数回答错误、检索不到内容、强幻觉 |
| 0.60 – 0.70 | 很差,不稳定 | 大量错误回答、引用不全、模型经常胡猜 |
| 0.70 – 0.80 | 差,提供参考价值有限 | 回答部分正确,但经常缺失关键信息或依据不足 |
| 0.80 – 0.85 | 一般 ,可用性有限 | 系统有基本功能,但明显不稳定,幻觉仍较多,不可信任 |
| 0.85 – 0.90 | 中等,初步可用 | 70–80% 的回答还行,其余需要检查 |
| 0.90 – 0.95 | 良好,表现尚可 | 整体稳定,只在少数复杂问题出现偏差 |
| 0.95 – 0.98 | 优秀,成熟可用 | 绝大多数回答可直接信赖,幻觉很少 |
| 0.98 – 1.00 | 卓越,近乎完美 | 所有问题都根据知识库稳定回答,几乎无幻觉 |
实际使用时,可以找到分数低的基准问题,来针对性优化相关的知识片段。
二、为什么不用ragas来评估
其实我们也已经搭建了ragas评判机制(credits to 在20250315见过金玟庭的某人,啾咪),后续就都会用ragas来进行判断了。
先简单介绍下ragas,ragas是一个比较热门的用来评价RAG系统的开源框架,其核心除了retrieved_context、answer、ground_truth三个值外,还多了query这个值(就是输入问题)。ragas有多个指标来衡量RAG系统的建设效果,这里介绍四个基本的指标:
- 侧重生成(generation)指标:
- faithfulness(忠实性):回答中的事实是否都能在检索到的上下文中找到依据,用于衡量模型是否产生幻觉
- answer relevancy(回答相关性):生成的回答与问题的相关性有多高?回答的问题与基准答案的相关性,大模型根据回答逆向推断出问题,判断假定的问题与真实问题的相关性
- 侧重检索(retrieval)指标:
- context precision(上下文精确率):检索到的K个切片中,有多少是和问题、基准答案相关的
- context recall(上下文召回率):它能否检索到回答该问题所需的所有相关信息?检索到的上下文与基准答案的一致程度
ragas的主要计算方法不是通过余弦相似度,而是让大模型自己进行判断,因为余弦相似度会有这样的问题:
参考文档:上海是中国的城市
回答:上海是美国的城市
余弦相似度很高,但答案是错的
当然大模型也不是完全值得信任,参数量越小的模型其判断能力也就越差,而用向量计算余弦相似度也有其工程上的科学性,选用哪一种方式见仁见智吧。
再来总结下:
| 指标 | 调用大模型次数/问题 | 计算方法 |
|---|---|---|
| faithfulness | 1 | 大模型判断相关性 |
| answer relevancy | 1 | 逆向问题与基准问题的平均余弦相似度 |
| context precision | N,召回N个片段调用N次 | 大模型判断相关性 |
| context recall | N,召回N个片段调用N次 | 大模型判断相关性 |
在不优化提示词与调用方法的情况下,在一个常规设置召回top-k为4的RAG系统中,一个问题就需要调用10次通用大模型与1次embedding模型(查看源码发现实际上在answer relevancy指标获取上,基准问题和逆向问题各分别调了一次embedding),对模型资源是一个比较大的消耗。我们在测试时用了50个基准问题,大模型的调用次数已经来到了620+次(620次里还包含context relevance指标,但我觉得这个指标没啥意义,所以这里不介绍了)。
50个基准问题测试后结果如下:
- faithfulness:0.833375
- answer relevancy:0.880049
- context precision:0.963151
- context recall:0.906750
与用纯余弦相似度计算的结果相比,两者的结果指标在区间上相近,但在上下文质量的评估上ragas获取的分数更高。ragas的整体分数也可以用上文中的评价区间来评价,这点是共通的。
总的来说,ragas在事实判断上更强,但成本更高,按需使用即可。
三、如何改进提升指标
上面废话了那么多后,不管是用我们余弦相似度指标还是ragas框架,最终目标都是去改进我们的知识库。
改进有两个方向,一个方向是提升召回的准确率和一致性,另一个方向是提升回答得准确率和相关性。
1.提升召回能力
提升召回能力这个方向中,有两个子提升方向,一个是提升知识切片(chunking)的质量,另一个就是对召回本身的能力进行提升。
- 提升切片质量
先明确说下:在规模化的知识库场景下,切片不应该依赖人工逐条完成。知识团队要做的是对原始的知识文档解析:
①将其中的图片、表格变成描述性文字
②补充相关的段落标题、关键字
③删除文档中原本为了可读性而添加的信息密度低的文字
剩下的切片,应该是给出规则让系统自己进行切片。在dify中,dify会按照其默认配置对知识文档会进行切片,在中文场景下,一般设置一个chunk为500 tokens,重叠50 tokens是没啥问题的。
在这里,ragas给了一个灵感——让大模型来打分,例如以下几个维度:
①自洽性:让大模型来评判一个chunk文本是否可以在没有任何上下文的情况下被完整理解
②纯净度:embedding计算一个chunk内各句子间的平均余弦相似度,看一个chunk是否主题混杂
③信息密度:让大模型来抽取chunk中可以判断对错的句子数,然后计算其占总句子数的比例,比例低说明chunk很水
④可检索性:让大模型为chunk生成3-5个可能问题,看看chunk是否出现在top-k中,这个是直接对应召回率的一个指标
可以综合一个加权分数,然后过滤出质量差的chunk。
上述方案会作为我们下阶段的探索方向,等有更多成果了再跟大家汇报。
另外在测评的过程中,我们发现现有知识库中有很多重复内容,某些语义相似的片段甚至会有自相矛盾的内容。重复内容将造成评测失真,我们简单去除了明显重复的内容后,召回质量也有了一定提升。 后续也可以通过更加工程化的方式找到重复的chunk,简单想想的方式有:先通过文本hash去除完全一致的内容,然后计算每个chunk的embedding,再每个chunk查找top-k相似的chunk,通过相似度或大模型判断来找到语义相似的chunk。
- 调整embedding/rerank相关参数
作为产品团队或者说知识整理团队,不建议对这块进行调整,一是能力不够,再是与其把精力花在这不如多花时间去整理知识。
2.提升回答能力
这个方向可以总结为两个场景,一个是如何让大模型在获取了正确上下文后,做出正确回答不要废话;另一个是如何让大模型在没有获取正确上下文后,不要自己瞎编回答。几个提升方法吧:
- 最简单的方法:用更强的大模型,你能用Deepseek671或者Qwen235,就用能用的最高参数量的模型。要是没有显卡跑不起来,可以把这篇文章给你领导看看(笑
- 优化提示词
①可以明确在提示词中要求不要瞎猜,例如:
你必须严格基于提供的知识内容回答,不允许猜测。 如果知识未覆盖,请回答:“知识库暂无相关内容”。
②可以让大模型给出引用的chunk内容。
③可以让大模型回答两次,然后做一致性校验。当然对于内部客服智能体来说,必要性不高。
知识库改进并不是简单的调参数做试验,而是一个系统性的工程问题
AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。
掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2026最新大模型全套学习资源》,包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!
这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】