Enhance training script and evaluation logic to support all-future model target mode and improve error handling for distribution modes

This commit is contained in:
2026-06-12 11:53:35 +08:00
parent 82f70945d9
commit 1240766aa9
3 changed files with 20 additions and 8 deletions

View File

@@ -73,6 +73,8 @@ HealthDataset = NextStepHealthDataset
collate_fn = next_step_collate_fn
```
all-future 训练入口会显式使用 `AllFutureHealthDataset` 和 `all_future_collate_fn`。
dataset 会输出:
```python
@@ -227,18 +229,21 @@ all-future / query-conditioned 监督:
- 使用 `NextStepHealthDataset`
- `--target_mode delphi2m` 默认搭配 `Delphi2MLoss` + `token` readout
- `--target_mode uts` 默认搭配 `UniqueTimeSetExponentialLoss` + `same_time_group_end` readout
- 当前 next-token 训练只支持 `--dist_mode exponential`
- `--model_target_mode all_future`
- 使用 `AllFutureHealthDataset`
- 不使用 readout直接对 query hidden 计算风险
- `--dist_mode exponential/weibull/mixed` 分别搭配 `ExponentialLoss`、`WeibullLoss`、`MixedLoss`
模型结构组合由 `model_target_mode × time_mode × dist_mode` 决定
当前 `train.py` 支持所有已有训练目标定义的组合
| 维度 | 可选项 |
| --- | --- |
| `model_target_mode` | `next_token`, `all_future` |
| `time_mode` | `relative`, `absolute` |
| `dist_mode` | `exponential`, `weibull`, `mixed` |
| 训练模式 | 时间模式 | 分布/监督 | 默认 loss/readout |
| --- | --- | --- | --- |
| `next_token` | `relative`, `absolute` | `target_mode=delphi2m`, `dist_mode=exponential` | `Delphi2MLoss` + `token` |
| `next_token` | `relative`, `absolute` | `target_mode=uts`, `dist_mode=exponential` | `UniqueTimeSetExponentialLoss` + `same_time_group_end` |
| `all_future` | `relative`, `absolute` | `dist_mode=exponential` | `ExponentialLoss`,无 readout |
| `all_future` | `relative`, `absolute` | `dist_mode=weibull` | `WeibullLoss`,无 readout |
| `all_future` | `relative`, `absolute` | `dist_mode=mixed` | `MixedLoss`,无 readout |
示例: