feat: pre-flight filter of untrainable task types before gate

This commit is contained in:
2026-07-16 06:16:02 -04:00
parent c44f6010eb
commit caea9150b3
10 changed files with 148 additions and 7 deletions
+4
View File
@@ -60,6 +60,7 @@ class RunConfig:
batch_size: mini-batch 单批题目数。
min_class_per_batch: 单批中每个任务类型至少保留的题目数(< batch_size)。
eval_min_per_class: 验证池中每个任务类型至少保底的题目数。
trainable_min_units: 可训练性预检:每题型 diag+val 单元数下限,低于则剔除该题型。
early_stop_patience: 全局 best 连续未提升的容忍轮数,达到即早停。
test_size: held-out 测试池题目数。
use_slow_momentum: 是否启用快慢双速进化中的慢速 momentum 更新。
@@ -114,6 +115,7 @@ class RunConfig:
batch_size: int
min_class_per_batch: int
eval_min_per_class: int
trainable_min_units: int
early_stop_patience: int
test_size: int
use_slow_momentum: bool
@@ -297,6 +299,8 @@ def _validate_minibatch(config: RunConfig) -> None:
)
if config.eval_min_per_class < 1:
raise ValueError(f"eval_min_per_class 必须 >= 1,实际: {config.eval_min_per_class}")
if config.trainable_min_units < 1:
raise ValueError(f"trainable_min_units 必须 >= 1,实际: {config.trainable_min_units}")
if config.pool_split_mode != "per_category":
floor = config.eval_min_per_class * _VIDEO_MME_TASK_TYPE_COUNT
if config.val_size < floor: