Accelerate 文档

Megatron-LM 工具

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Megatron-LM 工具

MegatronLMPlugin

class accelerate.utils.MegatronLMPlugin

< >

( 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 to None) — 编码器和解码器应拆分的秩(Rank)。
  • num_layers_per_virtual_pipeline_stage (int, defaults to None) — 每个虚拟流水线阶段的层数。
  • is_train_batch_min (str, defaults to True) — 如果同时指定了训练和评估数据加载器,这将决定 micro_batch_size
  • train_iters (int, defaults to None) — 所有训练运行中要训练的总样本数。请注意,当使用 MegatronLMDummyScheduler 时,应提供 train-iters 或 train-samples。
  • train_samples (int, defaults to None) — 所有训练运行中要训练的总样本数。请注意,当使用 MegatronLMDummyScheduler 时,应提供 train-iters 或 train-samples。
  • weight_decay_incr_style (str, defaults to 'constant') — 权重衰减增量函数。choices=[“constant”, “linear”, “cosine”]。
  • start_weight_decay (float, defaults to None) — L2 正则化的初始权重衰减系数。
  • end_weight_decay (float, defaults to None) — L2 正则化的运行结束权重衰减系数。
  • lr_decay_style (str, defaults to 'linear') — 学习率衰减函数。choices=[‘constant’, ‘linear’, ‘cosine’]。
  • lr_decay_iters (int, defaults to None) — 学习率衰减的迭代次数。如果为 None,则默认为 train_iters
  • lr_decay_samples (int, defaults to None) — 学习率衰减的样本数。如果为 None,则默认为 train_samples
  • lr_warmup_iters (int, defaults to None) — 线性预热学习率的迭代次数。
  • lr_warmup_samples (int, defaults to None) — 线性预热学习率的样本数。
  • lr_warmup_fraction (float, defaults to None) — 用于线性预热学习率的 lr-warmup-(iters/samples) 的比例。
  • min_lr (float, defaults to 0) — 学习率的最小值。调度器将剪裁低于此阈值的值。
  • consumed_samples (List, defaults to None) — 与 accelerator.prepare 调用中数据加载器顺序相同的已消耗样本数列表。
  • no_wd_decay_cond (Optional, defaults to None) — 禁用权重衰减的条件。
  • scale_lr_cond (Optional, defaults to None) — 缩放学习率的条件。
  • lr_mult (float, defaults to 1.0) — 学习率乘数。
  • megatron_dataset_flag (bool, defaults to False) — 数据集的格式是否遵循 Megatron-LM 的 Indexed/Cached/MemoryMapped 格式。
  • seq_length (int, defaults to None) — 要处理的最大序列长度。
  • encoder_seq_length (int, defaults to None) — 编码器要处理的最大序列长度。
  • decoder_seq_length (int, defaults to None) — 解码器要处理的最大序列长度。
  • tensorboard_dir (str, defaults to None) — 用于保存 tensorboard 日志的路径。
  • set_all_logging_options (bool, defaults to False) — 是否设置所有日志记录选项。
  • eval_iters (int, defaults to 100) — 评估验证/测试要运行的迭代次数。
  • eval_interval (int, defaults to 1000) — 在验证集上运行评估的间隔。
  • return_logits (bool, defaults to False) — 是否从模型返回 logits。
  • custom_train_step_class (Optional, defaults to None) — 自定义训练步骤类。
  • custom_train_step_kwargs (Optional, defaults to None) — 自定义训练步骤 kwargs。
  • custom_model_provider_function (Optional, defaults to None) — 自定义模型提供函数。
  • custom_prepare_model_function (Optional, defaults to None) — 自定义准备模型函数。
  • custom_megatron_datasets_provider_function (Optional, defaults to None) — 自定义 megatron train_valid_test 数据集提供函数。
  • custom_get_batch_function (Optional, defaults to None) — 自定义获取批次函数。
  • custom_loss_function (Optional, defaults to None) — 自定义损失函数。
  • other_megatron_args (Optional, 默认为 None) — 其他 Megatron-LM 参数。请参考 Megatron-LM。

用于 Megatron-LM 的插件,以启用张量、流水线、序列和数据并行。 还启用了选择性激活重计算和优化的融合内核。

MegatronLMDummyScheduler

accelerate.utils.MegatronLMDummyScheduler

< >

( optimizer total_num_steps = None warmup_num_steps = 0 **kwargs )

参数

  • optimizer (torch.optim.optimizer.Optimizer) — 要包装的优化器。
  • total_num_steps (int) — 总步数。
  • warmup_num_steps (int) — 预热步数。
  • **kwargs (附加关键字参数,可选) — 其他参数。

虚拟调度器呈现模型参数或参数组,这主要用于在 deepspeed 配置文件中指定调度器配置时,遵循传统的训练循环。

MegatronLMDummyDataLoader

accelerate.utils.MegatronLMDummyDataLoader

< >

( **dataset_kwargs )

虚拟数据加载器呈现模型参数或参数组,这主要用于遵循传统的训练方式

AbstractTrainStep

accelerate.utils.AbstractTrainStep

< >

( name )

用于批处理、前向传播和损失处理程序的抽象类。

GPTTrainStep

accelerate.utils.GPTTrainStep

< >

( accelerator args )

参数

  • args (argparse.Namespace) — Megatron-LM 参数。

GPT 训练步骤类。

BertTrainStep

accelerate.utils.BertTrainStep

< >

( accelerator args )

参数

  • args (argparse.Namespace) — Megatron-LM 参数。

Bert 训练步骤类。

T5TrainStep

accelerate.utils.T5TrainStep

< >

( accelerator args )

参数

  • args (argparse.Namespace) — Megatron-LM 参数。

T5 训练步骤类。

avg_losses_across_data_parallel_group

accelerate.utils.avg_losses_across_data_parallel_group

< >

( losses )

参数

  • losses (List[Tensor]) — 要在数据并行组中平均化的损失列表。

跨数据并行组平均损失。

< > Update on GitHub