翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル - Amazon SageMaker HyperPod チェックポイントレス事前トレーニングまたはカスタムモデルの微調整
HyperPod でカスタムモデルを使用してチェックポイントレストレーニングを実行するには、次の一連のステップが必要です。
前提条件
環境のセットアップを開始する前に、以下を確認します。
共有ストレージの場所。クラスターノードからアクセスできる Amazon FSx ファイルシステムまたは NFS システムでかまいません。
-
以下の形式のいずれか。
JSON
JSONGZ (圧縮 JSON)
ARROW
ハギングフェイスモデルの重みとシークレットを Nemo がサポートする形式にダウンロードします。 https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face
環境をセットアップする
Kubernetes 環境のセットアップ
Kubernetes 環境を設定するには、以下を実行します。
-
仮想環境をセットアップします。Python が 3.10 以上 3.14 未満を使用していることを確認します。
python3 -m venv ${PWD}/venv source venv/bin/activate -
Kubernetes クラスターに接続する
aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}" -
依存関係のインストール
# install SageMaker HyperPod checkpointless training. git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git cd sagemaker-hyperpod-checkpointless-training
チェックポイントレストレーニングの変更手順
カスタムモデルのチェックポイントレストレーニングを段階的に採用するには、統合ガイド (ここでは Llama 3 70b 事前トレーニングを例として使用) に従ってください。これには、以下が含まれます。
高速コミュニケーターの作成
メモリマップデータローダー (MMAP)
処理中およびチェックポイントレスリカバリ
コンポーネント 1: 高速コミュニケーターの作成
これは、ワーカー間の接続を確立する時間を最適化するためです。コードの変更は不要で、env 変数の設定のみが必要
# Enable Rootless features export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \ hyperpodrun --nproc_per_node=8 \ ... --inprocess-restart \ ...
完全な変更は、llama3 70 トレーニング前起動ジョブ設定
コンポーネント 2: メモリマップデータローダー (MMAP)
プリフェッチされたデータサンプルを保存し、データの前処理を待つことなくすぐにトレーニングを開始するための MMAP キャッシュ。既存のデータローダーをラップすることで、採用するコードの変更を最小限に抑える必要があります。
data_module = MMAPDataModule( data_module=base_data_module, mmap_config=CacheResumeMMAPConfig(cache_dir=…) )
コンポーネント 3 および 4: 処理中およびチェックポイントレスリカバリ
これにより、トレーニングプロセスを再起動したり、チェックポイントからロードしたりすることなく、障害復旧が可能になります。追加のコード変更が必要 (戦略とトレーニング設定の更新、既存のメインのラップ)
@HPWrapper( health_check=CudaHealthCheck(), hp_api_factory=HPAgentK8sAPIFactory(), abort_timeout=60.0, ...) def run_main( cfg, caller: Optional[HPCallWrapper] = None): ... CheckpointlessMegatronStrategy( **self.cfg.strategy, ddp=self.ddp, )
完全な変更は llama3 70 トレーニング前エントリスクリプト
トレーニングの起動
kubectl を使用してチェックポイントレストレーニングを起動できるようになりました。
kubectl apply -f your_job_config.yaml