Accelerate 文件
Megatron-LM 實用工具
並獲得增強的文件體驗
開始使用
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: typing.Optional[typing.Callable] = None scale_lr_cond: typing.Optional[typing.Callable] = 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: typing.Optional[typing.Any] = None custom_train_step_kwargs: typing.Optional[dict[str, typing.Any]] = None custom_model_provider_function: typing.Optional[typing.Callable] = None custom_prepare_model_function: typing.Optional[typing.Callable] = None custom_megatron_datasets_provider_function: typing.Optional[typing.Callable] = None custom_get_batch_function: typing.Optional[typing.Callable] = None custom_loss_function: typing.Optional[typing.Callable] = None other_megatron_args: typing.Optional[dict[str, typing.Any]] = 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
, 預設為None
) — 編碼器和解碼器應在哪個排名上進行分割。 - num_layers_per_virtual_pipeline_stage (
int
, 預設為None
) — 每個虛擬流水線階段的層數。 - is_train_batch_min (
str
, 預設為True
) — 如果同時指定了訓練和評估 dataloader,此引數將決定micro_batch_size
。 - train_iters (
int
, 預設為None
) — 在所有訓練輪次中訓練的總樣本數。請注意,使用MegatronLMDummyScheduler
時應提供 train-iters 或 train-samples。 - train_samples (
int
, 預設為None
) — 在所有訓練輪次中訓練的總樣本數。請注意,使用MegatronLMDummyScheduler
時應提供 train-iters 或 train-samples。 - weight_decay_incr_style (
str
, 預設為'constant'
) — 權重衰減增量函式。可選值=[“constant”, “linear”, “cosine”]。 - start_weight_decay (
float
, 預設為None
) — L2 正則化的初始權重衰減係數。 - end_weight_decay (
float
, 預設為None
) — 執行結束時 L2 正則化的權重衰減係數。 - lr_decay_style (
str
, 預設為'linear'
) — 學習率衰減函式。可選值=[‘constant’, ‘linear’, ‘cosine’]。 - lr_decay_iters (
int
, 預設為None
) — 學習率衰減的迭代次數。如果為 None,則預設為train_iters
。 - lr_decay_samples (
int
, 預設為None
) — 學習率衰減的樣本數。如果為 None,則預設為train_samples
。 - lr_warmup_iters (
int
, 預設為None
) — 線性預熱學習率的迭代次數。 - lr_warmup_samples (
int
, 預設為None
) — 線性預熱學習率的樣本數。 - lr_warmup_fraction (
float
, 預設為None
) — lr-warmup-(iters/samples) 的一部分,用於線性預熱學習率。 - min_lr (
float
, 預設為0
) — 學習率的最小值。排程器會將低於此閾值的值進行裁剪。 - consumed_samples (
List
, 預設為None
) — 已消耗的樣本數,順序與傳遞給accelerator.prepare
的 dataloader 相同。 - no_wd_decay_cond (
Optional
, 預設為None
) — 停用權重衰減的條件。 - scale_lr_cond (
Optional
, 預設為None
) — 縮放學習率的條件。 - lr_mult (
float
, 預設為1.0
) — 學習率乘數。 - megatron_dataset_flag (
bool
, 預設為False
) — 資料集格式是否遵循 Megatron-LM Indexed/Cached/MemoryMapped 格式。 - seq_length (
int
, 預設為None
) — 要處理的最大序列長度。 - encoder_seq_length (
int
, 預設為None
) — 編碼器要處理的最大序列長度。 - decoder_seq_length (
int
, 預設為None
) — 解碼器要處理的最大序列長度。 - tensorboard_dir (
str
, 預設為None
) — 儲存 tensorboard 日誌的路徑。 - set_all_logging_options (
bool
, 預設為False
) — 是否設定所有日誌選項。 - eval_iters (
int
, 預設為100
) — 執行評估驗證/測試的迭代次數。 - eval_interval (
int
, 預設為1000
) — 在驗證集上執行評估的間隔。 - return_logits (
bool
, 預設為False
) — 是否從模型返回 logits。 - 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
) — 自定義 megatron train_valid_test 資料集提供函式。 - custom_get_batch_function (
Optional
, 預設為None
) — 自定義獲取批次函式。 - custom_loss_function (
Optional
, 預設為None
) — 自定義損失函式。 - other_megatron_args (
Optional
, 預設為None
) — 其他 Megatron-LM 引數。請參考 Megatron-LM。
用於 Megatron-LM 的外掛,可啟用張量、流水線、序列和資料並行。還可啟用選擇性啟用重計算和最佳化的融合核心。
MegatronLMDummyScheduler
class accelerate.utils.MegatronLMDummyScheduler
< 來源 >( optimizer total_num_steps = None warmup_num_steps = 0 **kwargs )
虛擬排程器(Dummy scheduler)用於表示模型引數或引數組,主要用於在 deepspeed 配置檔案中指定了排程器配置時,遵循傳統的訓練迴圈。
MegatronLMDummyDataLoader
class accelerate.utils.MegatronLMDummyDataLoader
< source >( **dataset_kwargs )
虛擬資料載入器(Dummy dataloader)用於表示模型引數或引數組,主要用於遵循傳統的訓練流程。
AbstractTrainStep
用於批處理、前向傳播和損失處理的抽象類。
GPTTrainStep
class accelerate.utils.GPTTrainStep
< source >( accelerator args )
GPT 訓練步驟類。
BertTrainStep
class accelerate.utils.BertTrainStep
< source >( accelerator args )
Bert 訓練步驟類。
T5TrainStep
class accelerate.utils.T5TrainStep
< source >( accelerator args )
T5 訓練步驟類。
avg_losses_across_data_parallel_group
accelerate.utils.avg_losses_across_data_parallel_group
< source >( losses )
在資料並行組中對損失求平均值。