这类问题我又碰上了一次。RAGAS 0.2.1 跑 300 条问答评测,faithfulness 全落在 0.28 到 0.33,人工抽看答案其实都能在上下文里找到依据,judge 用的是 gpt-4o-mini。

第一反应是「答案里的 markdown 表格被按行切断,上下文对不上」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。judge 模型太弱,拆不出可验证的陈述句;评测用的 embedding 后端 key 配错,回退到了本地小模型;context 传入顺序和生成时不一致,比对错位。

第一件事是看单条的中间结果

python -c "from ragas import evaluate;print('inspect statements for sample 0')"

再往下把 judge 换成 gpt-4o 再跑同 50 条

python -c "import os;os.environ['OPENAI_MODEL']='gpt-4o';print('judge upgraded')"

接着确认 embedding 后端实际指向哪里

python -c "import ragas;print(ragas.__version__)"

固定 context 顺序并重跑全量

python -c "import json;d=json.load(open('eval.json'));print(len(d))"

同事提醒我看一下最近一次发布,时间点确实对得上。

恢复的判定其实很直接。换 judge 后 faithfulness 回到 0.82 附近,与人工判断的一致率达到 0.9,300 条里只有 6 条仍被判为无依据。

提醒一点。评测指标的低分先怀疑打分器,再怀疑被测模型,judge 能力不够时整批分数会一起沉底,看起来像系统性问题。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189