docs(evals): S01–S10 标注集 v1、评测工具和评测报告

- evals/gold:1,887 个标注单元(AI 标注、逐条裁定,未经人工复核),规范见 GUIDELINES.md
- prepare / run_all / score / gold:导出文字层、批量抽取、打分、标注定位
- docs/architecture/extract-eval.md:修复前后的结果(三项目标全部达标)和剩余问题
- decisions.md 记 M1(只用 Flash)和 Q1–Q4;架构 §13 SK13;AGENTS.md 进度

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
YANG JIANKUAN
2026-11-03 23:19:30 +08:00
parent f98fd51128
commit 602703c47c
21 changed files with 29427 additions and 18 deletions

View File

@@ -1,5 +1,24 @@
# 评测
- `run_extract.py`:离线跑一份招标文件的全部抽取任务,统计结果,并审计模型输出里的不合理模式(引文太短、同一句被拆成多条、编号和引文不是同一句、声称有标注但原文没有……)。改提示词、改规则、换模型前后各跑一次对比。用法见文件头。
- 输出放在 `evals/out/`(不进 git):里面有真实招标文件的内容。
- TODO:S01–S10 的人工标注集和召回率、准确率计算(`prompts/README.md` 要求的回归评测)。
- 输出放在 `evals/out/`(不进 git):里面有真实招标文件的内容。模型输出缓存在 `evals/out/cache/`,同一模型 + 提示词版本 + 输入只调用一次,只改规则时重放不花钱。
## S01–S10 标注集(v1,2026-11-03)
结果和分析见 `docs/architecture/extract-eval.md`。
- `gold/<ID>.json`:标注集,规范见 `gold/GUIDELINES.md`。用「页码 + 原文片段」定位,切句规则变了也能用。目前由 AI 标注、AI 复核(`reviewed: false`),还没有人工复核。
- `prepare.py`:样本转成规范化 PDF,导出带句子编号的全文 `out/docs/<ID>/sentences.txt`(标注时看它)。旧版 DOC 先在转换容器里转 DOCX(产品流程还缺这一步,见 TODO)。
- `gold.py check <ID>`:检查标注能不能全部定位。
- `run_all.sh <运行名>`:10 份文件跑全部抽取,结果在 `out/runs/<运行名>/`。
- `score.py <运行名>`:打分,输出 `out/score/<运行名>/summary.md`(各类召回率、准确率、项目信息正确率)和每份文件的漏抽、多抽清单。
```bash
docker compose -f deploy/compose/compose.yaml up -d gotenberg
cd server
../.venv/bin/python ../evals/prepare.py # 一次即可
cd .. && evals/run_all.sh base && cd server
../.venv/bin/python ../evals/score.py base
```
改了规则或提示词之后,换一个运行名重跑、打分,和上一次的 `summary.md` 对比。目前的基线是 `fix3`(`docs/architecture/extract-eval.md` §7);`base` 是修复前的那一轮,用的是旧切句(s3-v3),不能拿现在的标注集重新打分。正式清单里多出来、对不上标注的条目要逐条裁定(GUIDELINES §4)。