一、前情提要——知识库评估框架搭建
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大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:

04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!

06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

1946

被折叠的 条评论
为什么被折叠?



