すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:パラメータ設定

最終更新日:Jul 22, 2024

このトピックでは、Pai-Megatron-Patchを使用できるシナリオと、PAI-Rapidformerを使用して変圧器のトレーニングを加速するときに設定できるパラメーターについて説明します。 PAI-Rapidformerを使用する前に、このトピックを読むことをお勧めします。

シナリオ

  • ブラックボックス方式で変圧器の微調整を加速

  • ブラックボックス方式で変圧器の事前トレーニングを加速

  • Finetunerコードテンプレートを使用して、ホワイトボックス方式で変圧器の微調整を高速化

  • Pretrainerコードテンプレートを使用して、変圧器の事前トレーニングをホワイトボックスで高速化

通常のトレーニング設定: データのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

--micro-batch-size

Integer

Yes

None

N/A

各GPUのバッチサイズ。

--global-batch-size

Integer

Yes

None

N/A

分散トレーニングのすべてのGPUのバッチサイズ。

--tokenizer-type

String

No

None

  • BertWordPieceLowerCase

  • BertWordPieceCase

  • GPT2BPETokenizer

アナライザーのタイプ。

--split

String

No

969, 30, 1

N/A

事前トレーニング、トレーニング、検証、およびテストセットの分割。

-- data-impl

String

No

mmap

  • 怠け者

  • キャッシュ済み

  • mmap

  • 推論する

インデックス付きデータセットを事前トレーニングする方法。

--data-path

String

Yes

None

N/A

事前トレーニングセットが保存されているファイルのパス。

-- data-dir

String

No

None

N/A

微調整用のデータセットが格納されているファイルのパス。

-- data-name

String

Yes

None

N/A

微調整用のデータセットが格納されているファイルの名前。

通常のトレーニング設定: 変圧器のパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- pretrained-model-name-or-path

String

Yes

None

N/A

事前にトレーニングするトランスの名前またはパス。

-- num-layers

Integer

Yes

None

N/A

レイヤーの数。

--hidden-size

Integer

Yes

None

N/A

非表示レイヤーのディメンション。

-- num-attention-heads

Integer

Yes

None

N/A

自己注意レイヤーのヘッドの数。

-- max-position-embeddings

Integer

Yes

None

N/A

位置埋め込みが実行されるシーケンスの長さ。

-- seq-length

Integer

Yes

None

N/A

シーケンスの長さ。

通常のトレーニング設定: トレーニングに関するパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

--task

String

Yes

None

  • sequence_classification

  • token_classification

  • question_answering

  • masked_lm

  • casual_lm

  • seq2seq_lm

  • 事前トレーニング

トレーニングタスクの名前。

--save

String

Yes

None

N/A

トランスが保存されているファイルのパス。

-- lr

Float

Yes

None

N/A

学習率。

-- lr-decay-style

String

Yes

linear

  • constant

  • linear

  • cosine

学習率の減衰のスキーム。

--weight-decay

Float

Yes

0.01

N/A

重みの減衰値。

-- clip-grad

Float

No

1

N/A

グラデーションクリッピング値。

-- lr-warmup-fraction

Float

No

None

N/A

学習率のウォームアップ。

-train-iters

Integer

Yes

None

N/A

反復回数。

--epochs

Integer

No

None

N/A

エポックの数。

-- log-interval

Integer

No

100

N/A

ログが表示される間隔。

アクセラレーションスイッチの設定: スパローゲートMoEのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- num-experts

Integer

No

None

N/A

エキスパート混合物 (MoE) 層の数。

加速スイッチ設定: 混合精度トレーニングのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

---mixed-precision

Boolean

No

None

N/A

FP16データ転送を有効にするかどうかを指定します。

注意: PAI-Rapidformerが提供するTrainer、Pretrainer、またはFinetunerコードテンプレートを使用する場合にのみ、混合精度トレーニングを有効にできます。

アクセラレーションスイッチ設定: ZeRO、OSS、SDP、またはFSDPを使用したモデル状態パーティショニングのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- oss-memory-optimization

Boolean

No

N/A

N/A

オプティマイザーステートシャーディング (OSS) を使用してオプティマイザーステートを分割するかどうかを指定します。

-- oss-sdp-memory-optimization

Boolean

No

N/A

N/A

シャードデータパラレル (SDP) を使用してオプティマイザーの状態とグラデーションをパーティション分割するかどうかを指定します。

--fsdp-memory-optimization

Boolean

No

N/A

N/A

オプティマイザーの状態、グラデーション、およびパラメーターをパーティション分割するためにFSDP (Fully Sharded Data Parallel) を使用するかどうかを指定します。

--zero-1-memory-optimization

Boolean

No

N/A

N/A

Zero Redundancy Optimizer (ZeRO) を使用してオプティマイザー状態をパーティション分割するかどうかを指定します。

--zero-2-memory-optimization

Boolean

No

N/A

N/A

ZeROを使用してオプティマイザーの状態とグラデーションをパーティション分割するかどうかを指定します。

--zero-3-memory-optimization

Boolean

No

N/A

N/A

ZeROを使用してオプティマイザーの状態、グラデーション、およびパラメーターをパーティション分割するかどうかを指定します。

注: Trainerコードテンプレートを使用する場合にのみ、ZeROを使用できます。 トレーナーコードテンプレートを使用しない場合は、OSS、SDP、またはFSDPを使用できます。

アクセラレーションスイッチの設定: 3D並列処理に関するパラメータ (データ、テンソル、パイプライン並列処理)

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- tensor-model-parallel-size

Integer

No

1

N/A

テンソル並列処理のサイズ。

-- pipeline-model-parallel-size

Integer

No

1

N/A

パイプラインの並列処理のサイズ。

注:

  • 3D並列処理とモデル状態のパーティション分割を同時に有効にするには、ZeROのみを使用してオプティマイザー状態とグラデーションをパーティション分割するか、オプティマイザー状態のみをパーティション分割します。

  • トレーナーコードテンプレートを使用する場合にのみ、3D並列処理を有効にできます。

加速スイッチ設定: グラフ最適化のパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- onnx-runtime-training

Boolean

No

None

N/A

ONNX Runtimeによって提供されるグラフ最適化を有効にするかどうかを指定します。

アクセラレーションスイッチの設定: CPU負荷トレーニングのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

--cpu-offload

Boolean

No

None

N/A

CPUロードトレーニングを有効にするかどうかを指定します。

注: CPU負荷トレーニングとモデル状態のパーティション分割を同時に有効にするには、モデル状態のパーティション分割にZeROのみを使用できます。

アクセラレーションスイッチの設定: チェックポイントの有効化に関するパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- checkpoint-activations

Boolean

No

None

N/A

チェックポイントを有効にするかどうかを指定します。

加速スイッチの設定: 勾配累積に関するパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

--micro-batch-size

Integer

Yes

1

N/A

ミニバッチのサイズ。

--global-batch-size

Integer

Yes

1

N/A

グローバルバッチのサイズ。

注:

  • グラデーション累積を有効にできるのは、PretrainerまたはFinetunerコードテンプレートを使用して反復ベースの事前トレーニングを実行する場合のみです。 エポックベースの微調整を実行する場合、グラデーション累積を有効にすることはできません。

  • 勾配累積結果は、前のテーブルのパラメータの値とランクパラメータの値とに基づいて自動的に計算することができる。

アクセラレーションスイッチ設定: Dynamic Shapeのデータイテレータのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- data-iterator dynamic-shape

String

No

None

  • ダイナミック形状

  • 固定形状

Dynamic Shapeのデータ反復子。

注: Pretrainerコードテンプレートを事前トレーニングに使用する場合にのみ、Dynamic Shapeのデータイテレータを有効にできます。

アクセラレーションスイッチの設定: 操作ベースのフュージョンオプティマイザのパラメータ

パラメーター

データ型

必須

デフォルト値

列挙値

説明

-- optimizers

String

Yes

apex_adam

  • apex_adam

  • apex_lamb

アペックス融合アダム /子羊