Skip to content

fix: correct stage12 evaluation evidence - #53

Open
xjx-star wants to merge 3 commits into
XiaoCow666:mainfrom
xjx-star:codex/stage12-evaluation-followup
Open

xjx-star wants to merge 3 commits into
XiaoCow666:mainfrom
xjx-star:codex/stage12-evaluation-followup

Conversation

@xjx-star

Copy link
Copy Markdown
Contributor

变更范围

这是阶段十二 PR #51 合并后的跟进修订,目标是落实评审意见中的事实标签与验证记录修正。当前 head 为 4ad8fc57703e659783b6580cb09e6cda59f0182b,目标分支为 main;相对当前上游 main 仅修改 3 个文件(22 行净增)。

  • tests/fixtures/knowledge_rag_eval.json:新增真实的 array-indexing 数组下标文档,将“下标”问题的相关文档从误标的 sorting-stability 改为 array-boundary 与 array-indexing。
  • tests/test_knowledge_eval.py:锁定最后一题 top-k=1 的实际结果与 0.5 Recall,防止评估标签和行为再次脱节。
  • KNOWLEDGE_RAG_STAGE12.md:刷新本次验证结果,明确旧全量结果所属提交,并回答 64/8 边界和空索引/无匹配索引的回退路径。
  • 不修改数据库结构、权限、部署、生产密钥、核心接口或运行时数据。

对评审意见的处理

  1. sorting-stability 不是数组下标文档,已替换为真实的 array-indexing 文档;最后一题的两个相关文档现在是 array-boundary、array-indexing,top-k=1 的实际召回为其中 1 个,Recall=0.5。
  2. PR 与任务记录改为当前跟进 head;全量回归结果保留原提交标识 d370b5f,未冒充本次跟进后的结果。
  3. 抽查答复已写入阶段十二文档:MAX_INDEX_DOCUMENTS=64 控制索引候选读取范围,ID10 在范围内、ID70 被截断;MAX_EVIDENCE=8 只控制最终返回证据数量。空索引的“数据库迁移”走 no_result/NO_KNOWLEDGE_EVIDENCE;含数组/指针文档但无匹配时走 priority_fallback,返回已有优先级证据以保持阶段 11 兼容行为。

验证命令与结果

验证在隔离 worktree 使用共享 student-eval Python 环境执行;未使用生产数据库、Redis、外部 AI 或生产凭据。

  • 在前一提交 352dd8b(当前 4ad8fc5 仅更新文档耗时记录,不改代码、fixture 或测试)执行:python -m pytest tests/test_knowledge_eval.py tests/test_knowledge_vector_store.py tests/test_knowledge_rag.py -q --disable-warnings → 19 passed,退出码 0,47.06s。
  • 同一执行批次:python -m services.knowledge_eval → 5 个问题、4 个有标注问题;Recall@1=0.875,Recall@k=0.875;vector=3、keyword_fallback=1、no_result=1;expected mode mismatch=0;共索引 16 个切片。普通问题构建 mean/P95=0.507/2.239ms,查询=0.061/0.119ms,合计=0.570/2.326ms;64 文档性能样本构建=1.096ms,查询 mean/P95=0.463/0.473ms,总耗时=47.388ms,摊销=0.474ms/次。
  • git diff --check:通过。
  • 前一实现提交 d370b5f 已验证全量 python -m pytest -q --disable-warnings → 681 passed,13:26;本次跟进只涉及评估 fixture、评估断言和文档,当前未重新宣称全量回归。

事实与推断边界

  • 已确认事实:指定定向测试通过;固定评估输出如上;相关文档标签真实;相对上游 main 的当前差异仅为 3 个文件;本修订不改变数据库、权限、部署和核心运行时接口。
  • 仅属推断:CJK bigram 稀疏向量的泛化能力和本地耗时不能代表线上 Recall 或 SLA。
  • 未验证:真实 Redis、外部 AI、生产数据库、并发压力、浏览器全流程、持久化向量库和线上 SLA;本跟进未重跑全量回归。

回滚与后续

回滚本跟进只需还原这 3 个文件;不需要数据库或部署回滚。若要提升语义召回或引入持久化索引,应另行评审模型、成本、失效策略、权限和数据迁移。

PR #51 已合并;本 PR 仅承接其评审反馈的评估事实与验证记录修正。

@XiaoCow666 XiaoCow666 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

结论:本次阶段十二评估标签修订本身合理,但未满足关联的阶段十三任务交付要求,需补齐后复审。

已检查范围:仅静态分析提供的 3 个文件 diff,未执行命令。tests/fixtures/knowledge_rag_eval.json 新增数组下标文档并纠正相关性标签;tests/test_knowledge_eval.py 增加最后一题返回文档及 Recall=0.5 的断言;KNOWLEDGE_RAG_STAGE12.md 明确旧提交的全量测试结果。未发现这些改动本身存在明确的功能或安全问题;PR 中的测试通过记录未经本次独立验证。

P1:阶段十三必需交付物缺失

当前任务是“生产级可靠性与容量演练”,但任务台的 reproduction_evidence、planned_changes、learning_summary、verification_result 均为空。当前 diff 仅修订阶段十二的评估数据、断言和说明,没有阶段十三的真实行为改动及对应回归测试,因此无法确认本阶段目标已完成。

请打开 KNOWLEDGE_RAG_STAGE12.md 的“实际结果”,保留其阶段十二归属;新增 KNOWLEDGE_RAG_STAGE13.md,把当前缺失的阶段十三记录补成可核验的交付说明,并同步填写任务台:

  • reproduction_evidence:记录当前瓶颈的输入规模、复现命令、提交 SHA、实际输出和预期行为。
  • planned_changes:明确不与其他成员重复的子问题、实际修改的文件和函数、行为变化及回滚方式。
  • learning_summary:说明瓶颈原因、方案取舍,以及实测事实与推断的区别。
  • verification_result:记录修复前失败、修复后通过的回归用例、命令、提交 SHA 和实际输出。

请针对上述复现补入真实行为修复及回归测试;当前 tests/test_knowledge_eval.py 的 test_fixed_knowledge_eval_reports_vector_fallback_and_no_result_modes 新增断言只锁定评估结果,不能替代阶段十三的行为回归。完成后运行 python -m pytest tests/test_knowledge_eval.py tests/test_knowledge_vector_store.py tests/test_knowledge_rag.py -q --disable-warnings、python -m services.knowledge_eval,并执行新增回归用例,记录真实结果。

若此 PR 确实仅用于阶段十二跟进,请先将任务关联改为对应的阶段十二修订任务,再提交复审,无需为关联错误扩张实现范围。

@XiaoCow666 XiaoCow666 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeSense 自动评审

未发现必须阻塞合并的问题。变更范围仅限离线评估 fixture、对应断言和验证记录;修正后的相关文档标签与新增数组下标文档一致,top-k=1 的 0.5 Recall 断言也与两个相关文档的定义一致。提供的定向测试、固定评估和 diff 检查证据均显示通过。

已有验证信息

  • PR 提供证据:在与当前代码、fixture、测试相同的前一提交 352dd8b 上执行 python -m pytest tests/test_knowledge_eval.py tests/test_knowledge_vector_store.py tests/test_knowledge_rag.py -q --disable-warnings,结果为 19 passed、退出码 0;PR 说明当前 4ad8fc5 相对此提交仅更新文档耗时记录。
  • PR 提供证据:python -m services.knowledge_eval 输出 5 个问题、4 个有标注问题,Recall@1=0.875、Recall@k=0.875,模式为 vector=3、keyword_fallback=1、no_result=1,期望模式不匹配数为 0,共索引 16 个切片。
  • PR 提供证据:git diff --check 通过。
  • PR 明确全量 681 passed 的证据属于前一实现提交 d370b5f,本次标签修订后未重跑全量回归;该限制已如实记录,且本次修改没有运行时代码变更。

评审事件:feba8f22-b262-11f1-9b33-a9e595f1168e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants