Enhance training script to support all-future model target mode and update dataset handling

This commit is contained in:
2026-06-12 11:49:44 +08:00
parent 3125b6119f
commit 82f70945d9
2 changed files with 345 additions and 107 deletions

View File

@@ -221,11 +221,24 @@ all-future / query-conditioned 监督:
## 训练
当前 `train.py` next-step 训练入口,使用
当前 `train.py` 支持 next-token 和 all-future 两类训练入口:
```python
HealthDataset = NextStepHealthDataset
```
- `--model_target_mode next_token`
- 使用 `NextStepHealthDataset`
- `--target_mode delphi2m` 默认搭配 `Delphi2MLoss` + `token` readout
- `--target_mode uts` 默认搭配 `UniqueTimeSetExponentialLoss` + `same_time_group_end` readout
- `--model_target_mode all_future`
- 使用 `AllFutureHealthDataset`
- 不使用 readout直接对 query hidden 计算风险
- `--dist_mode exponential/weibull/mixed` 分别搭配 `ExponentialLoss`、`WeibullLoss`、`MixedLoss`
模型结构组合由 `model_target_mode × time_mode × dist_mode` 决定:
| 维度 | 可选项 |
| --- | --- |
| `model_target_mode` | `next_token`, `all_future` |
| `time_mode` | `relative`, `absolute` |
| `dist_mode` | `exponential`, `weibull`, `mixed` |
示例:
@@ -233,6 +246,7 @@ HealthDataset = NextStepHealthDataset
python train.py \
--data_prefix ukb \
--labels_file labels.csv \
--model_target_mode next_token \
--target_mode uts \
--n_embd 120 \
--n_head 10 \
@@ -240,6 +254,17 @@ python train.py \
--n_tab_layer 4
```
all-future 示例:
```bash
python train.py \
--data_prefix ukb \
--labels_file labels.csv \
--model_target_mode all_future \
--dist_mode weibull \
--time_mode relative
```
选择额外信息变量:
```bash
@@ -252,6 +277,7 @@ python train.py --extra_info_types_file extra_info_types_smoking_alcohol_bmi.txt
- `extra_info_types_file`:训练时使用的列表文件名
- `extra_info_types`:解析后的实际 type id 列表,用于评估脚本复现变量选择
- `model_target_mode`、`time_mode`、`dist_mode`、`dataset_class`、`collate_fn`、`resolved_loss_name`:用于评估脚本重建模型和输入方式
## 评估 AUC