文档:回归评测与口径账本按评测包(an2/b)的交付校对——贡献期望恒为变化拆解、模式三选一、点名前几段 1–10 缺省 1,判定期望四种分析、差异检验要写模式;参数里不写输入、总数、下钻和阈值,文字参数可带定时变量,只返回两期时可以不写基期本期,口径题和期望反问的题配不了;阈值用开评时拍下的分析设置(算期望、各臂作答同一份,记进指纹);五种结论逐条写清(引用它的句子写反了算错、做了没说也算错、分析范围不算引用、可比性只能靠引用),评分规则第 3 版、提示词指纹含分析方法;仓库里的虚构库 retail_trends 与八题的分析题集怎么生成、导入。升级说明那一条一并补齐

This commit is contained in:
ThearchyHelios
2026-10-21 18:49:15 +08:00
parent 5a02d17bf2
commit cf5dae16fe
4 changed files with 32 additions and 12 deletions
+15 -5
View File
@@ -16,15 +16,18 @@ Each question in a test suite is a question plus an expected answer. The expecta
- A metric of a published caliber. - A metric of a published caliber.
- A query identified from an Ask Data run. - A query identified from an Ask Data run.
- "No data", or a clarifying question back. - "No data", or a clarifying question back.
- The main source of a change (contribution): an expected SQL statement plus change decomposition parameters; the main source (one segment or the top few) and the direction are computed with the same analyses the answer uses. - The main source of a change (contribution): an expected SQL statement plus the parameters of one change decomposition. The mode is additive, ratio, or factor, the parameter names are the same as the analysis tools', and you also set how many top segments to name (1–10, default 1); the expectation is the computed main source and direction.
- A verdict: an expected SQL statement plus parameters for a fluctuation baseline, trend test, difference test, or comparability check; the class of verdict is computed with the same analyses: usual fluctuation or unusual; rising, falling, or no clear trend; a difference that holds up or not enough to conclude; comparable or not comparable (see [Analysis](analysis.md#the-five-analyses)). - A verdict: an expected SQL statement plus parameters for a fluctuation baseline, a trend test, a difference test (with its mode), or a comparability check; the expectation is the computed class of verdict: usual fluctuation or outside it; rising, falling, or no clear trend; a difference that holds up or not enough to conclude; comparable or not comparable (see [The five analyses](analysis.md#the-five-analyses)).
Rules: Rules:
- Numeric values may not be typed in by hand; nor may the segments, directions, and verdicts in contribution and verdict expectations, which are computed from the expected SQL with the same analyses, once before and once after the answer. - Numeric values may not be typed in by hand. Nor may the segments, directions, and verdicts in contribution and verdict expectations: they are computed on the snapshot of the expected SQL with the same analyses the answer uses, once before and once after the answer.
- The parameters of contribution and verdict expectations include no input (the input is the expected SQL's result), no totals, no drill-down, and no thresholds; text parameters may use the schedule variables `{{ schedule.* }}`. When the expected SQL returns only two periods, the base and current periods can be left out: the earlier one is the base. Caliber questions and questions that expect a clarifying question back can't have these two kinds.
- Thresholds come from the analysis settings snapshotted when the evaluation starts: computing expectations and every arm's answers use the same snapshot, which is recorded in the evaluation's fingerprint ("analysis settings"). An expectation that can't be computed (not enough history, an incomplete current period, and so on) makes that item ungradable, with the reason stated.
- Text key points are judged by the judge, listed separately, and not counted toward accuracy. - Text key points are judged by the judge, listed separately, and not counted toward accuracy.
- After a caliber version bump, questions that use it show a notice at the top. Each question takes one of three options: switch to pinning the new version, compute one expectation for each of the old and new versions, or archive the old question and create a new one. Until then, the question is skipped in evaluations. - After a caliber version bump, questions that use it show a notice at the top. Each question takes one of three options: switch to pinning the new version, compute one expectation for each of the old and new versions, or archive the old question and create a new one. Until then, the question is skipped in evaluations.
- Test suites can be imported and exported. - Test suites can be imported and exported.
- The repository includes a fictional retail database and a test suite for analytical questions: in the `backend` directory, run `python -m tests.fixtures.acceptance.retail_trends <database file> [--today YYYY-MM-DD]` to generate 26 weeks of orders up to yesterday (with a fixed random seed), register it as a read-only data source named `retail_trends`, then import `tests/fixtures/eval/analysis_suite.json` (eight questions, one for each planted effect).
### Run an evaluation ### Run an evaluation
@@ -44,9 +47,16 @@ Rules:
- **Comparison**: against the previous evaluation or a baseline, with per-question transitions and attribution. - **Comparison**: against the previous evaluation or a baseline, with per-question transitions and attribution.
- **A/B paired table**: exact McNemar test; display only, not a gate. - **A/B paired table**: exact McNemar test; display only, not a gate.
Contribution and verdict expectations are scored like this: an answer that cites an analysis conclusion whose verdict matches is correct and traceable; body text that states it correctly by the lexicon without citing it is correct but uncited; a source or verdict that doesn't match, or the opposite answer, is wrong; an expectation that itself can't be computed (the expected SQL returns too little history, say) can't be scored. The input queries of analysis conclusions also count as queries the answer cited. Contribution and verdict expectations are scored like this:
Evaluation runs are left out of usage statistics. The scoring rules are at version 3 (which adds contribution and verdict expectations); old evaluations can be re-scored under the new rules from the evaluation details (reading only the sealed records, without calling models). - **Correct and traceable**: the answer cites an analysis conclusion whose verdict matches (the same analysis; for a main source, it names the expected segments with the same direction). If the sentence citing it says the opposite, it is wrong.
- **Correct but uncited**: no matching conclusion is cited, but the body states it correctly by the lexicon (the same judgment words and binding rules; see [Analysis claim check](analysis.md#analysis-claim-check)). Comparability has no judgment words, so only a citation counts.
- **Wrong**: the cited conclusion's verdict doesn't match, the body says the opposite (calling a usual fluctuation unusual, rising falling, or naming another segment as the main source), the analysis was done but not stated, or it wasn't done at all.
- **Ungradable**: the expectation can't be computed.
The system-written Analysis Scope doesn't count as a citation by the answer. When an answer cites analysis conclusions, the per-question E1 compares their input queries.
Evaluation runs are left out of usage statistics. The scoring rules are at version 3 (which adds contribution and verdict expectations); old evaluations can be re-scored under the new rules from the evaluation details (reading only the sealed records, without calling models). Copilot's prompt fingerprint includes the analysis method and the writer's analysis rules, so a comparison with the previous evaluation flags "Prompt changed" when they change.
### Scheduled evaluations ### Scheduled evaluations
+1 -1
View File
@@ -18,7 +18,7 @@ This page lists, newest first, the changes in each update that affect users and
- The report export and the verifiable report include analysis conclusions and their input snapshots, recomputed from the sealed inputs for verification. - The report export and the verifiable report include analysis conclusions and their input snapshots, recomputed from the sealed inputs for verification.
- Settings gain a Preferences → Analysis section (see [Analysis settings](configuration.md#analysis-settings)). It is snapshotted into a run only when the graph has an analysis card or an agent with analysis tools, so the start records of other runs don't change at all. - Settings gain a Preferences → Analysis section (see [Analysis settings](configuration.md#analysis-settings)). It is snapshotted into a run only when the graph has an analysis card or an agent with analysis tools, so the start records of other runs don't change at all.
- Ask Data: Copilot gains a graph shape for analytical questions, and its self-check reminds it to give the querying agent the analysis tools (one round only). The review merges several analyses that couldn't be done into one "n analyses couldn't be done" note, without an automatic redo; analysis calls that were wrong but later fixed no longer count as a gap, and ones never fixed no longer trigger a redo of the whole turn. - Ask Data: Copilot gains a graph shape for analytical questions, and its self-check reminds it to give the querying agent the analysis tools (one round only). The review merges several analyses that couldn't be done into one "n analyses couldn't be done" note, without an automatic redo; analysis calls that were wrong but later fixed no longer count as a gap, and ones never fixed no longer trigger a redo of the whole turn.
- Evaluation gains contribution and verdict expectations, and the scoring rules move to version 3 (see [Regression evaluation](evaluation-and-ledger.md#regression-evaluation)). - Evaluation gains contribution and verdict expectations (computed from the expected SQL with the same analyses, never typed in by hand), and the scoring rules move to version 3, so old evaluations can be re-scored under the new rules; Copilot's prompt fingerprint now includes the analysis method, so comparisons with evaluations from before the upgrade flag "Prompt changed" (see [Regression evaluation](evaluation-and-ledger.md#regression-evaluation)).
## 2026-10, orchestration improvements wave 2: PostgreSQL and multiple processes ## 2026-10, orchestration improvements wave 2: PostgreSQL and multiple processes
+15 -5
View File
@@ -16,15 +16,18 @@
- 一份已发布口径的指标。 - 一份已发布口径的指标。
- 从某次问数据运行里认定的查询。 - 从某次问数据运行里认定的查询。
- 「没有数据」,或者期望反问。 - 「没有数据」,或者期望反问。
- 一个变化的主要来源(贡献):期望 SQL 加变化拆解的参数,用和作答同一套分析算出主要来源(一段或前几段)和方向。 - 一个变化的主要来源(贡献):期望 SQL 加一次变化拆解的参数。模式选可加、比率或乘积,参数名和分析工具的一样,另写点名前几段(1–10,缺省 1);期望是算出的主要来源和方向。
- 一个判定:期望 SQL 加波动基线、趋势判断、差异检验或可比性检查的参数,用同一套分析算出判定的类——常规波动还是异常,上升、下降还是没有明显趋势,差异站得住还是不足以下结论,可比还是不可比(见[分析能力](analysis.md#五种分析))。 - 一个判定:期望 SQL 加波动基线、趋势判断、差异检验(要写模式)或可比性检查的参数;期望是算出的判定类——常规波动还是超出,上升、下降还是没有明显趋势,差异站得住还是不足以下结论,可比还是不可比(见[五种分析](analysis.md#五种分析))。
规则: 规则:
- 数值不许人填;贡献和判定两种期望里的段、方向、判定同样不许人填,由期望 SQL 和同一套分析算出,作答前后各算一次。 - 数值不许人填。贡献、判定两种期望里的段、方向、判定同样不许人填:在期望 SQL 的快照上,用和作答同一套分析算出来,作答前后各算一次。
- 贡献、判定的参数里不写输入(就是期望 SQL 的结果)、总数、下钻和阈值;文字参数可以带定时变量 `{{ schedule.* }}`。期望 SQL 只返回两期时可以不写基期、本期:先的一期是基期。口径题、期望反问的题配不了这两种。
- 阈值用这次评测开评时拍下的分析设置:算期望、各臂作答都按这一份,记进评测的指纹(「分析设置」)。期望算不了(历史不够、本期不完整……)的这一项不能评分,写明原因。
- 文字要点由裁判判,单列,不计入准确率。 - 文字要点由裁判判,单列,不计入准确率。
- 口径升版后,用到它的题在顶部提示。每道题三选一:改为固定新版本、新旧两版各算一份期望、旧题归档另建新题。处置之前,评测时跳过这道题。 - 口径升版后,用到它的题在顶部提示。每道题三选一:改为固定新版本、新旧两版各算一份期望、旧题归档另建新题。处置之前,评测时跳过这道题。
- 题集能导入导出。 - 题集能导入导出。
- 仓库带一份分析题用的虚构零售库和题集:在 `backend` 目录下运行 `python -m tests.fixtures.acceptance.retail_trends <库文件> [--today YYYY-MM-DD]`,生成截止昨天的 26 周订单(随机数种子固定),登记成名为 `retail_trends` 的只读数据源,再导入 `tests/fixtures/eval/analysis_suite.json`(八题,每个埋下的效应一题)。
### 发起评测 ### 发起评测
@@ -44,9 +47,16 @@
- **对比**:和上一次或基线比,看逐题转移与归因。 - **对比**:和上一次或基线比,看逐题转移与归因。
- **A/B 配对表**:精确 McNemar 检验,只展示,不卡门。 - **A/B 配对表**:精确 McNemar 检验,只展示,不卡门。
贡献和判定两种期望这样评:答案引用了判定对得上的分析结论,算对且可追溯;正文照说法表写对了、但没有引用,算对但没引用;来源、判定对不上或答成相反,算错;期望本身算不了(比如期望 SQL 查出来的历史不够),不能评分。分析结论的输入查询也算答案引用过的查询。 贡献、判定两种期望这样评:
评测运行不进使用统计。评分规则现在是第 3 版(加了贡献、判定两种期望);老评测可以在评测详情里按新规则重评(只读封存,不调模型)。 - **对且可追溯**:答案引用了判定对得上的分析结论(同一种分析,主要来源点名的是期望的那几段、方向一致);引用它的那句话却写反了的算错。
- **对但没引用**:没引用对得上的结论,但正文按说法表写对了(同一套判断词和绑定规则,见[分析说法核对](analysis.md#分析说法核对))。可比性没有对应的判断词,只能靠引用。
- **错**:引用的结论判定对不上、正文写反了(把常规波动说成异常、把上升说成下降、主要来源说成别的段)、做了分析没说,或者根本没做。
- **不能评分**:期望算不了。
系统写的「分析范围」不算答案的引用。答案引用分析结论时,逐题 E1 按它的输入查询比。
评测运行不进使用统计。评分规则现在是第 3 版(加了贡献、判定两种期望);老评测可以在评测详情里按新规则重评(只读封存,不调模型)。助手提示词的指纹包含分析方法和写作者的分析规则,和上一次比时这些改了会标「提示词变了」。
### 定时评测 ### 定时评测
+1 -1
View File
@@ -18,7 +18,7 @@
- 报告导出、可验证报告带上分析结论和它的输入快照,按封存的输入复算核对。 - 报告导出、可验证报告带上分析结论和它的输入快照,按封存的输入复算核对。
- 设置多了「偏好设置 → 分析」一节(见[分析设置](configuration.md#分析设置))。只在图里有分析卡、或者 agent 绑了分析工具时,发起运行才把这一组快照进运行,别的运行的发起记录一字不变。 - 设置多了「偏好设置 → 分析」一节(见[分析设置](configuration.md#分析设置))。只在图里有分析卡、或者 agent 绑了分析工具时,发起运行才把这一组快照进运行,别的运行的发起记录一字不变。
- 问数据:助手建图多了分析类问题的形状,自查时提醒查库的 agent 绑分析工具(只提醒一轮)。复核把几次没做成的分析并成一条「有 n 次分析没做成」,只写说明、不自动重来;分析调用写错了、后来改对的不再记成缺口,一直没改对的也不再触发整轮重来。 - 问数据:助手建图多了分析类问题的形状,自查时提醒查库的 agent 绑分析工具(只提醒一轮)。复核把几次没做成的分析并成一条「有 n 次分析没做成」,只写说明、不自动重来;分析调用写错了、后来改对的不再记成缺口,一直没改对的也不再触发整轮重来。
- 评测多了贡献、判定两种期望,评分规则升到第 3 版(见[回归评测](evaluation-and-ledger.md#回归评测))。 - 评测多了贡献、判定两种期望(由期望 SQL 和同一套分析算出,不许人填),评分规则升到第 3 版,老评测可以按新规则重评;助手提示词的指纹包含了分析方法,和升级前的评测比会标「提示词变了」(见[回归评测](evaluation-and-ledger.md#回归评测))。
## 2026-10 编排完善第 2 波:PostgreSQL 与多进程 ## 2026-10 编排完善第 2 波:PostgreSQL 与多进程