news 2026/6/4 9:07:27

本地 RAG 评估指南:5 个指标量化知识库效果

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本地 RAG 评估指南:5 个指标量化知识库效果

我手上现在有四套不同的本地知识库——RAGFlow 跑的、Dify 搭的、自己写 LangChain 拼的、AnythingLLM 的——问题来了:到底哪一套效果最好?

之前我都是凭感觉:“这个回答看起来挺像样的”。直到上周一个读者扔了一段他公司知识库的回答给我看,问"我这个 RAG 算不算好?"——我才意识到,没有指标就没法说"好"

这周专门把 RAGAS 这套评估框架在本地全跑通了,4 个核心指标 + 1 个补充指标,全程用 qwen3.5:9b 当评委,nomic-embed-text 当嵌入,8GB 显存笔记本就能跑完一次完整评估。这篇我把它拆给你。

一、为什么不能凭感觉

RAG 出错有两类,目测都看不出来:

  1. 检索错了:召回的 chunk 根本没相关信息,但模型用通用知识硬答,看起来流畅,其实知识库白搭
  2. 生成偏了:检索是对的,但模型回答时夹带私货 / 改写原意,看起来权威,实际跟原文出入

凭感觉看回答,这两个错都很难发现。评估的本质就是把"凭感觉"换成"凭分数"

二、5 个指标,2 类问题各管一段

RAG 流水线就两步——先检索、再生成。所以指标也是分两段:

评估「检索」的两个指标

1. Context Precision(上下文精确率)召回的几个 chunk 里,真正相关的有几个?且是不是排在前面?

  • 算法:让评委模型判断每个 chunk 和问题的相关性,加权求和
  • 高分含义:召回得准,没夹带垃圾

2. Context Recall(上下文召回率)正确答案需要的信息,是否都被召回到了?

  • 算法:把标准答案拆成多个事实点,看每个点能不能在召回的 context 里找到依据
  • 高分含义:没漏关键信息

评估「生成」的两个指标

3. Faithfulness(忠实度)模型的回答,是不是全部能在 context 里找到依据?

  • 算法:把回答拆成多条断言(claim),逐条到 context 里查证
  • 高分含义:没胡说

4. Answer Relevancy(回答相关性)回答有没有跑题?

  • 算法:让模型根据回答倒推可能的问题,和原问题做相似度比对
  • 高分含义:没答非所问

补充:综合指标

5. Answer Correctness(回答正确性)回答和标准答案的语义重合度 + 事实重合度。

  • 这个需要标准答案,前 4 个不需要

前 4 个是「无参考评估」,只要有问题、context、回答就能算。第 5 个需要标注好的标准答案,但更接近"对错"的人类直觉。做研究和迭代时前 4 个就够,做验收时第 5 个必上

三、本地搭建:全部跑在 Ollama 上

需要的组件:

# 拉模型ollama pull qwen3.5:9b # 作为评委ollama pull nomic-embed-text # 嵌入模型,137M,几乎不占显存# 装 RAGAS 和依赖pip install ragas datasets langchain-ollama

显存核算:qwen3.5:9b 占 6.6GB,nomic-embed-text 占 < 1GB,8GB 显存笔记本舒服

四、最小可跑代码

新建eval_rag.py

from datasets import Datasetfrom ragas import evaluatefrom ragas.metrics import ( faithfulness, answer_relevancy, context_precision, context_recall,)from langchain_ollama import ChatOllama, OllamaEmbeddings# 关键:评委模型 + 嵌入模型,都用本地judge_llm = ChatOllama(model="qwen3.5:9b", base_url="http://127.0.0.1:11434")embeddings = OllamaEmbeddings(model="nomic-embed-text")# 测试数据:每条包含 问题、召回的 contexts、回答、标准答案data = { "question": [ "公司的年假政策是几天?", "出差报销的额度是多少?", ], "contexts": [ ["员工入职满 1 年享 5 天年假,满 3 年享 10 天年假。", "公司鼓励员工带薪休假。"], ["市内出差日均 200 元,省外出差日均 500 元,海外 1000 元。"], ], "answer": [ "入职满 1 年有 5 天年假,满 3 年有 10 天。", "市内 200 / 省外 500 / 海外 1000,按日计算。", ], "ground_truth": [ "员工入职满 1 年享 5 天年假,满 3 年享 10 天年假。", "市内出差日均 200 元,省外日均 500 元,海外日均 1000 元。", ],}dataset = Dataset.from_dict(data)# 跑 4 个无参考指标result = evaluate( dataset=dataset, metrics=[faithfulness, answer_relevancy, context_precision, context_recall], llm=judge_llm, embeddings=embeddings,)print(result)

跑起来:

python eval_rag.py

输出形如:

{'faithfulness': 0.95, 'answer_relevancy': 0.92, 'context_precision': 0.83, 'context_recall': 1.00}

每个指标都是 0-1 区间,越高越好。

五、读懂分数:哪里弱就补哪里

跑一次评估后我会得到一张分数表。我自己定的判断阈值:

指标< 0.70.7-0.85> 0.85
Context Precision检索糟,召回大量噪声还行
Context Recall漏关键信息,肯定答不全还行
Faithfulness模型在编还行
Answer Relevancy跑题严重还行

不同指标低有不同的修法:

  • Precision 低:召回的 top-k 改小(5 → 3);或者加 Re-ranking 重排
  • Recall 低:召回的 top-k 改大(5 → 10);或者改进分块策略(chunk 切太碎)
  • Faithfulness 低:换更大的生成模型(9B → 27B);或者 prompt 里加严格"只根据 context 回答"
  • Relevancy 低:检查 prompt 模板,可能模型理解不到任务

我用这个流程帮一个读者诊断他的知识库,Context Precision 只有 0.45——召回的 chunk 一半是无关的。原因是他用了过大的 chunk size(2000 token),同一个 chunk 里夹了 5 个无关话题。把 chunk size 改到 500、加上语义切分,Precision 涨到 0.81。有指标定位问题快得多

六、做成日常 CI:每改一次就跑一遍

我建议把评估脚本固化下来:

  1. 维护一份 50-100 条的"测试集",覆盖知识库的典型问题
  2. 每次改了 RAG 配置(换模型、改 chunk、调 top-k),都跑一次
  3. 把每次的分数记到 CSV,画趋势图

这样你改一次配置就知道是变好还是变坏,再也不靠"试一下、看回答、感觉好像变好了"。

测试集准备技巧:

  • 不要全是简单问题,要混入"答案分散在多个 chunk"、“问的是边缘信息”、"问的是对比关系"这几类难题
  • 标注 ground_truth 时尽量用知识库里的原话,让 Recall 评估更准
  • 50 条以上才有统计意义,10 条波动太大

七、避坑

跑了几天踩到的几个坑:

坑 1:评委是本地小模型时,分数会偏低9B 当评委时打分稍微保守,0.85 已经是好分数。如果你之前用 GPT-4o 当评委,迁到本地分数会下降 10-15%。不是模型变差了,是评分基准变了。做横向对比就行,别和别人发的分数直接比

坑 2:context_recall 必须有 ground_truth没标注就跑会报错,跳过这一个指标即可。

坑 3:评估自己慢4 个指标 × 50 条样本 ≈ 200 次模型调用,本地 9B 大概要跑 15-20 分钟。可以先跑 10 条快速看趋势,定型后再跑全集。

八、行动建议

  • 个人 / 小团队 RAG 项目:照这套流程跑起来,本地完全够
  • 想做 RAG 工具调参:评估是必须的,没指标改了等于盲改
  • 企业知识库验收:再加上 Answer Correctness + 人工抽审
  • 想用云端 GPT-4 当评委:免费但慢,且不能完全替代人审。本地评委对开发循环已经足够

学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%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 9:05:30

HarmonyOS6 UI 布局进阶:掌握 justifyContent Center 打造精准居中效果

前言 在所有的布局对齐需求中&#xff0c;居中对齐可能是最频繁被提及的一个。无论是卡片内的图标、弹窗里的按钮组&#xff0c;还是导航栏的标题&#xff0c;"水平居中"几乎是每个页面都要处理的视觉需求。在传统的布局方式中&#xff0c;实现居中往往需要计算左右 …

作者头像 李华
网站建设 2026/6/4 9:02:43

DeepSeek-V4预览版深度解析:MoE架构与长上下文推理实战指南

1. 项目概述&#xff1a;这不是一次普通更新&#xff0c;而是一次模型能力边界的主动试探“DeepSeek-V4预览版本正式上线并开源”——这个标题里藏着三个关键信号&#xff1a;官宣意味着它已通过内部多轮验证&#xff0c;不是实验室草稿&#xff1b;预览版本说明它尚未封版&…

作者头像 李华