GitHub リポジトリ - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GitHub リポジトリ

トレーニングジョブを起動するには、2 つの異なる GitHub リポジトリのファイルを使用します。

これらのリポジトリには、大規模言語モデル (LLM) トレーニングプロセスを開始、管理、カスタマイズするための重要なコンポーネントが含まれています。リポジトリのスクリプトを使用して、LLMs のトレーニングジョブをセットアップして実行します。

HyperPod レシピリポジトリ

SageMaker HyperPod レシピリポジトリを使用してレシピを取得します。

  1. main.py: このファイルは、クラスターまたは SageMaker トレーニングジョブにトレーニングジョブを送信するプロセスを開始するための主要なエントリポイントとして機能します。

  2. launcher_scripts: このディレクトリには、さまざまな大規模言語モデル (LLMs) のトレーニングプロセスを容易にするために設計された、一般的に使用されるスクリプトのコレクションが含まれています。

  3. recipes_collection: このフォルダには、開発者が提供する事前定義された LLM レシピのコンパイルが格納されます。ユーザーは、これらのレシピをカスタムデータと組み合わせて活用して、特定の要件に合わせた LLM モデルをトレーニングできます。

SageMaker HyperPod レシピを使用して、トレーニングジョブまたはファインチューニングジョブを起動します。使用しているクラスターに関係なく、ジョブを送信するプロセスは同じです。たとえば、同じスクリプトを使用して Slurm または Kubernetes クラスターにジョブを送信できます。ランチャーは、次の 3 つの設定ファイルに基づいてトレーニングジョブをディスパッチします。

  1. 一般設定 (config.yaml): トレーニングジョブで使用されるデフォルトのパラメータや環境変数などの一般的な設定が含まれます。

  2. クラスター設定 (クラスター): クラスターのみを使用するトレーニングジョブ用。Kubernetes クラスターにトレーニングジョブを送信する場合は、ボリューム、ラベル、再起動ポリシーなどの情報を指定する必要がある場合があります。Slurm クラスターの場合、Slurm ジョブ名を指定する必要がある場合があります。すべてのパラメータは、使用している特定のクラスターに関連しています。

  3. レシピ (レシピ): レシピには、モデルタイプ、シャーディング度、データセットパスなど、トレーニングジョブの設定が含まれています。たとえば、Llama をトレーニングモデルとして指定し、8 台のマシンで完全シャード分散並列 (FSDP) などのモデルまたはデータ並列処理手法を使用してトレーニングできます。トレーニングジョブに異なるチェックポイント頻度またはパスを指定することもできます。

レシピを指定したら、ランチャースクリプトを実行して、main.pyエントリポイントの設定に基づいてクラスターのend-to-endのトレーニングジョブを指定します。使用するレシピごとに、 launch_scripts フォルダに付随するシェルスクリプトがあります。これらの例では、トレーニングジョブの送信と開始について説明します。次の図は、SageMaker HyperPod レシピランチャーが上記に基づいてトレーニングジョブをクラスターに送信する方法を示しています。現在、SageMaker HyperPod レシピランチャーは Nvidia NeMo Framework Launcher 上に構築されています。詳細については、NeMo Launcher Guide」を参照してください。

HyperPod レシピランチャーワークフローを示す図。左側の破線のボックス内には、「レシピ」、「config.yaml」、「slurm.yaml または k8s.yaml または sm_job.yaml (クラスター設定)」というラベルが付いた 3 つのファイルアイコンがあります。矢印は、このボックスからHyperPod recipe Launcher」というラベルの中央ボックスを指します。この中央のボックスから、別の矢印が「トレーニングジョブ」を右に指し、「main.py」が矢印の上に書かれています。

HyperPod レシピアダプターリポジトリ

SageMaker HyperPod トレーニングアダプターはトレーニングフレームワークです。これを使用して、トレーニングジョブのライフサイクル全体を管理できます。アダプターを使用して、モデルの事前トレーニングまたは微調整を複数のマシンに分散します。アダプターは、さまざまな並列処理手法を使用してトレーニングを分散します。また、チェックポイントの保存の実装と管理も処理します。詳細については、「詳細設定」を参照してください。

SageMaker HyperPod レシピアダプターリポジトリを使用して、レシピアダプターを使用します。

  1. src: このディレクトリには、モデル並列処理、混合精度トレーニング、チェックポイント管理などのさまざまな機能を含む、大規模言語モデル (LLM) トレーニングの実装が含まれています。

  2. examples: このフォルダには、LLM モデルをトレーニングするためのエントリポイントを作成する方法を示す例のコレクションがあり、ユーザー向けの実用的なガイドとして機能します。