训练配置#
训练配置定义了训练过程中的优化策略、分布式训练设置及日志记录方式。我们通过 runner 字典进行配置,核心内容包括:
type:训练运行器类型,如
FSDPTrainRunner基础训练参数:
max_epochs、learning_rate、weight_decay、max_grad_normcollator:数据整理器,定义如何将样本组装成批次
tokenizer:分词器配置
metric:指标记录器配置
学习率调度:
lr_scheduler_type、warmup_ratio显存优化:
enable_gradient_checkpointing、enable_mixed_precision_training、mixed_precision_dtype、sharding_strategy
以下是一个完整的训练配置示例:
runner = dict(
type='FSDPTrainRunner',
max_epochs=24,
learning_rate=5e-5,
weight_decay=0.0,
max_grad_norm=1.0,
collator=dict(
type='DictCollator',
keys=[
'states',
'observation.eepose',
'timestamp',
'images',
'img_masks',
'lang_tokens',
'lang_masks',
'actions',
'action_masks'
],
meta_keys=[
'task_description',
'prompt',
'info',
'stats'
]),
sampler=None,
tokenizer=dict(
type='PaligemmaTokenizer'
),
metric=dict(
type='VLAMetric',
active_trackers=('jsonl', 'wandb'),
run_dir='work_dirs',
wandb_project='limvla',
wandb_entity='limx',
grad_accumulation_steps=1,
window_size=1),
lr_scheduler_type='linear-warmup+cosine-decay',
warmup_ratio=0.03,
enable_gradient_checkpointing=True,
enable_mixed_precision_training=True,
mixed_precision_dtype='bf16',
sharding_strategy='full-shard',
change_key_name=False)