基于 LangSmith Traces 的 RAG 分层评测方案
2026/9/8 16:57:53 网站建设 项目流程

基于 LangSmith Traces 的 RAG 分层评测方案

本方案基于 LangSmith 原生 Trace 数据结构,遵循分层解耦、全链路可追溯、指标可量化的原则,将 RAG 评测拆解为检索层、生成层、端到端层三个层级,直接从线上 Traces 中提取数据完成指标计算,同时支持结合黄金标注集做深度质量评估。

权威来源:LangSmith Trace 数据结构、Evaluator 能力参考官方文档:
https://docs.smith.langchain.com/observability/traces
https://docs.smith.langchain.com/evaluation/evaluators/faithfulness


一、前置基础:RAG 链路 Trace 埋点规范

所有分层评测的前提是埋点标准化,确保 Traces 可分层、可关联、字段完整。基于 LangChain 搭建的 RAG 链路,需遵循以下埋点约定:

链路节点命名规范run_type核心输出字段标签/元数据
全链路顶层rag_main_chainchainanswer(最终回答)tags:["rag","end2end"]metadata:prompt_versionkb_versionbusiness_linemodel_name
检索节点knowledge_retrieverretrieverdocuments(召回片段列表,每个片段含page_contentmetadatascoretags:["rag","retrieval"]
生成节点answer_generation_llmllmgenerations[0].text(生成回答)tags:["rag","generation"]

数据关联逻辑:通过trace_id+parent_run_id关联同一请求的各层 Run,确保检索、生成、端到端指标对应同一条查询,避免数据错位。


二、分层评测体系(按链路节点拆解)

1. 检索层评测:基于 Retriever Run

对应 Trace 节点run_type = "retriever"name = "knowledge_retriever"
核心提取字段inputs.query(用户查询)、outputs.documents(召回片段列表)、片段相似度scoreduration(耗时)、error(异常信息)

评测分为两类:无标注运营指标(直接从线上 Trace 统计)和有标注质量指标(结合黄金测试集)。

(1)无标注运营指标(无需标注,直接计算)
指标计算公式业务意义
平均召回片段数avg(doc_count) = 所有Run召回片段总数 / 总Run数监控 TopK 配置稳定性,排查召回为空/过量异常
零召回率零召回Run数 / 总Retriever Run数衡量无答案场景占比,对应知识库覆盖缺口
低分召回占比最高相似度得分 < 阈值(默认0.6)的Run数 / 总Run数预判召回质量整体水位,低分占比升高意味着检索质量漂移
检索延迟 TP50/TP90/TP99所有 Retriever Run 的duration分位值检索性能核心指标
检索错误率出现异常的Retriever Run数 / 总Run数衡量检索服务稳定性
(2)有标注质量指标(结合 Golden Set)

将 Trace 中的 query 与黄金标注集(每条 query 标注标准相关片段 ID)匹配,计算信息检索标准指标:

  • Recall@K:召回的相关片段数 / 全部相关片段总数
  • Precision@K:召回的相关片段数 / K
  • NDCG@K:归一化折损累计增益,衡量排序质量
  • MRR:平均倒数排名,衡量首个相关结果的位置

LangSmith 落地方式

  1. 离线批量:通过langsmith.Client按标签过滤拉取 Retriever Run,导出 documents 与 score,离线匹配标注集计算指标
  2. 在线自动:将黄金集上传至 LangSmith Datasets,配置检索评估器,自动批量输出质量指标

2. 生成层评测:基于 LLM Run

对应 Trace 节点run_type = "llm"name = "answer_generation_llm"
核心提取字段inputs.messages(提取 system prompt、检索上下文 context、用户 query)、outputs.generations[0].text(生成回答)、prompt_tokens/completion_tokensduration

核心评测指标
指标计算逻辑LangSmith 落地方式
忠实度(Faithfulness)回答中可被检索上下文支撑的原子事实占比直接调用 LangSmith 内置FaithfulnessEvaluator,传入 context 与 answer,自动输出 0-1 得分
幻觉率1 - 忠实度得分基于忠实度得分直接计算
指令遵循率输出符合 Prompt 约束(格式、字数、引用标记等)的比例自定义 Evaluator,通过规则或 LLM 裁判校验格式、关键字、约束条件
虚假引用率回答中标注但上下文不存在的引用占总引用数的比例自定义 Evaluator 匹配引用标记与上下文来源
平均 Token 消耗总token数 / 总LLM Run数直接从 Trace 的usage字段统计,核算推理成本
生成延迟 TP50/TP90LLM Run 的duration分位值直接统计耗时字段

说明:内置 FaithfulnessEvaluator 基于原子事实拆解逻辑实现,与 RAGAS 忠实度计算逻辑对齐,是生成层评测的核心基准工具。


3. 端到端层评测:基于顶层 Chain Run

对应 Trace 节点name = "rag_main_chain"(最顶层 RAG 链路)
核心提取字段inputs.queryoutputs.answerduration(全链路耗时)、error、用户feedback(点赞/点踩)

核心评测指标
指标计算逻辑业务意义
端到端响应时间 TP50/TP90顶层 Chain Run 的duration分位值用户体验核心指标,包含检索+生成+工程链路总耗时
端到端错误率顶层 Run 出现异常的比例系统可用性核心指标
业务解决率方式1:用户正向反馈数 / 总反馈数 方式2:结合黄金集,回答正确的 query 占比最终业务价值指标
拒答准确率知识库外问题中,模型正确拒答的比例边界控制能力,需结合边界问题标注集计算
用户负反馈率用户点踩/差评的对话占比线上真实质量的最终体现

三、工程化落地路径

1. 定时批量离线评测(日常质量监控)

  1. 数据拉取:通过 LangSmith Python SDK,按时间窗口、业务线标签拉取全量 Traces
  2. 分层计算
    • 检索层:统计召回分布、零召回率、延迟、错误率
    • 生成层:调用 FaithfulnessEvaluator 批量计算忠实度
    • 端到端:统计全链路耗时、错误率、反馈率
  3. 输出报告:按日/周输出质量报表,对比版本基线,识别质量漂移
  4. 下钻定位:指标异常时,按业务线、Prompt 版本、知识库版本维度下钻,定位问题层级

2. 在线自动评估(实时质量门禁)

  1. 将高频业务 query、边界问题集同步到 LangSmith Datasets
  2. 配置自动评估器(忠实度、相关性、格式合规),每次 RAG 调用后自动打分
  3. 设置阈值告警:忠实度低于 0.8、零召回率高于 5% 等场景自动触发告警
  4. 灰度发布场景:实时对比新旧版本的分层指标,触发劣化自动回滚

3. Bad Case 闭环沉淀

  1. 自动筛选低得分、负反馈、异常的 Trace 进入 bad case 库
  2. 人工复核根因,标注问题类型(检索漏检/生成幻觉/知识库缺失)
  3. 定期将典型 bad case 补充进 Golden Set,迭代评测集覆盖度

四、关键注意事项

  1. 埋点一致性是前提:检索节点必须完整输出召回片段与相似度分,生成节点必须保留原始上下文,否则无法计算忠实度等核心指标
  2. 评估器需提前校准:内置/自定义 LLM 评估器,需先用人工标注集校准,Cohen’s Kappa 系数 ≥ 0.75 方可批量使用
  3. 避免数据泄露:用于评测的黄金集不能与知识库内容高度重合,否则指标虚高,无法反映真实线上效果
  4. 多维度下钻定位:不要只看整体指标,按业务线、问题类型、难度、版本分层下钻,精准定位瓶颈在检索还是生成

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询