fix: slow-update R2 dual_metric uses slow_candidate kind (not final)
This commit is contained in:
@@ -1443,11 +1443,13 @@ class Runner:
|
|||||||
r2_skills_version = self._current_version("skills")
|
r2_skills_version = self._current_version("skills")
|
||||||
new_prompts_version = self._current_version("prompts")
|
new_prompts_version = self._current_version("prompts")
|
||||||
eval_r2 = await self._eval_full_val(epoch, pools, run_suffix="_p2")
|
eval_r2 = await self._eval_full_val(epoch, pools, run_suffix="_p2")
|
||||||
|
# R2 是可能被 revert 的慢更新候选,用 slow_candidate 口径,不占 final
|
||||||
|
# (epoch 终值唯一由 Phase 2 的 final 承载)
|
||||||
write_dual_metric(
|
write_dual_metric(
|
||||||
str(self._paths.db_path),
|
str(self._paths.db_path),
|
||||||
run_id=self._config.run_id,
|
run_id=self._config.run_id,
|
||||||
epoch=epoch,
|
epoch=epoch,
|
||||||
version_kind="final",
|
version_kind="slow_candidate",
|
||||||
skills_version=r2_skills_version,
|
skills_version=r2_skills_version,
|
||||||
prompts_version=new_prompts_version,
|
prompts_version=new_prompts_version,
|
||||||
pool="val",
|
pool="val",
|
||||||
|
|||||||
@@ -71,6 +71,37 @@ def test_write_read_dual_metric(db_path: str, run_id: str) -> None:
|
|||||||
assert row["run_id"] == run_id
|
assert row["run_id"] == run_id
|
||||||
|
|
||||||
|
|
||||||
|
def test_dual_metric_kinds_distinguishable(db_path: str, run_id: str) -> None:
|
||||||
|
"""observation 层接受任意 version_kind:final 与 slow_candidate 可区分共存。"""
|
||||||
|
write_dual_metric(
|
||||||
|
db_path,
|
||||||
|
run_id=run_id,
|
||||||
|
epoch=1,
|
||||||
|
version_kind="final",
|
||||||
|
skills_version="v1",
|
||||||
|
prompts_version="v1",
|
||||||
|
pool="val",
|
||||||
|
hard_acc=0.7,
|
||||||
|
soft_score=None,
|
||||||
|
mixed_score=None,
|
||||||
|
)
|
||||||
|
write_dual_metric(
|
||||||
|
db_path,
|
||||||
|
run_id=run_id,
|
||||||
|
epoch=1,
|
||||||
|
version_kind="slow_candidate",
|
||||||
|
skills_version="v2",
|
||||||
|
prompts_version="v2",
|
||||||
|
pool="val",
|
||||||
|
hard_acc=0.6,
|
||||||
|
soft_score=None,
|
||||||
|
mixed_score=None,
|
||||||
|
)
|
||||||
|
rows = read_dual_metric(db_path, run_id=run_id)
|
||||||
|
kinds = {row["version_kind"] for row in rows if row["epoch"] == 1}
|
||||||
|
assert kinds == {"final", "slow_candidate"}
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# shadow_gate
|
# shadow_gate
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user