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: 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 )

引數

  • optimizer (torch.optim.optimizer.Optimizer) — 要包裝的最佳化器。
  • total_num_steps (int) — 總步數。
  • warmup_num_steps (int) — 用於預熱的步數。
  • **kwargs (additional keyword arguments, optional) — 其他引數。

虛擬排程器(Dummy scheduler)用於表示模型引數或引數組,主要用於在 deepspeed 配置檔案中指定了排程器配置時,遵循傳統的訓練迴圈。

MegatronLMDummyDataLoader

class accelerate.utils.MegatronLMDummyDataLoader

< >

( **dataset_kwargs )

引數

  • **dataset_kwargs — Megatron 資料引數。

虛擬資料載入器(Dummy dataloader)用於表示模型引數或引數組,主要用於遵循傳統的訓練流程。

AbstractTrainStep

class accelerate.utils.AbstractTrainStep

< >

( name )

用於批處理、前向傳播和損失處理的抽象類。

GPTTrainStep

class accelerate.utils.GPTTrainStep

< >

( accelerator args )

引數

  • args (argparse.Namespace) — Megatron-LM 引數。

GPT 訓練步驟類。

BertTrainStep

class accelerate.utils.BertTrainStep

< >

( accelerator args )

引數

  • args (argparse.Namespace) — Megatron-LM 引數。

Bert 訓練步驟類。

T5TrainStep

class 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]) — 需要在資料並行組中求平均的損失列表。

在資料並行組中對損失求平均值。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.