Megatron-LM 工具
MegatronLMPlugin
class accelerate.utils.MegatronLMPlugin
< source >( tp_degree: int = None pp_degree: int = None num_micro_batches: int = None gradient_clipping: float = None sequence_parallelism: bool = None recompute_activations: bool = None use_distributed_optimizer: bool = None pipeline_model_parallel_split_rank: int = None num_layers_per_virtual_pipeline_stage: int = None is_train_batch_min: str = True train_iters: int = None train_samples: int = None weight_decay_incr_style: str = 'constant' start_weight_decay: float = None end_weight_decay: float = None lr_decay_style: str = 'linear' lr_decay_iters: int = None lr_decay_samples: int = None lr_warmup_iters: int = None lr_warmup_samples: int = None lr_warmup_fraction: float = None min_lr: float = 0 consumed_samples: List = None no_wd_decay_cond: Optional = None scale_lr_cond: Optional = None lr_mult: float = 1.0 megatron_dataset_flag: bool = False seq_length: int = None encoder_seq_length: int = None decoder_seq_length: int = None tensorboard_dir: str = None set_all_logging_options: bool = False eval_iters: int = 100 eval_interval: int = 1000 return_logits: bool = False custom_train_step_class: Optional = None custom_train_step_kwargs: Optional = None custom_model_provider_function: Optional = None custom_prepare_model_function: Optional = None custom_megatron_datasets_provider_function: Optional = None custom_get_batch_function: Optional = None custom_loss_function: Optional = None other_megatron_args: Optional = None )
参数
- tp_degree (
int
, 默认为None
) — 张量并行度。 - pp_degree (
int
, 默认为None
) — 流水线并行度。 - num_micro_batches (
int
, 默认为None
) — 微批次数。 - gradient_clipping (
float
, 默认为None
) — 基于全局 L2 范数的梯度裁剪值(0 表示禁用)。 - sequence_parallelism (
bool
, 默认为None
) — 启用序列并行。 - recompute_activations (
bool
, 默认为None
) — 启用选择性激活重计算。 - use_distributed_optimizr (
bool
, 默认为None
) — 启用分布式优化器。 - pipeline_model_parallel_split_rank (
int
, defaults toNone
) — 编码器和解码器应拆分的秩(Rank)。 - num_layers_per_virtual_pipeline_stage (
int
, defaults toNone
) — 每个虚拟流水线阶段的层数。 - is_train_batch_min (
str
, defaults toTrue
) — 如果同时指定了训练和评估数据加载器,这将决定micro_batch_size
。 - train_iters (
int
, defaults toNone
) — 所有训练运行中要训练的总样本数。请注意,当使用MegatronLMDummyScheduler
时,应提供 train-iters 或 train-samples。 - train_samples (
int
, defaults toNone
) — 所有训练运行中要训练的总样本数。请注意,当使用MegatronLMDummyScheduler
时,应提供 train-iters 或 train-samples。 - weight_decay_incr_style (
str
, defaults to'constant'
) — 权重衰减增量函数。choices=[“constant”, “linear”, “cosine”]。 - start_weight_decay (
float
, defaults toNone
) — L2 正则化的初始权重衰减系数。 - end_weight_decay (
float
, defaults toNone
) — L2 正则化的运行结束权重衰减系数。 - lr_decay_style (
str
, defaults to'linear'
) — 学习率衰减函数。choices=[‘constant’, ‘linear’, ‘cosine’]。 - lr_decay_iters (
int
, defaults toNone
) — 学习率衰减的迭代次数。如果为 None,则默认为train_iters
。 - lr_decay_samples (
int
, defaults toNone
) — 学习率衰减的样本数。如果为 None,则默认为train_samples
。 - lr_warmup_iters (
int
, defaults toNone
) — 线性预热学习率的迭代次数。 - lr_warmup_samples (
int
, defaults toNone
) — 线性预热学习率的样本数。 - lr_warmup_fraction (
float
, defaults toNone
) — 用于线性预热学习率的 lr-warmup-(iters/samples) 的比例。 - min_lr (
float
, defaults to0
) — 学习率的最小值。调度器将剪裁低于此阈值的值。 - consumed_samples (
List
, defaults toNone
) — 与accelerator.prepare
调用中数据加载器顺序相同的已消耗样本数列表。 - no_wd_decay_cond (
Optional
, defaults toNone
) — 禁用权重衰减的条件。 - scale_lr_cond (
Optional
, defaults toNone
) — 缩放学习率的条件。 - lr_mult (
float
, defaults to1.0
) — 学习率乘数。 - megatron_dataset_flag (
bool
, defaults toFalse
) — 数据集的格式是否遵循 Megatron-LM 的 Indexed/Cached/MemoryMapped 格式。 - seq_length (
int
, defaults toNone
) — 要处理的最大序列长度。 - encoder_seq_length (
int
, defaults toNone
) — 编码器要处理的最大序列长度。 - decoder_seq_length (
int
, defaults toNone
) — 解码器要处理的最大序列长度。 - tensorboard_dir (
str
, defaults toNone
) — 用于保存 tensorboard 日志的路径。 - set_all_logging_options (
bool
, defaults toFalse
) — 是否设置所有日志记录选项。 - eval_iters (
int
, defaults to100
) — 评估验证/测试要运行的迭代次数。 - eval_interval (
int
, defaults to1000
) — 在验证集上运行评估的间隔。 - return_logits (
bool
, defaults toFalse
) — 是否从模型返回 logits。 - custom_train_step_class (
Optional
, defaults toNone
) — 自定义训练步骤类。 - custom_train_step_kwargs (
Optional
, defaults toNone
) — 自定义训练步骤 kwargs。 - custom_model_provider_function (
Optional
, defaults toNone
) — 自定义模型提供函数。 - custom_prepare_model_function (
Optional
, defaults toNone
) — 自定义准备模型函数。 - custom_megatron_datasets_provider_function (
Optional
, defaults toNone
) — 自定义 megatron train_valid_test 数据集提供函数。 - custom_get_batch_function (
Optional
, defaults toNone
) — 自定义获取批次函数。 - custom_loss_function (
Optional
, defaults toNone
) — 自定义损失函数。 - other_megatron_args (
Optional
, 默认为None
) — 其他 Megatron-LM 参数。请参考 Megatron-LM。
用于 Megatron-LM 的插件,以启用张量、流水线、序列和数据并行。 还启用了选择性激活重计算和优化的融合内核。
MegatronLMDummyScheduler
类 accelerate.utils.MegatronLMDummyScheduler
< source >( optimizer total_num_steps = None warmup_num_steps = 0 **kwargs )
虚拟调度器呈现模型参数或参数组,这主要用于在 deepspeed 配置文件中指定调度器配置时,遵循传统的训练循环。
MegatronLMDummyDataLoader
虚拟数据加载器呈现模型参数或参数组,这主要用于遵循传统的训练方式
AbstractTrainStep
用于批处理、前向传播和损失处理程序的抽象类。
GPTTrainStep
类 accelerate.utils.GPTTrainStep
< source >( accelerator args )
GPT 训练步骤类。
BertTrainStep
类 accelerate.utils.BertTrainStep
< source >( accelerator args )
Bert 训练步骤类。
T5TrainStep
类 accelerate.utils.T5TrainStep
< source >( accelerator args )
T5 训练步骤类。
avg_losses_across_data_parallel_group
accelerate.utils.avg_losses_across_data_parallel_group
< source >( losses )
跨数据并行组平均损失。