Megatron-LMの高速化関連オプション一覧
network_size_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
num-layers | トランスフォーマーレイヤ数 | None | モデル依存, int |
encoder-num-layers | トランスフォーマーエンコーダレイヤ数 | None | モデル依存, int |
decoder-num-layers | トランスフォーマーデコーダレイヤ数 | None | モデル依存, int |
hidden-size | トランスフォーマーの隠れサイズ | None | モデル依存、int |
ffn-hidden-size | トランスフォーマーFFNの隠れサイズ | 4 * hidden-size | モデル依存、int |
num-attention-heads | トランスフォーマーアテンションヘッド数 | None | モデル依存、int |
kv-channels | マルチヘッドアテンションのProjection weights dimension | hidden-size // num-attention-heads | モデル依存、int |
group-query-attention | group-query-attentionを使用する | 無 | 有無 |
num-query-groups | group-query-attentionのquery-group数 | 1 | int |
max-position-embeddings | position embeddingサイズ | None | モデル依存、int |
position-embedding-type | Deprecated. Position embedding type | "learned_absolute" | learned_absolute or "rope" or "none" |
use-rotary-position-embeddings | rotary position embeddingsを使用する | 無 | 有無 |
rotary-base | rotary position embeddingsのtheta値 | 10000 | int |
rotary-percent | rotary dimensionの使用率 | 1.0 (100%) | float |
rotary-interleaved | interleaved rotary embeddingを使用する | 無 | 有無 |
rotary-seq-len-interpolation-factor | rotary embeddingsのsequence length補間係数 | None | int |
no-position-embedding | position embeddingを使用しない | 無 | 有無 |
make-vocab-size-divisible-by | 計算効率のためにvocab sizeを割り切る単一サイズ。この値でpaddingされる | 128 | int |
normalization | layer normalization type | "layernorm" | "layernorm" or "rmsnorm" |
norm-epsilon | layer norm epsilon | 1e-5 | float |
apply-layernorm-1p | 数値的な安定性を向上させるためにlayer normを0中心に調整する | 無 | 有無 |
apply-residual-connection-post-layernorm | オリジナルのBERT残差接続順序を使用する | 無 | 有無 |
openai-gelu | OpenAI GeLUを使用する(後方互換性の確保を除いて非推奨) | 無 | 有無 |
squared-relu | デフォルトgeluの代わりにsquared relu activationを使用する | 無 | 有無 |
swiglu | デフォルトgeluの代わりにgated linear units and SiLU activationを使用する | 無 | 有無 |
onnx-safe | ONNX exporterの既知の問題を回避するオプション | false | bool |
bert-no-binary-head | BERT binary headを無効化する | 無 | 有無 |
untie-embeddings-and-output-weights | embeddingsとoutput weightsをほどく | 無 | 有無 |
regularization_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
attention-dropout | Post attention dropout率 | 0.1 | float |
hidden-dropout | hidden state transformerのdropout率 | 0.1 | float |
weight-decay | L2正規化のweight decay係数 | 0.01 | float |
start-weight-decay | L2正規化のweight decay係数の初期値 | なし | float |
end-weight-decay | L2正規化のweight decay係数の最終値 | なし | float |
weight-decay-incr-style | weight decay増加関数 | "constant" | "constant" or "linear" or "cosine" |
clip-grad | global L2 normに基づくGradient clipping | 1.0 | float |
adam-beta1 | adamの係数1 | 0.9 | float |
adam-beta2 | adamの係数2 | 0.999 | float |
adam-eps | 数値安定性を向上させるための分母に加算される項 | 1e-8 | float |
sgd-momentum | SGDのmomentum因子 | 0.9 | float |
training_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
micro-batch-size | マイクロバッチサイズ | None | int |
global-batch-size | グローバルバッチサイズ | None(micro-batch-size * data-parallel-size) | int |
rampup-batch-size | --rampup-batch-size <start batch size> <batch size incerement> <ramp-up samples> 、start batch sizeからglobal-batch-sizeまでイテレーション毎に線形にバッチサイズを増加させる | None | |
decrease-batch-size-if-needed | batch_sizeがmicro_batch_size×dp_sizeで割り切れない場合にbatch_sizeを減らす | 無 | 有無 |
recompute-activations | 大きいモデル、シーケンス、バッチサイズのトレーニングのためにactivationの再計算を有効化 | 無 | 有無 |
recompute-granularity | recompute-activationsの粒度、"full":tranformer layer全体、"selective":core attention part | None | "full" or "selective" |
no-check-for-nan-in-loss-and-grad | loss, gradのNaNをチェックしない | 無 | 有無 |
distribute-saved-activations | 再計算したactivationsをモデルパラレルグループを横断して分配する | 無 | 有無 |
recompute-method | 再計算メソッド、"uniform":transformer layerを均等に分割し、各チャンクで再計算、"block":パイプラインステージごとに再計算 | None | "uniform" or "block" |
recompute-num-layers | recompute-methodで指定した再計算手法における再計算レイヤの数 | 1 | int |
no-clone-scatter-output-in-embedding | emebedding layerにおけるscatterの出力をGC original tensorへとcloneしない | 無 | 有無 |
profile | nsys profilingを有効にする | 無 | 有無 |
profile-step-start | プロファイルを取る開始global step | 10 | int |
profile-step-end | プロファイルを取る終了global step | 12 | int |
profile-ranks | プロファイルを取るグローバルランク | [0] | int配列 |
tp-comm-overlap | TP通信とGEMMカーネルをオーバラップする | 無 | 有無 |
tp-comm-overlap-cfg | tp-comm-overlapのコンフィグファイル | None | str |
disable-tp-comm-overlap-ag | パイプラインにおけるGEMMとAll-Gatherのオーバラップを無効化する | 無 | 有無 |
disable-tp-comm-overlap-rs | パイプラインにおけるGEMMとReduce-Scatterのオーバラップを無効化する | 無 | 有無 |
tp-comm-overlap-rs-dgrad | Reduce-Scatterとdgrad GEMMをオーバラップする | 無 | 有無 |
disable-tp-comm-bulk-dgrad | All-Gatherとbprop activation gradient GEMMのオーバラップを無効化する | 無 | 有無 |
disable-tp-comm-bulk-wgrad | All-Gatherとbprop weight gradient GEMMのオーバラップを無効化する | 無 | 有無 |
use-cpu-initialization | CPUで重みを初期化し、TPによる初期化の違いを排除する | 無 | 有無 |
empty-unused-memory-level | イテレーション毎にtorch.cuda.empty_cache()を呼ぶ | 0 | 0 (off) or 1 (moderate) or 2 (aggressive) |
deterministic-mode | デバッグ用に決定的動作で実行する | 無 | 有無 |
check-weight-hash-across-dp-replicas-interval | weight hashを確認するinterval | None | int |
calculate-per-token-loss | global batchのnon-padded tokenに対してcross entropy lossを計算する | 無 | 有無 |
deprecated
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
checkpoint-activations | recompute-activationsと同等 | 無 | 有無 |
train-iters | 学習イテレーション数 | None | int, train-samplesのどちらかを設定 |
train-samples | 学習サンプル数 | None | int, train-itersのどちらかを設定 |
log-interval | ログ出力のイテレーション間隔 | 100 | int |
exit-interval | 終了イテレーション | None | int |
exit-duration-in-mins | 終了時間(分) | None | int |
exit-signal-handler | SIGTERM受信後、checkpointをsaveして終了する | 無 | 有無 |
tensorboard-dir | tensorboard logのディレクトリ | None | str |
no-masked-softmax-fusion | query_key_value scaling, masking, softmaxのfusionを無効化 | 無 | 有無 |
no-bias-gelu-fusion | bias, geluのfusionを無効化 | 無 | 有無 |
no-bias-swiglu-fusion | bias, swigluのfusionを無効化 | 無 | 有無 |
no-bias-dropout-fusion | bias, dropoutのfusionを無効化 | 無 | 有無 |
no-bias-rope-fusion | rope fusionを無効化。megatron-coreのみ対応 | 無 | 有無 |
cross-entropy-loss-fusion | cross entropy loss計算をfusionする | 無 | 有無 |
use-flash-attn | FlashAttentionを使用する | 無 | 有無 |
disable-bias-linear | linear layersのbiasを無効化する | 無 | 有無 |
add-qkv-bias | QKV linear layerのbiasを有効化 | 無 | 有無 |
optimizer | optimizer function | "adam" | "adam" or "sgd" |
dataloader-type | single passかmulti pass | None | "single" or "cyclic" or "external" |
no-async-tensor-model-parallel-allreduce | このオプションは無視される | 無 | 有無 |
no-persist-layer-norm | persistent fused layer norm kernelを無効化する。特定のhidden sizeのみサポートされる | 無 | 有無 |
sequence-parallel | Megatron-LMのsequence parallel optimizationを有効化する | 無 | 有無 |
no-gradient-accumulation-fusion | linear layerのweight gradient計算に対するfusing gradient accumulationを無効化する | 無 | 有無 |
use-mcore-models | megatron-coreを使用する。しかしデフォルトでmcoreを使用するのでdeprecated | 無 | 有無 |
use-legacy-models | megatron-legacyを使用する | 無 | 有無 |
manual-gc | しきい値ベースのガベージコレクターを使用しない | 無 | 有無 |
manual-gc-interval | ガベージコレクションをトリガーするトレーニングステップ間隔 | 0(gcをトリガーしない) | int |
no-manual-gc-eval | evalではmanual gcしない | 無 | 有無 |
disable-tp-comm-split-ag | All-Gatherとfprop GEMMをオーバラップしない | 無 | 有無 |
disable-tp-comm-split-rs | Reduce-Scatterとfprop GEMMをオーバラップしない | 無 | 有無 |
initialization_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
seed | python, numpy, pytorch, cudaで使用されるRandom seed | 1234 | int |
data-parallel-random-init | data parallel ranksに沿ってパラメータをランダム初期化する | 無 | 有無 |
init-method-std | 重みの初期化に使用されるゼロ平均正規分布の標準偏差 | 0.02 | float |
init-method-xavier-uniform | Xavier uniform parameter初期化を有効化 | 無 | 有無 |
learning_rate_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
lr | warmup, decay適用前の初期learning rate | None | float |
lr-decay-style | Learning rate decay function | "linear" | "constant" or "linear" or "cosine" or "inverse-square-root" or "WSD" |
lr-wsd-decay-style | WSDのdecay style | "exponential" | "exponential" or "linear" or "cosine" |
lr-decay-iters | decay learning rate overのイテレーション数 | None(= train-iters) | int |
lr-decay-samples | decay learning rate overのサンプル数 | None(= train-samples) | int |
lr-wsd-decay-samples | WSDにおけるdecayサンプル数 | None | int |
lr-wsd-decay-iters | WSDにおけるdecayイテレーション数 | None | int |
lr-warmup-fraction | fraction of lr-warmup-(iters/samples) | None | float |
lr-warmup-iters | linearly warmup learning rate overのイテレーション数 | 0 | int |
lr-warmup-samples | linearly warmup learning rate overのサンプル数 | 0 | int |
lr-warmup-init | lr warmupの初期値 | 0.0 | float |
warmup | 旧lr warmupパラメータ、lr-warmup-*を使う | None | int |
min-lr | learning rateの最小値 | 0.0 | float |
override-opt_param-scheduler | チェックポイントを無視してlrスケジューラの値をすべてリセットする | 無 | 有無 |
use-checkpoint-opt_param-scheduler | チェックポイントのlrスケジューラの値を使用する | 無 | 有無 |
decoupled-lr | 入力と出力層でlrを分ける | None | float |
decoupled-min-lr | 入力と出力層でlrの最小値を分ける | None | float |
checkpointing_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
save | チェックポイントの保存パス | None | str |
save-interval | チェックポイントを保存するイテレーション間隔 | None | int |
no-save-optim | optimizerを保存しない | 無 | 有無 |
no-save-rng | rng stateを保存しない | 無 | 有無 |
load | チェックポイントのloadパス | None | str |
no-load-optim | チェックポイントのoptimizerをloadしない | 無 | 有無 |
no-load-rng | チェックポイントのrng stateをloadしない | 無 | 有無 |
non-persistent-save-interval | non-persistent savesするイテレーション間隔 | None | int |
non-persistent-ckpt-type | non-persistent modelチェックポイントのタイプ | None(non-persistent checkpointingを使用しない) | "global"(Luster)or "local"(rankごとにSSD/ramdisk、TBD)or "in_memory"(serializationを防ぐ特別な方法、TBD) |
non-persistent-global-ckpt-dir | global non-persistent model checkpointsのディレクトリ | None | str |
finetune | finetuneのためにチェックポイントからoptimizer, rng stateをloadせずに、iterationを0に設定する | 無 | 有無 |
pretrained-checkpoint | ファインチューンのために事前学習されたモデルのチェックポイントディレクトリ | None | str |
ckpt-step | loadするチェックポイントのステップ | None | int |
no-initialization | モデル構築時に初期化を行わないことでチェックポイントからの読み込み時に起動時間を短縮する | 無 | 有無 |
use-checkpoint-args | チェックポイントのargsで現在のargsを上書きする | 無 | 有無 |
exit-on-missing-checkpoint | チェックポイントのloadに失敗した場合に、ランダムパラメータでtrainingせずに終了する | 無 | 有無 |
use-dist-ckpt | distributed checkpoint formatを使用する | 無 | 有無 |
auto-detect-ckpt-format | チェックポイントフォーマットを自動検出する | 無 | 有無 |
dist-ckpt-format | distributed checkpoint format | "torch_dist" | "zarr" or "torch_dist" |
ckpt-fully-parallel-save | デフォルトになったのでDeprecated | 無 | 有無 |
no-ckpt-fully-parallel-save | ckpt-fully-parallel-saveしない | 無 | 有無 |
async-save | チェックポイントを非同期保存する | 無 | 有無 |
ckpt-fully-parallel-load | ckpt-fully-parallel-saveで保存されたチェックポイントのload | 無 | 有無 |
ckpt-assume-constant-structure | model, optimizer構造がconstantであることを仮定する | 無 | 有無 |
dist-ckpt-strictness | distributed checkpoint loadにおけるkey mismatchのhandling方法 | "assume_ok_unexpected" | StrictHandling.values |
mixed_precision_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
fp16 | fp16でmodelを実行する | 無 | 有無 |
bf16 | bfloat16でmodelを実行する | 無 | 有無 |
loss-scale | Static loss scaling、2べきを設定するとfp16 convergenceの向上を期待できる | None (dynamic loss scaling) | float |
initial-loss-scale | dynamic loss scalingの初期値 | 2**32 | float |
min-loss-scale | dynamic loss scalingの最小値 | 1.0 | float |
loss-scale-window | dynamic scaleの上下ウィンドウ | 1000 | float |
hysteresis | dynamic loss scalingのhysteresis | 2 | int |
fp32-residual-connection | residual connectionsをFP32に移行 | 無 | 有無 |
apply-query-key-layer-scaling | scale Q * K^T by 1 / layer-number | 無 | 有無 |
attention-softmax-in-fp32 | --no-query-key-layer-scaling時に、fp32でattention maskingとsoftmaxを計算する | 無 | 有無 |
accumulate-allreduce-grads-in-fp32 | gradient accumulationとallreduceをFP32で実行 | 無 | 有無 |
fp16-lm-cross-entropy | lmヘッドのクロスエントロピーのunreduced loss計算をfp16に移行 | 無 | 有無 |
distributed_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
tensor-model-parallel-size | TPサイズ | 1 | int |
pipeline-model-parallel-size | PPサイズ | 1 | int |
encoder-pipeline-model-parallel-size | encoderのPPサイズ | None | int |
pipeline-model-parallel-split-rank | encoderとdecoderで分割するランク。Deprecated: use encoder-pipeline-model-parallel-size | None | int |
model-parallel-size | 旧オプション、tensor-model-parallel-sizeを使用する | None | int |
num-layers-per-virtual-pipeline-stage | virtual pipeline stageのレイヤ数 | None | int |
no-overlap-p2p-communication | pipeline parallel communicationとforward/backwardチャンクをオーバラップしない | 無 | 有無 |
distributed-backend | distributed trainingのバックエンド | "nccl" | "nccl" or "gloo" |
distributed-timeout-minutes | torch.distributed.のタイムアウト分 | 10 | int |
overlap-grad-reduce | DDP grad reduceをオーバラップする | 無 | 有無 |
defer-embedding-wgrad-compute | vocabulary projection linear layer weight gradient計算をpipeline flushまで延期する | 無 | 有無 |
wgrad-deferral-limit | defer-embedding-wgrad-computeにおいて延期するマイクロバッチ数 | 0 | int |
no-delay-grad-reduce | 最初のPPステージを除くすべてのPPステージでgrad reductionを遅延/同期させない | 無 | 有無 |
ddp-bucket-size | data-parallel通信のバケットサイズ | None | int |
ddp-average-in-collective | コレクティブ通信で平均を計算する | 無 | 有無 |
overlap-param-gather | param all-gatherをオーバラップする | 無 | 有無 |
delay-param-gather | 最初のPPステージを除くすべてのPPステージでparal all-gatherを遅延/同期させる | 無 | 有無 |
no-scatter-gather-tensors-in-pipeline | パイプラインでのテンソルの通信を最適化するためにscatter/gatherを使用しない | 無 | 有無 |
use-ring-exchange-p2p | p2p communicationsにcustom-built ring exchangeを使用する | 無 | 有無 |
local-rank | ローカルランク | 無 | 有無 |
lazy-mpu-init | initialize_megatron()時にDDPの初期化を省略し、代替の関数を返す。external DDP manager用 | 無 | 有無 |
standalone-embedding-stage | input embedding layerをpipeline stageに配置する | 無 | 有無 |
use-distributed-optimizer | distributed optimizerを使用する | 無 | 有無 |
context-parallel-size | context parallelismの次元数 | 1 | int |
nccl-communicator-config-path | NCCL communicator config yamlのパス。min_ctas, max_ctas, cga_cluster_sizeを設定 | None | str |
use-tp-pp-dp-mapping | デフォルトtp-dp-ppではなくtp-pp-dpでrankを割り当てる | None | str |
validation_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
eval-iters | evaluation validation/testのイテレーション数 | 100 | int |
eval-interval | evaluationのイテレーション間隔 | 1000 | int |
test-mode | 実験と並行してreal-time test行う | 無 | 有無 |
skip-train | trainingを省略し、evalutionのみ実行する | 無 | 有無 |
data_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
data-path | データセットのパス、複数指定可 | None | |
split | training, validation, testの分割割合 | "969, 30, 1" | str |
train-data-path | trainingデータセットのパス | None | |
valid-data-path | validデータセットのパス | None | |
test-data-path | testデータセットのパス | None | |
data-cache-path | キャッシュインデックスファイルの格納パス | None | |
no-mmap-bin-files | .binファイルのmmap-ingを無効化する | 無 | 有無 |
mock-data | data load, validation, optをスキップして、人工的にモックデータを生成する | 無 | 有無 |
vocab-size | vocab size | None | int |
vocab-file | vocab fileのパス | None | str |
merge-file | BPE merge fileのパス | None | str |
vocab-extra-ids | 追加vocabularyトークン数 | 0 | int |
seq-length | 最大シーケンス長 | None | int |
encoder-seq-length | encoderの最大シーケンス長 | None | int |
decoder-seq-length | decoderの最大シーケンス長 | None | int |
retriever-seq-length | biencoder modelのretrieverのための最大シーケンス長 | 256 | int |
sample-rate | trainingデータのサンプルレート | 1.0 | float, (0,1) |
mask-prob | トークンをマスクに置き換える確率 | 0.15 | float |
short-seq-prob | shortシーケンスを生成する確率 | 0.1 | float |
num-workers | Dataloader number of workers | 2 | int |
tokenizer-type | 使用するtokenizer | None | "BertWordPieceLowerCase" or "BertWordPieceCase" or "GPT2BPETokenizer" or "SentencePieceTokenizer" or "GPTSentencePieceTokenizer" or "HuggingFaceTokenizer" or "Llama2Tokenizer" or "Llama3Tokenizer" or "MistralTokenizer" or "TikTokenizer" or "NullTokenizer" |
tokenizer-model | Sentencepiece tokenizer model | None | str |
tiktoken-pattern | tiktoken tokeninzerのバージョン | None | "v1" or "v2" |
tiktoken-num-special-tokens | tiktoken tokeninzerのスペシャルトークン数 | 1000 | int |
tiktoken-special-tokens | tiktokenスペシャルトークン例:["<unk>", "<s>", "</s>"] | None | str配列 |
reset-position-ids | end-of-document tokenの後にposistion idsをリセットする | 無 | 有無 |
reset-attention-mask | end-of-document tokenの後にattention maskをリセットする | 無 | 有無 |
eod-mask-loss | end-of-document tokenのためにlossをmaskする | 無 | 有無 |
no-create-attention-mask-in-dataloader | dataloaderでattention masksを作らない | 無 | 有無 |
num-dataset-builder-threads | dataset builderのためのrankごとのスレッド数 | 1 | int |
s3-cache-path | s3 dataloaderを使用した際のcache index filesパス | None | str |
autoresume_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
adlr-autoresume | adlr cluster上でautoresumeを有効化する | 無 | 有無 |
adlr-autoresume-interval | autoresume信号をチェックする間隔 | 1000 | int |
moe_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
expert-model-parallel-size | expert model parallelismの次元 | 1 | int |
num-experts | MoEのexpert数 | None | int |
moe-router-load-balancing-type | load balancing type | "aux_loss" | "aux_loss" or "sinkhorn" or "none" |
moe-router-topk | 各トークンにルーティングするエキスパートの数 | 2 | int |
moe-router-pre-softmax | pre-softmax routingを有効化 | 無 | 有無 |
moe-grouped-gemm | Grouped GEMMを活用 | 無 | 有無 |
moe-aux-loss-coeff | aux lossの係数をスケーリング。推奨1e-2 | 0.0 | float |
moe-z-loss-coeff | z-lossの係数をスケーリング。推奨1e-3 | None | float |
moe-input-jitter-eps | 入力テンソルに印加するノイズのjitter-eps | None | float |
moe-token-dispatcher-type | moe-token-dispatcher-type | "allgather" | "allgather" or "alltoall" |
moe-per-layer-logging | レイヤごとのloggingを有効化 | 無 | 有無 |
moe-expert-capacity-factor | 各expertのcapacity factor | None | float |
moe-pad-expert-input-to-capacity | 入力のパディング | 無 | 有無 |
moe-token-drop-policy | drop tokens policy | "probs" | probs or "position" |
moe-layer-recompute | moe_layerのcheckpointing | 無 | 有無 |
moe-extended-tp | expert parallelismを利用する | 無 | 有無 |
logging_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
log-params-norm | params normを計算しログ出力する | 無 | 有無 |
log-num-zeros-in-grad | 勾配の零数を計算しログ出力する | 無 | 有無 |
log-throughput | throughputを計算しログ出力する | 無 | 有無 |
log-progress | checkpoint directoryのprogress.txtにprogressを出力する | 無 | 有無 |
timing-log-level | ログレベル | 0 | 0(イテレーション情報のみ)or 1(一部のoperations)or 2(全てのoperations) |
no-barrier-with-level-1-timing | Level 1タイマーにbarrierを使用しない | 無 | 有無 |
timing-log-option | 複数rankの時間reportの方法 | "minmax" | "max"(最大値のみ報告)or "minmax"(最小値と最大値のみ報告)or "all"(全て報告) |
tensorboard-log-interval | tensorboardのログ間隔 | 1 | int |
tensorboard-queue-size | tensorboardのイベントキューサイズ | 1000 | int |
log-timers-to-tensorboard | tensorboardにtimersを記録する | 無 | 有無 |
no-log-loss-scale-to-tensorboard | tensorboardにloss scaleを記録しない | 無 | 有無 |
log-validation-ppl-to-tensorboard | tensorboardにvalidation perplexityを記録する | 無 | 有無 |
log-memory-to-tensorboard | tensorboardにmemoryを記録する | 無 | 有無 |
log-world-size-to-tensorboard | tensorboardにworld-sizeを記録する | 無 | 有無 |
wandb-project | wandb project name | "" | str |
wandb-exp-name | wandb experiment name | "" | str |
wandb-save-dir | wandb resultsをローカルに保存するディレクトリ | "" | str |
logging-level | デフォルトロギングレベル | None | str |
straggler_detector_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
log-straggler | GPU毎にstragglerをログ出力する | 無 | 有無 |
disable-straggler-on-startup | Startup時にStragglerDetectorを無効化する | 無 | 有無 |
straggler-ctrlr-port | StragglerDetectorをon/offするポート | 65535 | int |
straggler-minmax-count | high/low estimated throughputを報告するランク数 | 1 | int |
inference_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
inference-batch-times-seqlen-threshold | 推論時に、batch size×sequence-lengthがこの値を下回る場合、pipeliningを使用しない | 512 | int |
max-tokens-to-oom | OOMを防ぐための、推論時のトークン数の上限 | 12000 | int |
output-bert-embeddings | Bert embeddingsを出力する | 無 | 有無 |
bert-embedder-type | Bert embedder | "megatron" | "megatron" or "huggingface" |
transformer_engine_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
fp8-format | fp8 format | None | e4m3 or "hybrid" |
fp8-margin | fp8のScaling margin | 0 | int |
fp8-interval | fp8のScaling更新間隔 | 0 | int |
fp8-amax-history-len | テンソルごとにamax historyを記録するステップ数 | 1 | int |
fp8-amax-compute-algo | historyからamaxを計算するアルゴリズム | "most_recent" | "most_recent" or "max" |
no-fp8-wgrad | その他の計算がfp8に設定されていても、wgradを高精度に計算する | 無 | 有無 |
transformer-impl | Transformerの実装 | "local" | "local" or "transformer_engine" |
experimental_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
spec | <module_location function_name> pairをspecifyする | None | str |
hybrid-attention-ratio | attention layersのtotal layerに対する比 | 0.0 | float, [0,1] |
hybrid-mlp-ratio | mlp layersのtotal layerに対する比 | 0.0 | float, [0,1] |
hybrid-override-pattern | hybrid layer patternを強制する | None | str |
yaml-cfg | 追加のargsのためのconfig file | None | str |
one_logger_args
オプション名 | 役割 | デフォルト値 | 制約 |
---|---|---|---|
no-one-logger | one_loggerを無効化する | 無 | 有無 |
one-logger-project | one_logger project name | None | str |
one-logger-run-name | one-logger表示名 | None | str |
one-logger-async | one-logger async mode | None | str |
app-tag-run-name | one-logger tag名 | None | str |
app-tag-run-version | one-loggerバージョン | 0.0.0 | str |