Accelerate documentation
Megatron-LM ユーティリティ
Megatron-LM ユーティリティ
MegatronLMPlugin
クラス accelerate.utils.MegatronLMPlugin
< source >( tp_degree: int = Nonepp_degree: int = Noneuse_custom_fsdp: bool = Noneoverlap_cpu_optimizer_d2h_h2d: bool = Noneno_load_optim: bool = Noneeod_mask_loss: bool = Noneno_save_optim: bool = Noneoptimizer_cpu_offload: bool = Noneuse_precision_aware_optimizer: bool = Nonedecoder_last_pipeline_num_layers: int = Nonerecompute_granularity: str = Nonerecompute_method: str = Nonerecompute_num_layers: int = Noneattention_backend: bool = Noneexpert_model_parallel_size: int = Nonecontext_parallel_size: int = Noneattention_dropout: float = Nonehidden_dropout: float = Noneattention_softmax_in_fp32: bool = Noneexpert_tensor_parallel_size: int = Nonecalculate_per_token_loss: bool = Noneuse_rotary_position_embeddings: bool = Nonenum_micro_batches: int = Nonegradient_clipping: float = Nonesequence_parallelism: bool = Nonerecompute_activations: bool = Noneuse_distributed_optimizer: bool = Nonepipeline_model_parallel_split_rank: int = Nonenum_layers_per_virtual_pipeline_stage: int = Noneis_train_batch_min: str = Truetrain_iters: int = Nonetrain_samples: int = Noneweight_decay_incr_style: str = 'constant'start_weight_decay: float = Noneend_weight_decay: float = Nonelr_decay_style: str = 'linear'lr_decay_iters: int = Nonelr_decay_samples: int = Nonelr_warmup_iters: int = Nonelr_warmup_samples: int = Nonelr_warmup_fraction: float = Nonemin_lr: float = 0consumed_samples: list = Noneno_wd_decay_cond: typing.Callable | None = Nonescale_lr_cond: typing.Callable | None = Nonelr_mult: float = 1.0megatron_dataset_flag: bool = Falseseq_length: int = Noneencoder_seq_length: int = Nonedecoder_seq_length: int = Nonetensorboard_dir: str = Noneset_all_logging_options: bool = Falseeval_iters: int = 100eval_interval: int = 1000return_logits: bool = Falsecustom_train_step_class: typing.Any | None = Nonecustom_train_step_kwargs: dict[str, typing.Any] | None = Nonecustom_model_provider_function: typing.Callable | None = Nonecustom_prepare_model_function: typing.Callable | None = Nonecustom_megatron_datasets_provider_function: typing.Callable | None = Nonecustom_get_batch_function: typing.Callable | None = Nonecustom_loss_function: typing.Callable | None = Noneother_megatron_args: dict[str, typing.Any] | None = 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_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およびevalの両方の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') — Weight decayの増加関数。choices=[“constant”, “linear”, “cosine”]。 - start_weight_decay (
float、デフォルトはNone) — L2正則化の初期ウェイト減衰係数。 - end_weight_decay (
float, デフォルトはNone) — L2 正則化における、ランの終了時の重み減衰係数。 - lr_decay_style (
str、デフォルトは'linear') — 学習率の減衰関数。choices=[‘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-(イテレーション数/サンプル数) の割合。 - min_lr (
float、デフォルトは0) — 学習率の最小値。スケジューラは、この閾値を下回る値をクリップします。 - consumed_samples (
List、デフォルトはNone) —accelerator.prepare呼び出しのデータローダーと同じ順序で消費されたサンプルの数。 - 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
クラス accelerate.utils.MegatronLMDummyScheduler
< source >( optimizertotal_num_steps = Nonewarmup_num_steps = 0**kwargs )
Dummy scheduler はモデルのパラメータまたはパラメータグループを提示します。これは主に、deepspeed 設定ファイルでスケジューラの設定が指定されている場合、従来のトレーニングループに従うために使用されます。
MegatronLMDummyDataLoader
クラス accelerate.utils.MegatronLMDummyDataLoader
< source >( **dataset_kwargs )
Dummy dataloaderはモデルのパラメータまたはパラメータグループを提示します。これは主に、従来のトレーニングに従うために使用されます。
AbstractTrainStep
バッチ処理、フォワードパス、損失ハンドラーのための抽象クラス。
GPTTrainStep
クラス accelerate.utils.GPTTrainStep
< source >( acceleratorargs )
GPTの学習ステップクラス。
BertTrainStep
クラス accelerate.utils.BertTrainStep
< source >( acceleratorargs )
Bertの学習ステップクラス。
T5TrainStep
クラス accelerate.utils.T5TrainStep
< source >( acceleratorargs )
T5の学習ステップクラス。
avg_losses_across_data_parallel_group
accelerate.utils.avg_losses_across_data_parallel_group
< source >( losses )
データ並列グループ全体での平均損失。