用 ragas 0.1.14 跑 120 条回归,改完提示词后 faithfulness 从 0.72 涨到 0.88,同一天重启评测进程再跑又掉回 0.73,期间没改任何代码。

一开始怀疑是「样本只有 120 条,涨跌大半落在置信区间内」,查了一圈,方向不对。

原因不止一个,得分开看。评测结果按问题文本做了本地缓存,改提示词后缓存键没变。少数情况下是打分模型带温度,0.1 时自身就有可观波动。

少数情况下是部分样本答案为空,指标计算时被跳过,分母悄悄变小。

动手时先关掉缓存再跑一遍做对照

python -c "import os;os.environ['RAGAS_CACHE']='false';print(os.getenv('RAGAS_CACHE'))"

固定打分模型的温度与随机种子

python -c "from langchain_openai import ChatOpenAI;print(ChatOpenAI(model='gpt-4o-mini',temperature=0).model_name)"

然后把逐条分数落盘再统计离散度

python -c "import pandas as pd;df=pd.read_csv('ragas_out.csv');print(df.groupby('metric').score.agg(['mean','std']))"

末了扩样本量后重跑确认均值

python -c "print(len(open('qa_set.jsonl',encoding='utf-8').readlines()))"

改完先别撤,确认这几项。三次运行的 faithfulness 标准差小于 0.01,关缓存前后同一条问题分数一致,扩样后均值仍在 0.73 一档。

提醒一点。评测结论要建立在同缓存状态和同温度的对照上,否则调的是随机数不是提示词。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189