File size: 1,533 Bytes
08af434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 07. Slurm

Slurm 模板不硬编码 partition、GPU 型号、walltime 或内存。请根据服务器站点在提交命令上补充这些资源参数;模板通过注册表 TSV 的 `environment` 字段选择 Conda 环境。

## 生成 array

先在登录节点创建矩阵,再提交 132 个 array task:

```bash
python -m dlb.matrix --root "$DLB_ROOT" \
  --output "$DLB_ROOT/results/matrix/generation.tsv"
sbatch --array=0-131%8 slurm/generate_array.sbatch
```

## 质量评测和 timing

```bash
sbatch slurm/evaluate.sbatch
sbatch --array=0-131%8 slurm/benchmark_array.sbatch
```

`evaluate.sbatch` 使用 `DLB_EVAL_ENV`(默认 `dlb-eval`);array 模板读取每一行的模型、数据集、steps 和 registry environment,不根据 task id 猜环境。

## 训练/蒸馏

通过环境变量指定 recipe:

```bash
DLB_RECIPE=candi DLB_DATASET=owt \
  sbatch --gres=gpu:1 slurm/train.sbatch
DLB_RECIPE=di4c DLB_MODEL=duo_di4c DLB_DATASET=lm1b \
  sbatch --gres=gpu:1 slurm/train.sbatch
```

如站点需要 partition、constraint、时间或内存,请加到 `sbatch` 命令,而不是修改模板中的固定值。大训练任务的 devices/nodes 通过 `DLB_TRAIN_DEVICES`、`DLB_TRAIN_NODES` 或 recipe 命令参数设置,必须保持锁定 global batch。

## 日志与重试

Slurm 输出在 `results/logs/slurm-*.out`/`.err`;单个 array task 失败可只重提对应 index。不要删除成功样本或 timing 后盲目重跑,先核对 `run_metadata.json`、`checkpoint_lock.json` 和失败日志。