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

Platform For AI:MPIJob トレーニングジョブの送信

最終更新日:Nov 07, 2025

Platform for AI (PAI) の Deep Learning Containers (DLC) は、機械学習のための柔軟で安定した、使いやすく、パフォーマンス専有型のトレーニング環境を提供する、オールインワンのクラウドネイティブなディープラーニングプラットフォームです。このトピックでは、mpirun と DeepSpeed を使用して、DLC で MPIJob タイプの分散トレーニングジョブを送信する方法について説明します。

前提条件

制限事項

MPIJob トレーニングジョブは、中国 (ウランチャブ) リージョンでのみ Lingjun リソースを使用して送信できます。

MPIJob トレーニングジョブの送信

MPIJob タイプの分散トレーニングジョブを送信するには、次のステップを実行します。

ステップ 1: コードソースの準備

公式の DeepSpeed サンプルを使用してデータセットを作成します。必須パラメーターを構成します。次のセクションでは、主要なパラメーターについて説明します。他のパラメーターにはデフォルト設定を使用します。詳細については、「コードビルド」をご参照ください。

ステップ 2: 分散トレーニングジョブの送信

次のいずれかのメソッドを使用して、分散トレーニングジョブを送信できます。

mpirun

  1. [ジョブの作成] ページに移動します。

    1. PAI コンソールにログインします。ページの上部でターゲットリージョンとワークスペースを選択し、[Deep Learning Containers (DLC)] をクリックします。

    2. Deep Learning Containers (DLC) ページで、[ジョブの作成] をクリックします。

  2. [ジョブの作成] ページで、次の表で説明されている主要なパラメーターを構成します。他のパラメーターの詳細については、「トレーニングジョブの作成」をご参照ください。

    パラメーター

    説明

    環境情報

    ノードイメージ

    このソリューションは、MPIJob を送信して分散トレーニングタスクを実行するためのテストイメージを提供します。[イメージアドレス] をクリックし、テキストボックスに dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai-common/deepspeed-training:23.08-gpu-py310-cu122-ubuntu22.04 と入力します。イメージアドレスで、<RegionID> をリージョン ID に置き換えます。たとえば、中国 (ウランチャブ) のリージョン ID は cn-wulanchabu です。リージョン ID の詳細については、「リージョンとゾーン」をご参照ください。

    起動コマンド

    分散トレーニングジョブのすべてのノードで実行されるコマンドです。この例では、システム環境変数のデフォルト構成が使用されます。コマンドで環境変数を構成して、デフォルト構成を上書きできます。詳細については、「システム環境変数」をご参照ください。

    cd /root/code/DeepSpeedExamples/training/cifar/
    
    # --np 2 2つのノードを開始します。
    mpirun -np 2 --allow-run-as-root -bind-to none -map-by slot -x LD_LIBRARY_PATH -x PATH -mca pml ob1 -mca btl ^openib python /root/code/DeepSpeedExamples/training/cifar/cifar10_tutorial.py

    コードビルド

    [オンライン構成] を選択し、作成したコードを選択します。[マウントパス] のデフォルト値を保持します。

    リソース情報

    リソースタイプ

    [Lingjun AI コンピューティングサービス] を選択します。

    説明

    このパラメーターは、ワークスペースが Lingjun リソースと一般リソースの両方を使用して DLC タスクを送信することをサポートしている場合にのみ使用できます。

    ソース

    [リソースクォータ] を選択します。

    リソースクォータ

    作成した Lingjun リソースクォータを選択します。

    フレームワーク

    [MPIJob] を選択します。

    ジョブリソース

    • [ノード] を 2 に設定します。

    • [vCPU] を 4 に設定します。

    • [GPU] を 1 に設定します。

    • [メモリ (GiB)] を 8 に設定します。

    • [共有メモリ (GiB)] を 8 に設定します。

    ドライバー設定

    上記のテストイメージを使用する場合、ドライバーのバージョンを [535.54.03] に設定することをお勧めします。

    説明

    Lingjun リソースのみがこのパラメーターをサポートします。

  3. [確認] をクリックします。

Deepspeed (pdsh)

このメソッドを使用して分散トレーニングジョブを送信する場合、[起動コマンド] に次のコードを使用します。他のパラメーターの構成は、mpirun メソッドの構成と同じです。

cd /root/code/DeepSpeedExamples/training/pipeline_parallelism

deepspeed --hostfile /etc/mpi/hostfile train.py --deepspeed_config=ds_config.json -p 2 --steps=200
説明

カスタムイメージを使用して DeepSpeed ジョブを実行する場合は、イメージに MPIJob と DeepSpeed に必要なライブラリをインストールする必要があります。DockerHub から公式の DeepSpeed イメージを取得することもできます。MPIJob と DeepSpeed に必要なライブラリは、イメージにプリインストールされています。

この例では、システム環境変数のデフォルト構成が使用されます。起動コマンドで環境変数を構成して、デフォルト構成を上書きすることもできます。詳細については、「システム環境変数」をご参照ください。

ステップ 3: ジョブの詳細とログの表示

  1. ジョブが送信された後、[Deep Learning Containers (DLC)] ページでジョブの名前をクリックします。

  2. ジョブの詳細ページで、ジョブの基本情報と実行ステータスを表示します。

  3. ジョブ詳細ページの下部にある [インスタンス] セクションで、タイプが [launcher] のインスタンスを見つけ、[アクション] 列の [ログ] をクリックしてジョブの実行ステータスを表示します。image

システム環境変数

MPI 分散ジョブは、launcher と worker の 2 つのロールを使用します。これらのロールは、トレーニング中に相互に通信する必要があります。デフォルトでは、DLC は launcher ロールの環境変数を構成します。ビジネス要件に基づいて、環境変数を構成してデフォルト構成を上書きできます。次の表に環境変数を示します。

環境変数

説明

デフォルト値

シナリオ

OMPI_MCA_btl_tcp_if_include

launcher ロールと worker ロール間の通信に使用するネットワークインターフェースコントローラー (NIC) を指定します。複数の NIC はカンマ (,) で区切ります。

eth0

mpirun を使用したジョブの開始に適しています。

OMPI_MCA_orte_default_hostfile

mpirun コマンドのホストファイルを指定します。ホストファイルは DLC で自動的に生成できます。

/etc/mpi/hostfile

OMPI_MCA_plm_rsh_agent

launcher ロールが worker ジョブをリモートで開始する方法を指定します。

/etc/mpi/kubexec.sh

PDSH_RCMD_TYPE

PDSH のリモートコマンドタイプ。

ssh

DeepSpeed を使用したジョブの開始に適しています。