Machine Learning > AI EasyMaker > コンソール使用ガイド

ダッシュボード

ダッシュボードでAI EasyMakerの全リソースの利用状況を確認できます。

サービス利用状況

リソースごとに利用中のリソース数を表示します。

  • ノートパソコン:利用中のACTIVE(HEALTHY)状態のノートパソコン数
  • 学習:完了(COMPLETE)した学習数
  • ハイパーパラメータチューニング:完了(COMPLETE)したハイパーパラメータチューニング数
  • エンドポイント: ACTIVE状態のエンドポイント数

サービスモニタリング

  • API 呼び出しが最も多い Top 3 エンドポイントを表示します。
  • エンドポイントを選択すると、サブエンドポイントステージのAPI成功/失敗の合計指標を確認できます。

リソース使用率

  • CPU、GPUコアタイプ別に最も使用量が多いリソースを確認できます。
  • 指標にマウスポインタを合わせると、リソース情報が表示されます。

ノートパソコン

機械学習の開発に必要なパッケージがインストールされているJupyterノートパソコンを作成し、管理します。

ノートパソコンの作成

Jupyterノートパソコンを作成します。

  • イメージ:ノートパソコンインスタンスにインストールされるOSイメージを選択します。

    • コアタイプ:イメージのCPU、GPUコアタイプが表示されます。
    • フレームワーク:イメージにインストールされたフレームワークが表示されます。
      • TENSORFLOW:TensorFlowディープラーニングフレームワークがインストールされたイメージです。
      • PYTORCH:PyTorchディープラーニングフレームワークがインストールされたイメージです。
      • PYTHON:ディープラーニングフレームワークがインストールされておらず、Python言語のみインストールされたイメージです。
    • フレームワークバージョン:イメージにインストールされたフレームワークのバージョンが表示されます。
    • Pythonバージョン:イメージにインストールされたPythonバージョンが表示されます。
  • ノートパソコン情報

    • ノートパソコンの名前、説明を入力します。
    • ノートパソコンのインスタンスタイプを選択します。選択したタイプに基づいてインスタンスの仕様が選択されます。
  • ストレージ

    • ノートパソコンのブートストレージとデータストレージサイズを指定します。
      • ブートストレージは、Jupyterノートパソコンおよび基本仮想環境がインストールされるストレージです。このストレージはノートパソコンを再起動すると初期化されます。
      • データストレージは/root/easymakerディレクトリパスにマウントされるブロックストレージです。このストレージのデータはノートパソコンを再起動しても維持されます。
    • 作成されたノートパソコンのストレージサイズは変更できませんので、作成時に十分なストレージサイズで指定する必要があります。
    • 必要な場合はノートパソコンを接続するNHN Cloud NASを接続できます。
      • マウントディレクトリ名:ノートパソコンにマウントするディレクトリ名を入力します。
      • NHN Cloud NASパス:nas://{NAS ID}:/{path}形式のディレクトリパスを入力します。
  • 追加設定

    • タグ:Key-Value形式のタグを指定できます。タグは最大10個まで入力できます。

[注意] NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用できます。

[参考]ノートパソコン作成所要時間: ノートパソコンの作成には数分かかる場合があります。 最初のリソース(ノートパソコン、学習、実験、エンドポイント)作成時、サービス環境構成のためにさらに数分かかる場合があります。

ノートパソコンリスト

ノートパソコンリストが表示されます。リストのノートパソコンを選択すると、詳細情報を確認して情報を変更できます。

  • 名前:ノートパソコン名が表示されます。詳細画面で変更をクリックすると名前を変更できます。
  • 状態:ノートパソコンの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED ノートパソコン作成がリクエストされた状態です。
    CREATE IN PROGRESS ノートパソコンインスタンスを作成中の状態です。
    ACTIVE (HEALTHY) ノートパソコンアプリケーションが正常に動作している状態です。
    ACTIVE (UNHEALTHY) ノートパソコンアプリケーションが正常に動作していない状態です。ノートパソコンを再起動した後にもこの状態が持続する場合はサポートにお問い合わせください。
    STOP IN PROGRESS ノートパソコンを停止中の状態です。
    STOPPED ノートパソコンを停止した状態です。
    START IN PROGRESS ノートパソコンを起動中の状態です。
    REBOOT IN PROGRESS ノートパソコンを再起動中の状態です。
    DELETE IN PROGRESS ノートパソコンを削除中の状態です。
    CREATE FAILED ノートパソコンの作成中に失敗した状態です。作成が継続的に失敗する場合はサポートにお問い合わせください。
    STOP FAILED ノートパソコンの停止に失敗した状態です。もう一度お試しください。
    START FAILED ノートパソコンの起動に失敗した状態です。もう一度お試しください。
    REBOOT FAILED ノートパソコンの再起動に失敗した状態です。もう一度お試しください。
    DELETE FAILED ノートパソコン削除を失敗した状態です。もう一度お試しください。
  • 作業 > Jupyterノートパソコンを開くJupyterノートパソコンを開くボタンをクリックすると、ブラウザの新しいウィンドウでノートパソコンを開きます。ノートパソコンはコンソールにログインしたユーザーのみアクセスできます。

  • タグ:ノートパソコンのタグが表示されます。タグは 変更をクリックして変更できます。

  • モニタリング:ノートパソコンを選択すると表示される詳細画面のモニタリングタブで、モニタリング対象インスタンスリストと基本指標チャートを確認できます。

    • モニタリングタブはノートパソコンが作成中または、進行中のタスクがある場合、無効になります。

ユーザー仮想実行環の境構成

AI EasyMakerノートパソコンインスタンスは、機械学習に必要なさまざまなライブラリおよびカーネルがインストールされた基本Conda仮想環境を提供します。 基本Conda仮想環境はノートパソコンを停止して起動する時に初期化されて動作しますが、ユーザーが任意のパスにインストールした仮想環境および外部ライブラリは自動的に初期化されないため、ノートパソコンを停止して起動する時に維持されません。 この問題を解決するには、/root/easymaker/custom-conda-envsディレクトリパスに仮想環境を作成し、作成された仮想環境から外部ライブラリをインストールする必要があります。 AI EasyMakerノートパソコンインスタンスは/root/easymaker/custom-conda-envsディレクトリパスに作成された仮想環境に対してノートパソコンを停止して起動する時に初期化されて動作するようにサポートします。

次のガイドを参照してユーザー仮想環境を構成してください。

  1. コンソールノートパソコンメニューのJupyterノートパソコンを開く > Jupyterノートパソコン > Launcher > Terminalをクリックします。
  2. /root/easymaker/custom-conda-envsパスに移動します。

    cd /root/easymaker/custom-conda-envs
    
  3. Python 3.8バージョンのeasymaker_envという仮想環境を作成するには、次のようにconda createコマンドを実行します。

    conda create --prefix ./easymaker_env python=3.8
    
  4. 作成された仮想環境はconda env listコマンドで確認できます。

    (base) root@nb-xxxxxx-0:~# conda env list
    # conda environments:
    #
                            /opt/intel/oneapi/intelpython/latest
                            /opt/intel/oneapi/intelpython/latest/envs/2022.2.1
    base                *   /opt/miniconda3
    easymaker_env           /root/easymaker/custom-conda-envs/easymaker_env
    

ユーザースクリプト

ノートPCを停止して起動する時、自動的に実行されるべきスクリプトを/root/easymaker/cont-init.dパスに登録できます。 英数字(alphanumeric)順に昇順で実行されます。

  • スクリプト位置及び権限
    • /root/easymaker/cont-init.dパスにあるファイルだけが実行されます。
    • 実行権限があるスクリプトのみ実行されます。
  • スクリプトの内容
    • スクリプトの最初の行は必ず #! で始まる必要があります。
    • スクリプトはroot権限で実行されます。
  • スクリプトの実行記録は以下の場所に保存されます。
    • スクリプト終了コード: /root/easymaker/cont-init.d/{SCRIPT}.exitcode
    • スクリプト標準出力及び標準エラーストリーム: /root/easymaker/cont-init.d/{SCRIPT}.output
    • 全体実行ログ: /root/easymaker/cont-init.output

ノートパソコンの停止

動作中のノートパソコンを停止するか、停止したノートパソコンを起動します。

  1. ノートパソコンリストから起動または停止するノートパソコンを選択します。
  2. ノートパソコンの起動またはノートパソコンの停止をクリックします。
  3. リクエストされた作業はキャンセルできません。続行するには[OK]をクリックします。

[注意]ノートパソコンの停止後に起動時に仮想環境および外部ライブラリを維持する方法: ノートパソコンを停止して起動する時、ユーザーが作成した仮想環境および外部ライブラリが初期化されることがあります。 維持するにはユーザー仮想実行環境の構成を参照してユーザー仮想環境を構成してください。

[参考]ノートパソコンの起動と停止の所要時間: ノートパソコンの起動と停止は数分かかる場合があります。

ノートパソコンインスタンスタイプの変更

作成されたノートパソコンのインスタンスタイプを変更します。 変更するインスタンスタイプは既存インスタンスと同じコアタイプのインスタンスタイプにのみ変更できます。

  1. インスタンスタイプを変更するノートパソコンを選択します。
  2. ノートパソコンが動作中の状態(ACTIVE)の場合は、ノートパソコンの停止をクリックしてノートパソコンを停止します。
  3. インスタンスタイプの変更をクリックします。
  4. 変更するインスタンスタイプを選択し、[OK]をクリックします。

[参考]インスタンスタイプ変更所要時間: インスタンスタイプの変更は数分かかる場合があります。

ノートパソコン再起動

ノートパソコンの利用中に問題が発生したり、状態は正常(ACTIVE)ですが、ノートパソコンにアクセスできない場合は ノートパソコンを再起動できます。

  1. 再起動するにはノートパソコンを選択します。
  2. ノートパソコン再起動をクリックします。
  3. リクエストされた削除作業はキャンセルできません。続行するには確認をクリックします。

[注意]ノートパソコンの再起動時に仮想環境及び外部ライブラリを維持する方法: ノートパソコンを再起動すると、ユーザーが作成した仮想環境と外部ライブラリが初期化される場合があります。 維持するにはユーザー仮想実行環境構成を参考してユーザー仮想環境を構成してください。

ノートパソコンの削除

作成されたノートパソコンを削除します。

  1. リストから削除するノートパソコンを選択します。
  2. ノートパソコンの削除をクリックします。
  3. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[参考]ストレージ: ノートパソコンを削除すると、ブートストレージとデータストレージが削除されます。 接続したNHN Cloud NASは削除されず、NHN Cloud NASから個別に削除する必要があります。

実験

実験は、関連する学習を実験でグループ化し、管理します。

実験作成

  1. 実験作成をクリックします。
  2. 実験の名前と説明を入力し、確認をクリックします。

[参考]実験作成所要時間: 実験の作成には数分の時間がかかる場合があります。 最初のリソース(ノートパソコン、学習、実験、エンドポイント)作成時、サービス環境の構成にさらに数分かかります。

実験リスト

実験リストが表示されます。リストの実験を選択すると、詳細情報を確認し、情報を変更できます。

  • 状態:実験の状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED 実験の作成がリクエストされた状態です。
    CREATE IN PROGRESS 実験が作成されている状態です。
    CREATE FAILED 実験の作成に失敗した状態です。もう一度お試しください。
    ACTIVE 実験が正常に作成された状態です。
  • 作業

    • Tensorboardショートカットをクリックすると、実験に含まれる学習の統計情報を確認できるTensorboardがブラウザの新しいウィンドウで開きます。Tensorboardはコンソールにログインしたユーザーのみ接続できます。
    • 再試行:実験の状態が失敗の場合、再試行をクリックして実験を復旧できます。
  • 学習:学習を選択すると、表示される詳細画面の学習タブには、実験に含まれている学習のリストが表示されます。

実験の削除

実験を削除します。

  1. 削除する実験を選択します。
  2. 実験削除をクリックします。実験が作成中の場合、実験の削除はできません。
  3. リクエストされた削除作業はキャンセルできません。続行するには確認をクリックします。

[参考]関連したリソースが存在する場合、実験の削除不可: 実験に関連するパイプラインスケジュールが存在したり、作成中の学習、ハイパーパラメータチューニング、パイプライン実行が存在する場合、実験を削除することはできません。 実験に関連するリソースを削除した後、実験を削除してください。 関連するリソースは、削除したい実験をクリックすると表示される下部の詳細画面で確認できます。

学習

機械学習アルゴリズムを学習し、学習結果を統計で確認できる環境を提供します。

学習作成

学習が実行されるインスタンスとOSイメージを選択して学習が実行される環境を設定し、学習するアルゴリズム情報と入力/出力データパスを入力して学習を進めます。

'- 学習テンプレート:学習テンプレートを読み込み、学習情報を設定するには「使用」を選択し、読み込む学習テンプレートを選択します。

  • 基本情報:学習の基本情報と学習が含まれる実験を選択します。
    • 学習名:学習名を入力します。
    • 学習説明:説明を入力します。
    • 実験:学習が含まれる実験を選択します。実験は関連する学習をグループ化します。作成された実験がない場合は追加をクリックして実験を作成します。
  • アルゴリズム情報:学習するアルゴリズムの情報を入力します。

    • アルゴリズムタイプ:アルゴリズムタイプを選択します。
      • NHN Cloud提供アルゴリズム:AI EasyMakerが提供するアルゴリズムを使用します。提供するアルゴリズムの詳細については、NHN Cloud提供アルゴリズムガイド文書を参照してください。
        • アルゴリズム:アルゴリズムを選択します。
        • ハイパーパラメータ:学習に必要なハイパーパラメータ値を入力します。アルゴリズム別ハイパーパラメータの詳細については、NHN Cloud提供アルゴリズムガイド文書を参照してください。
        • アルゴリズム指標:アルゴリズムで作成される指標に関する情報が表示されます。
      • 独自アルゴリズム:ユーザーが作成したアルゴリズムを使用します。

        • アルゴリズムパス

          • NHN Cloud Object Storage:アルゴリズムが保存されているNHN Cloud Object Storageのパスを入力します。
          • NHN Cloud NAS:アルゴリズムが保存されたNHN Cloud NASパスを入力します。
            nas://{NAS ID}:/{path}形式でディレクトリパスを入力します。
        • エントリーポイント

          • エントリーポイントは学習が始まるアルゴリズム実行の入口点です。エントリーポイントファイル名を作成します。
          • エントリーポイントファイルはアルゴリズムパスに存在する必要があります。
          • 同じパスにrequirements.txtを作成すると、スクリプトで必要なPythonパッケージがインストールされます。
        • ハイパーパラメータ
          • 学習用のパラメータを追加するには、+ ボタンをクリックしてKey-Value形式でパラメータを入力します。パラメータは最大100個まで入力できます。
          • 入力されたハイパーパラメータは、エントリーポイントが実行される時に実行引数として入力されます。詳しい活用方法は付録 > 3. ハイパーパラメータを参照してください。
  • イメージ:学習を実行しなければならない環境に合わせてインスタンスのイメージを選択します。

  • 学習リソース情報

    • 学習インスタンスタイプ:学習を実行するインスタンスタイプを選択します。
    • 分散ノード数:分散学習を実行するノード数を入力します。アルゴリズムコードでの設定により、分散学習が可能になります。詳細については、付録 > 6. フレームワーク別分散学習設定を参照してください。
    • torchrunの使用有無: Pytorchフレームワークでサポートするtorchrunの使用有無を選択してください。詳細については、 付録 > 8. torchrun使い方を参照してください。
    • ノードあたりのプロセス数: torchrunを使用する場合、ノードあたりのプロセス数を入力します。torchrunを使用すると、1つのノードに複数のプロセスを実行して分散学習が可能です。プロセス数によってメモリ使用量に影響があります。
  • 入力データ
    • データセット:学習を実行するデータセットを入力します。データセットは最大10個まで設定できます。
      • データセット名:データセットの名前を入力します。
      • データパス:NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
    • チェックポイント:保存されたチェックポイントから学習を進行する場合、チェックポイントの保存パスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
  • 出力データ
    • 出力データ:学習の実行結果を保存するデータ保存パスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
    • チェックポイント:アルゴリズムがチェックポイントを提供する場合、チェックポイントの保存パスを入力します。
      • 作成されたチェックポイントは以前の学習から学習を再開する際に利用できます。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
  • 追加設定
    • データストレージサイズ:学習を実行するインスタンスのデータストレージサイズを入力します。
      • NHN Cloud Object Storageを使用する場合にのみ使用されます。学習に必要なデータがすべて保存できるように十分なサイズで指定する必要があります。
    • 最大学習時間:学習が完了するまでの最大待機時間を指定します。最大待機時間を超えた学習は終了処理されます。
    • ログ管理:学習進行中に発生するログをNHN Cloud Log & Crashサービスに保存できます。
    • タグ:タグを追加するには+ボタンをクリックしてKey-Value形式でタグを入力します。タグは最大10個まで入力できます。

[注意] NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用できます。

[注意]学習入力データを削除すると学習失敗: 学習が完了する前に入力データを削除すると、学習に失敗する可能性があります。

学習リスト

学習リストが表示されます。リストの学習を選択すると、詳細情報を確認して情報を変更できます。

  • 学習時間:学習が進行された時間が表示されます。
  • 状態:学習の状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED 学習の作成をリクエストした状態です。
    CREATE IN PROGRESS 学習に必要なリソースを作成中の状態です。
    RUNNING 学習が進行中の状態です。
    STOPPED 学習がユーザーのリクエストで停止した状態です。
    COMPLETE 学習が正常に完了した状態です。
    STOP IN PROGRESS 学習が停止中の状態です。
    FAIL TRAIN 学習の進行中に失敗した状態です。詳細な失敗情報はログ管理が有効になっている場合は、Log & Crash Searchログで確認できます。
    CREATE FAILED 学習の作成に失敗した状態です。作成が継続的に失敗する場合はサポートにお問い合わせください。
    FAIL TRAIN IN PROGRESS, COMPLETE IN PROGRESS 学習に使用されたリソースを整理中の状態です。
  • 作業

    • Tensorboard:学習の統計情報を確認できるTensorboardがブラウザの新しいウィンドウで開きます。
      Tensorboardログを残す方法は付録 > 5. Tensorboardを活用するための指標ログを保存を参照してください。Tensorboardはコンソールにログインしたユーザーのみ接続できます。
    • 学習の停止:進行中の学習を停止できます。
  • ハイパーパラメータ:学習を選択すると、表示される詳細画面のハイパーパラメータタブで学習に設定したハイパーパラメータ値を確認できます。

  • モニタリング:学習を選択すると表示される詳細画面のモニタリングタブで、モニタリング対象インスタンスリストと基本指標チャートを確認できます。

    • モニタリングタブは学習が作成中の場合、無効になります。

学習のコピー

既存の学習と同じ設定で新しい学習を作成します。

  1. コピーする学習を選択します。
  2. 学習のコピーをクリックします。
  3. 既存の学習と同じ設定で学習作成画面が表示されます。
  4. 設定を変更する情報がある場合は、変更した後に学習の作成をクリックして学習を作成します。

学習からモデルを作成する

完了した状態の学習でモデルを作成します。

  1. モデルとして作成する学習を選択します。
  2. モデルの作成をクリックします。完了(COMPLETE)状態の学習のみモデルとして作成できます。
  3. モデル作成ページに移動します。内容を確認し、モデルの作成をクリックしてモデルを作成します。 モデル作成の詳細についてはモデル文書を参照してください。

学習の削除

学習を削除します。

  1. 削除する学習を選択します。
  2. 学習の削除をクリックします。進行中の学習は停止後に削除できます。
  3. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[参考]関連するモデルが存在する場合は学習の削除不可: 削除する学習で作成されたモデルが存在する場合は学習を削除できません。モデルを先に削除してから学習を削除してください。

ハイパーパラメータチューニング

ハイパーパラメータチューニングは、モデルの予測精度を最大化するためにハイパーパラメータ値を最適化するプロセスです。もしこの機能を使用しない場合、多くの学習タスクを直接実行しながらハイパーパラメータを手動で調整し、最適な値を探す必要があります。

ハイパーパラメータチューニングの作成

ハイパーパラメータチューニング作業を構成する方法です。

  • 学習テンプレート
    • 使用:学習テンプレートを使用するかどうかを選択します。学習テンプレートを使用すると、ハイパーパラメータチューニングの一部構成値が事前に指定しておいた値で埋められます。
    • 学習テンプレート:ハイパーパラメータチューニングの一部構成値を自動で入力するために使用する学習テンプレートを選択します。
  • 基本情報
    • ハイパーパラメータチューニング名:ハイパーパラメータチューニングの作業名を入力します。
    • 説明:ハイパーパラメータチューニング作業の説明が必要な場合に入力します。
    • 実験:ハイパーパラメータチューニングが含まれる実験を選択します。実験は、関連するハイパーパラメータチューニングをグループ化します。作成された実験がない場合は追加をクリックし、実験を作成します。
  • チューニング戦略
    • 戦略名:どの戦略を使用して最適なハイパーパラメータを探すか選択します。
    • Random State:乱数作成を決定します。再現可能な結果のために固定された値で指定します。
  • アルゴリズム情報:学習するアルゴリズムに関する情報を入力します。
    • アルゴリズムタイプ:アルゴリズムタイプを選択します。
      • NHN Cloud提供アルゴリズム: AI EasyMakerが提供するアルゴリズムを使用します。提供するアルゴリズムの詳細情報は、NHN Cloud提供アルゴリズムガイド文書を参照してください。
        • アルゴリズム:アルゴリズムを選択します。
        • ハイパーパラメータスペック:ハイパーパラメータチューニングに使用するハイパーパラメータ値範囲を入力します。アルゴリズム別ハイパーパラメータに関する詳細情報は、NHN Cloud提供アルゴリズムガイド文書を参照してください。
          • 名前:どのハイパーパラメータをチューニングするか定義します。アルゴリズムごとに決まっています。
          • タイプ:ハイパーパラメータのデータタイプを選択します。アルゴリズムごとに決まっています。
          • 値/範囲
            • Min:最小値を定義します。
            • Max:最大値を定義します。
            • Step: "Grid"チューニング戦略を使用する場合、ハイパーパラメータ値の変化サイズを決定します。
        • アルゴリズム指標:アルゴリズムで作成される指標に関する情報が表示されます。
      • 独自アルゴリズム:ユーザーが作成したアルゴリズムを使用します。
        • アルゴリズムパス
          • NHN Cloud Object Storage:アルゴリズムが保存されているNHN Cloud Object Storageのパスを入力します。
          • NHN Cloud NAS:アルゴリズムが保存されているNHN Cloud NASパスを入力します。
            • nas://{NAS ID}:/{path}形式でディレクトリパスを入力します。
        • エントリーポイント
          • エントリーポイントは学習が始まるアルゴリズム実行の入口点です。エントリーポイントファイル名を作成します。
          • エントリーポイントファイルはアルゴリズムパスに存在する必要があります。
          • 同じパスにrequirements.txtを作成すると、スクリプトで必要なPythonパッケージがインストールされます。
        • ハイパーパラメータスペック
          • 名前:どのハイパーパラメータをチューニングするか定義します。
          • タイプ:ハイパーパラメータのデータタイプを選択します。
          • 値/範囲
            • Min:最小値を定義します。
            • Max:最大値を定義します。
            • Step:"Grid"チューニング戦略を使用する際、ハイパーパラメータ値の変化サイズを決定します。
            • Comma-separated values:静的な値を使用してハイパーパラメータをチューニングします(例:sgd, adam)。
  • イメージ:学習を実行する必要がある環境に合わせてインスタンスのイメージを選択します。
  • 学習リソース情報
    • 学習インスタンスタイプ:学習を実行するインスタンスタイプを選択します。
    • 学習インスタンス数:学習を実行するインスタンス数です。学習インスタンス数は'分散ノード数×並列学習数'です。
    • 分散ノード数:分散学習を実行するノード数を入力します。アルゴリズムコードでの設定により、分散学習が可能になります。詳細については、付録 > 6. フレームワーク別分散学習設定を参照してください。
    • 並列学習数:同時に並列で実行する学習数を入力します。
    • torchrunの使用有無: Pytorchフレームワークでサポートするtorchrunの使用有無を選択してください。詳細については、 付録 > 8. torchrun使い方を参照してください。
    • ノードあたりのプロセス数: torchrunを使用する場合、ノードあたりのプロセス数を入力します。torchrunを使用すると、1つのノードに複数のプロセスを実行して分散学習が可能です。プロセス数によってメモリ使用量に影響があります。
  • 入力データ
    • データセット:学習を実行するデータセットを入力します。データセットは最大10個まで設定できます。
      • データセット名:データセットの名前を入力します。
      • データパス:NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
    • チェックポイント:保存されたチェックポイントから学習を進行する場合、チェックポイントの保存パスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
  • 出力データ
    • 出力データ:学習の実行結果を保存するデータ保存パスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
    • チェックポイント:アルゴリズムがチェックポイントを提供する場合、チェックポイントの保存パスを入力します。
      • 作成されたチェックポイントは以前の学習から学習を再開する際に利用できます。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
  • 指標
    • 指標名:学習コードが出力するログの中からどの指標を収集するかを定義します。
    • 指標フォーマット:指標の収集に使用する正規表現を入力します。学習アルゴリズムが正規表現に合わせて指標を出力する必要があります。
  • 目標指標
    • 指標名:どの指標の最適化が目標なのか選択します。
    • 目標指標タイプ:最適化タイプを選択します。
    • 目標指標Goal:目標指標がこの値に達するとチューニング作業が終了します。
  • チューニングリソース構成
    • 最大失敗学習数:失敗した学習の最大数を定義します。失敗した学習の数がこの値に達すると、チューニングは失敗となり終了します。
    • 最大学習数:最大学習数を定義します。自動実行された学習の数がこの値に達するまでチューニングが実行されます。
  • 学習の早期終了
    • 名前:学習を継続してもモデルがそれ以上良くならない場合、学習を早期に終了します。
    • Min Trainings Required:中間値を計算する際に、いくつの学習から目標指標値を取得するか定義します。
    • Start Step:何番目の学習段階から早期終了を適用するか設定します。
  • 学習の早期中止
    • 名前:学習を継続してもモデルが改善されない場合、学習を早期に終了します。
    • Min Trainings Required: 中間値を計算する際、何回の学習から目標指標値を取得するかを定義します。
    • Start Step: 何番目の学習段階から早期中止を適用するかを設定します。
  • 追加設定
    • データストレージサイズ:学習を実行するインスタンスのデータストレージサイズを入力します。
      • NHN Cloud Object Storageを使用する場合にのみ使用されます。学習に必要なデータがすべて保存されるように十分なサイズで指定する必要があります。
    • 最大進行時間:学習が完了するまでの最大進行時間を指定します。最大進行時間を超過した学習は終了処理されます。
    • ログ管理:学習の進行中に発生するログをNHN Cloud Log & Crashサービスに保存できます。
    • タグ:タグを追加するには+ ボタンをクリックしてKey-Value形式でタグを入力します。タグは最大10個まで入力できます。

[注意]NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用可能です。

[注意]学習入力データ削除時の学習失敗: 学習が完了する前に入力データを削除すると、学習に失敗することがあります。

ハイパーパラメータチューニングリスト

ハイパーパラメータチューニングリストが表示されます。リストのハイパーパラメータチューニングを選択すると、詳細情報を確認し、情報を変更できます。

  • 所要時間:ハイパーパラメータチューニングにかかった時間を表示します。
  • 完了した学習:ハイパーパラメータチューニングによって自動作成された学習の中で完了した学習数を示します。
  • 進行中の学習:進行中の学習数を示します。
  • 失敗した学習:失敗した学習数を示します。
  • 最高学習:ハイパーパラメータチューニングによって自動作成された学習の中で、最高の目標指標値を記録した学習の目標指標情報を示します。
  • 状態:ハイパーパラメータチューニングの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED ハイパーパラメータチューニング作成をリクエストした状態です。
    CREATE IN PROGRESS ハイパーパラメータチューニングに必要なリソースを作成している状態です。
    RUNNING ハイパーパラメータチューニングが進行中の状態です。
    STOPPED ハイパーパラメータチューニングがユーザーのリクエストで停止された状態です。
    COMPLETE ハイパーパラメータチューニングが正常に完了した状態です。
    STOP IN PROGRESS ハイパーパラメータチューニングが停止している状態です。
    FAIL HYPERPARAMETER TUNING ハイパーパラメータチューニング進行中に失敗した状態です。失敗情報の詳細は、ログ管理が有効化された場合、Log & Crash Searchログを通じて確認できます。
    CREATE FAILED ハイパーパラメータチューニングの作成に失敗した状態です。継続的に作成に失敗する場合、サポートにお問い合わせください。
    FAIL HYPERPARAMETER TUNING IN PROGRESS, COMPLETE IN PROGRESS, STOP IN PROGRESS ハイパーパラメータチューニングに使用されたリソースを整理している状態です。
  • 状態詳細情報: COMPLETE状態のカッコ内の内容は状態の詳細情報です。主要詳細情報は以下の表を参照してください。

    詳細情報 説明
    GoalReached ハイパーパラメータチューニングの学習が目標値に達して完了したときの詳細情報です。
    MaxTrialsReached ハイパーパラメータチューニングが最大学習数に達し、完了した時の詳細情報です。
    SuggestionEndReached ハイパーパラメータチューニングの探索アルゴリズムがすべてのハイパーパラメータを探索したときの詳細情報です。
  • 作業

    • Tensorboardショートカット:学習の統計情報を確認できるTensorboardがブラウザの新しいウィンドウで開きます。
      Tensorboardログを残す方法は付録 > 5. Tensorboardを活用するための指標ログを保存を参照してください。Tensorboardはコンソールにログインしたユーザーのみ接続できます。
    • ハイパーパラメータチューニングの停止:進行中のハイパーパラメータチューニングを停止できます。
  • モニタリング:ハイパーパラメータチューニングを選択すると表示される詳細画面のモニタリングタブで、モニタリング対象インスタンスリストと基本指標チャートを確認できます。

    • モニタリングタブはハイパーパラメータチューニングが作成中の場合、無効になります。

ハイパーパラメータチューニングの学習リスト

ハイパーパラメータチューニングによって自動作成された学習リストが表示されます。リストの学習を選択すると、詳細情報を確認できます。

  • 目標指標値:目標指標値を示します。
  • *状態:ハイパーパラメータチューニングによって自動作成された学習の状態が表示されます。主な状態は下にある表を参照してください。

    状態 説明
    CREATED 学習が作成された状態です。
    RUNNING 学習が進行中の状態です。
    SUCCEEDED 学習が正常に完了した状態です。
    KILLED 学習がシステムによって停止された状態です。
    FAILED 学習の進行中に失敗した状態です。失敗情報の詳細は、ログ管理が有効化された場合、Log & Crash Searchログを通じて確認できます。
    METRICS_UNAVAILABLE 目標指標を収集できない状態です。
    EARLY_STOPPED 学習進行中、性能(目標指標)が改善されないため、早期に中止した状態です。

ハイパーパラメータチューニングのコピー

既存ハイパーパラメータチューニングと同じ設定で新しいハイパーパラメータチューニングを作成します。

  1. コピーするハイパーパラメータチューニングを選択します。
  2. ハイパーパラメータチューニングのコピーをクリックします。
  3. 既存のハイパーパラメータチューニングと同じ設定で、ハイパーパラメータチューニングの作成画面が表示されます。
  4. 設定を変更したい情報がある場合、変更後ハイパーパラメータチューニングの作成をクリックしてハイパーパラメータチューニングを作成します。

ハイパーパラメータチューニングでモデルを作成する

完了した状態のハイパーパラメータチューニングの最高学習でモデルを作成します。

  1. モデルとして作成するハイパーパラメータチューニングを選択します。
  2. モデル作成をクリックします。完了(COMPLETE)状態のハイパーパラメータチューニングのみモデルとして作成できます。
  3. モデル作成ページに移動します。内容を確認後、モデル作成をクリックしてモデルを作成します。 モデルの作成に関する詳細はモデル文書を参照してください。

ハイパーパラメータチューニングの削除

ハイパーパラメータチューニングを削除します。

  1. 削除するハイパーパラメータチューニングを選択します。
  2. ハイパーパラメータチューニングの削除をクリックします。進行中のハイパーパラメータチューニングは停止後に削除できます。
  3. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[参照]関連するモデルが存在する場合、ハイパーパラメータチューニングは削除不可: 削除するハイパーパラメータチューニングで作成されたモデルが存在する場合、ハイパーパラメータチューニングは削除できません。先にモデルを削除してから、ハイパーパラメータチューニングを削除してください。

学習テンプレート

学習テンプレートを事前に作成しておくと、学習やハイパーパラメータチューニングを作成する際にテンプレートに入力した値を取り込むことができます。

学習テンプレートの作成

学習テンプレートに設定できる情報は学習の作成を参照してください。

学習テンプレートリスト

学習テンプレートリストが表示されます。リストの学習テンプレートを選択すると、詳細情報を確認し、情報を変更できます。

  • 作業
    • 変更:学習テンプレート情報を変更できます。
  • ハイパーパラメータ:学習テンプレートを選択すると表示される詳細画面のハイパーパラメータタブで学習テンプレートに設定したハイパーパラメータ名を確認できます。

学習テンプレートのコピー

既存学習テンプレートと同じ設定で新しい学習テンプレートを作成します。

  1. コピーする学習テンプレートを選択します。
  2. 学習テンプレートのコピーをクリックします。
  3. 既存の学習テンプレートと同じ設定で学習テンプレートの作成画面が表示されます。
  4. 設定を変更したい情報がある場合、変更後、学習テンプレートの作成をクリックして学習テンプレートを作成します。

学習テンプレートの削除

学習テンプレートを削除します。

  1. 削除する学習テンプレートを選択します。
  2. 学習テンプレートの削除をクリックします。
  3. リクエストされた削除作業はキャンセルできません。続行するには確認をクリックします。

モデル

AI EasyMakerの学習結果のモデルまたは外部のモデルをアーティファクトとして管理できます。

モデルの作成

  • 基本情報:モデルの基本情報を入力します。
    • 名前:モデル名を入力します。
      • モデルのフレームワークの種類がPyTorchの場合、PyTorchモデル名と同じモデル名を入力する必要があります。
    • 説明:モデルの説明を入力します。
  • フレームワーク情報:モデルのフレームワーク情報を入力します。
    • フレームワーク:モデルのフレームワークを選択します。
    • フレームワークバージョン:モデルフレームワークのバージョンを入力します。
  • モデル情報:モデルのアーティファクトが保存されているリポジトリを入力します。
    • モデルアーティファクト:モデルアーティファクトが保存されたストレージを選択します。
      • NHN Cloud Object Storage:モデルアーティファクトが保存されたObject Storageパスを入力します。
      • NHN Cloud NAS:モデルアーティファクトが保存されたNHN Cloud NASパスを入力します。
        • nas://{NAS ID}:/{path}形式でディレクトリパスを入力します。
    • パラメータ:モデルのパラメータ情報を入力します。
      • パラメータ名:モデルのパラメータ名を入力します。
      • パラメータ値:モデルのパラメータ値を入力します。
  • 追加設定:モデルの追加情報を入力します。
    • タグ:タグを追加するには+ボタンをクリックしてKey-Value形式でタグを入力します。タグは最大10個まで入力できます。

[注意] NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用できます。

[注意]リポジトリのモデルアーティファクトを維持: リポジトリに保存されているモデルアーティファクトを維持しない場合、該当モデルのエンドポイント作成が失敗します。

[参考]モデルパラメータ: モデルパラメータに入力された値は、モデルをサービングする際に使用されます。パラメータは引数と環境変数として使用できます。 引数は入力されたパラメータ名がそのまま使用され、環境変数はパラメータ名がスクリーミングスネーク表記(screaming snake case)に変換されて使用されます。

[参考] HuggingFaceモデルを作成する場合: HuggingFaceモデルを作成する際、HuggingFaceモデルのIDをパラメータとして入力すると、モデルを作成できます。 HuggingFaceモデルのIDはHuggingFaceモデルページのURLで確認できます。 詳細は付録 > 11. フレームワーク別のサービングに関する注意事項を参照してください。

[注意] HuggingFaceモデルのサポートタイプ: HuggingFaceモデルのファイルタイプはsafetensorsに制限しています。 safetensorsはHuggingFaceが開発した安全で効率的な機械学習モデルファイル形式です。 それ以外のファイル形式はサポートしません。

モデルリスト

モデルリストが表示されます。リストのモデルを選択すると詳細情報を確認して情報を変更できます。

  • 名前:モデル名と説明が表示されます。モデル名と説明は変更をクリックして変更できます。
  • モデルアーティファクトパス:モデルのアーティファクトが保存されているリポジトリが表示されます。
  • 状態:モデルの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED モデル作成をリクエストした状態です。
    CREATE IN PROGRESS モデルに必要なリソースを作成中の状態です。
    DELETE IN PROGRESS モデルを削除中の状態です。
    ACTIVE モデルが正常に作成された状態です。
    CREATE FAILED モデルの作成に失敗した状態です。作成が継続的に失敗する場合は、サポートにお問い合わせください。
    DELETE FAILED モデルの削除を失敗した状態です。再試行してください。
  • 学習名:学習で作成されたモデルの場合、もとになる学習の名前が表示されます。

  • 学習ID:学習で作成されたモデルの場合、もとになる学習のIDが表示されます。
  • フレームワーク:モデルのフレームワーク情報が表示されます。
  • パラメータ:モデルのパラメータが表示されます。パラメータは推論に使用されます。
  • タグ:モデルのタグが表示されます。タグは変更をクリックして変更できます。

モデルでエンドポイントを作成する

選択したモデルをサービスできるエンドポイントを作成します。

  1. エンドポイントとして作成するモデルをリストから選択します。
  2. エンドポイントの作成をクリックします。
  3. エンドポイント作成 ページに移動しまsす。内容を確認後、エンドポイント作成をクリックします。 エンドポイントの作成に関する詳細は、エンドポイント文書を参照してください。

モデルでバッチ推論を作成する

選択したモデルでバッチ推論を行い、推論結果を統計で確認できるバッチ推論を作成します。

  1. バッチ推論で作成したいモデルをリストから選択します。
  2. バッチ推論作成をクリックします。
  3. バッチ推論作成 ページに移動します。内容を確認後 バッチ推論作成をクリックします。 バッチ推論の作成に関する詳細は、バッチ推論文書を参照してください。

モデルの削除

モデルを削除します。

  1. リストから削除するモデルを選択します。
  2. モデルの削除をクリックします。
  3. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[参考]関連するエンドポイントが存在する場合はモデル削除不可: 削除しようとしているモデルで作成されたエンドポイントが存在する場合、モデルを削除できません。 削除するには先に該当モデルで作成されたエンドポイントを削除してからモデルを削除してください。

エンドポイント

モデルをサービスできるエンドポイントを作成し、管理します。

エンドポイントの作成

  • API Gatewayサービスの有効化
    • AI EasyMakerエンドポイントはNHN Cloud API Gatewayサービスを介してAPIエンドポイントを作成し、APIを管理します。エンドポイント機能を利用するにはAPI Gatewayサービスを必ず有効にする必要があります。
    • API Gatewayサービスの詳細と料金については、以下で確認できます。
  • エンドポイント:新規または既存エンドポイントにステージを追加するかどうかを選択します。
    • 新規エンドポイントとして作成:新規エンドポイントを作成します。API Gatewayに新規サービスと基本ステージでエンドポイントが作成されます。
    • 既存エンドポイントから新規ステージ追加:既存エンドポイントのAPI Gatewayのサービスに新規ステージとしてエンドポイントが作成されます。ステージを追加する既存エンドポイントを選択します。
  • エンドポイント名:エンドポイントの名前を入力します。エンドポイント名は重複できません。
  • ステージ名:既存エンドポイントから新規ステージを追加する場合、新規ステージ名を入力します。ステージ名は重複できません。
  • 説明:エンドポイントステージの説明を入力します。

  • インスタンス情報:モデルがサービングされるインスタンス情報を入力します。

    • インスタンスタイプ:インスタンスタイプを選択します。
    • インスタンス数:インスタンスの駆動数を入力します。
    • オートスケーラー:オートスケーラーはリソース使用量ポリシーに基づいてノード数を自動的に調整する機能です。オートスケーラーはステージ単位で設定されます。
      • 使用/使用しない:オートスケーラーを使用するかどうかを選択します。使用する場合、インスタンス負荷に応じてインスタンス数がスケールインまたはスケールアウトされます。
      • 最小ノード数:縮小可能な最小ノード数です。
      • 最大ノード数:増設可能な最大ノード数
      • 縮小:ノード縮小設定
      • リソース使用量しきい値:縮小の基準となるリソース使用量しきい領域の基準値
      • しきい領域維持時間(分):縮小対象となるノードのしきい値以下のリソース使用量維持時間
      • 増設後、縮小遅延時間(分):ノード増設後、縮小対象ノードでモニタリングを開始するまでの遅延時間
  • ステージ情報:エンドポイントに配布するモデルアーティファクトの情報を入力します。同じモデルを複数のステージリソースに配布すると、リクエストが分散して処理されます。

    • モデル:エンドポイントに配布するモデルを選択します。モデルを作成していない場合は、まずモデルを作成します。モデルフレームワーク別サービングの注意事項は付録 > 11. フレームワーク別のサービングに関する注意事項を参照してください。
    • リソース割り当て(%):モデルに割り当てるリソースを入力します。インスタンスのリソース実使用量を固定比率で割り当てます。
      • cpu: CPU割り当て量を入力します。割り当ての割合(%)を使わずに直接割り当てる場合は入力します。
      • memory: Memory割り当て量を入力します。割り当ての割合(%)を使用せずに直接割り当てる場合は入力します。
      • gpu: GPU割り当て量を入力します。割り当ての割合(%)を使用せずに直接割り当てる場合は入力します。
    • 説明:ステージリソース説明を入力します。
    • Podオートスケーラー:モデルのリクエスト量に応じてPod数を自動的に調整する機能です。オートスケーラーはモデル単位で設定されます。
      • 使用/使用しない:オートスケーラーを使用するかどうかを選択します。使用する場合、モデル負荷に応じてPod数がスケールインまたはスケールアウトされます。
      • 増設単位: Pod増設単位を入力します。
        • CPU:CPU使用量に基づいてPod数が調節されます。
        • Memory: Memory使用量に基づいてPod数が調節されます。
      • しきい値: Podが増設される増設単位別のしきい値です。
    • リソース情報:実際に使用しているリソースを確認できます。入力したモデルの割り当て量に基づいてリソース実使用量を各モデルに割り当てます。詳細は付録 > 9.リソース情報を参照してください。
  • 追加設定 > タグ:タグを追加するには+ ボタンをクリックしてKey-Value形式でタグを入力します。タグは最大10個まで入力できます。

[参考]推論リクエストAPIスペック: AI EasyMakerサービスはOIP(open inference protocol)スペックに基づいたエンドポイントを提供します。エンドポイントAPIスペックの仕様は付録 > 10. エンドポイントAPIスペック仕様を参照してください。 別途のエンドポイントを使用するにはAPI Gatewayサービスに作成されたリソースを参考にして新しいリソースを作成して使用します。 OIPスペックの詳細はOIPスペックを参照してください。

[参考]エンドポイント作成所要時間: エンドポイントの作成には数分かかる場合があります。 最初のリソース(ノートパソコン、学習、実験、エンドポイント)作成時、サービス環境構成のためにさらに数分かかります。

[参考]エンドポイント作成時のAPI Gatewayサービスリソース提供制約: 新規エンドポイントを作成すると、API Gatewayサービスを新規作成します。 既存エンドポイントから新規ステージを追加すると、API Gatewayサービスに新規ステージを作成します。 API Gatewayサービスリソース提供ポリシーの基本提供量を超過した場合、AI EasyMakerでエンドポイント作成ができない場合があります。この場合、API Gatewayサービスリソースのクォータを調整して解決できます。

エンドポイントリスト

エンドポイントリストが表示されます。リストのエンドポイントを選択すると、詳細情報を確認して情報を変更できます。

  • 基本ステージURL:エンドポイントのステージのうち、基本ステージのURLが表示されます。
  • 状態:エンドポイントの状態です。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED エンドポイントの作成がリクエストされた状態です。
    CREATE IN PROGRESS エンドポイントを作成中の状態です。
    UPDATE IN PROGRESS エンドポイントのステージの一部が処理中の作業がある状態です。
    エンドポイントステージリストでステージごとの作業状態を確認できます。
    DELETE IN PROGRESS エンドポイントを削除中の状態です。
    ACTIVE エンドポイントが正常に動作中の状態です。
    CREATE FAILED エンドポイントの作成に失敗した状態です。
    エンドポイントを削除してからもう一度作成する必要があります。作成失敗状態が繰り返される場合はサポートにお問い合わせください。
    UPDATE FAILED エンドポイントのステージの一部が正常にサービスされていない状態です。問題となるステージを削除してもう一度作成する必要があります。
  • API Gateway状態:エンドポイント基本ステージのAPI Gateway状態情報が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE IN PROGRESS API Gatewayリソースを作成中の状態です。
    STAGE DEPLOYING API Gateway基本ステージが配布中の状態です。
    ACTIVE API Gateway基本ステージが正常に配布され、有効な状態です。
    NOT FOUND: STAGE エンドポイントの基本ステージが見つからない状態です。
    API Gatewayコンソールでステージが存在することを確認してください。
    ステージが削除された場合、削除されたAPI Gatewayステージは復元できず、エンドポイントを削除してからもう一度作成する必要があります。
    NOT FOUND: STAGE DEPLOY RESULT エンドポイント基本ステージの配布状態が見つからない状態です。
    API Gatewayコンソールで基本ステージが配布された状態であることを確認してください。
    STAGE DEPLOY FAIL API Gateway基本ステージが配布失敗した状態です。
    [参考]ステージのAPI Gateway「配布失敗」状態の場合の復旧方法を参照して配布失敗状態を復旧できます。

エンドポイントステージの作成

既存のエンドポイントに新規ステージを追加します。新規ステージを作成して基本ステージの影響を受けずに新規ステージをテストできます。

  1. エンドポイントリストでエンドポイント名をクリックします。
  2. + ステージ作成をクリックします。
  3. 既存エンドポイントで新規ステージ追加が自動選択され、設定方法はエンドポイント作成内容と同じです。
  4. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

エンドポイントステージリスト

エンドポイント下位に作成されたステージリストが表示されます。リストのステージを選択すると詳細情報を確認できます。

  • 状態:エンドポイントステージの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED エンドポイントステージの作成がリクエストされた状態です。
    CREATE IN PROGRESS エンドポイントステージを作成中の状態です。
    DEPLOY IN PROGRESS エンドポイントステージにモデルを配布中の状態です。
    DELETE IN PROGRESS エンドポイントステージを削除中の状態です。
    ACTIVE エンドポイントステージが正常に動作中の状態です。
    CREATE FAILED エンドポイントステージの作成に失敗した状態です。もう一度お試しください。
    DEPLOY FAILED エンドポイントステージの配布に失敗した状態です。もう一度作成してみてください。
  • API Gateway状態:エンドポイントステージが配布されたAPI Gatewayのステージ状態が表示されます。

  • ステージ基本ステージかどうか:基本ステージかどうかが表示されます。
  • ステージURL:モデルがサービスされたAPI GatewayのステージURLが表示されます。
  • API Gateway設定表示:AI EasyMakerがAPI Gatewayステージに配布した設定を確認するには、設定表示をクリックします。
  • API Gateway統計表示:エンドポイントのAPI統計を表示するには統計表示をクリックします。
  • インスタンスタイプ:モデルがサービスされるエンドポイントインスタンスタイプが表示されます。
  • 実行中のワークノード/Pod数:エンドポイントで使用中のノードとPod数が表示されます。
  • ステージリソース:ステージに配布されたモデルアーティファクト情報が表示されます。
  • モニタリング:エンドポイントステージを選択すると表示される詳細画面のモニタリングタブで、モニタリング対象インスタンスリストと基本指標チャートを確認できます。
    • モニタリングタブはエンドポイントステージが作成中の場合、無効になります。
  • API統計:エンドポイントステージを選択すると表示される詳細画面のAPI統計タブで、エンドポイントステージのAPI統計情報を確認できます。
    • API統計タブはエンドポイントステージが作成中の場合、無効になります。

[注意] AI EasyMakerが作成したAPI Gatewayの設定変更時の注意点: AI EasyMakerはエンドポイント作成またはエンドポイントステージ作成を行うと、エンドポイントに対するAPI Gatewayのサービスとステージを作成します。 AI EasyMakerによって作成されたAPI GatewayサービスとステージをAPI Gatewayサービスコンソールで直接変更作業を行う場合、次の注意事項を必ず参照してください。

  1. AI EasyMakerが作成したAPI Gatewayサービスとステージを削除しないようにします。削除すると、エンドポイントにAPI Gateway情報が正常に表示されず、エンドポイントの変更事項がAPI Gatewayに適用されない場合があります。
  2. エンドポイント作成時に入力したAPI Gatewayリソースパスのリソースを変更または削除しないようにします。削除すると、エンドポイントの推論APIの呼び出しに失敗する場合があります。
  3. エンドポイント作成時に入力したAPI Gatewayリソースパス下位にリソースを追加しないようにします。追加したリソースはエンドポイントステージ追加/変更作業時に削除される場合があります。
  4. API Gatewayのステージ設定でAPI Gatewayリソースパスに設定されたバックエンドエンドポイントURL再定義を無効にするか、URLを変更しないようにします。変更すると、エンドポイントの推論API呼び出しに失敗する可能性があります。 上記の注意事項以外の設定は、必要に応じてAPI Gatewayで提供する機能を利用できます。 API Gatewayの詳細についてはAPI Gatewayコンソールガイドを参照してください。

[参考]ステージのAPI Gateway 「配布失敗」状態の場合の復旧方法: 一時的な問題でAI EasyMakerエンドポイントのステージ設定がAPI Gatewayステージに配布されていない場合、配布失敗状態と表示されます。 この場合、ステージリストからステージ選択 > 下部の詳細画面のAPI Gateway設定表示 > 「ステージ配布」をクリックしてAPI Gatewayステージを手動で配布できます。 上記のガイドでも配布状態が回復しない場合はサポートにお問い合わせください。

ステージリソース作成

既存のエンドポイントステージに新規リソースを追加します。

  • モデル:エンドポイントに配布するモデルを選択します。モデルを作成していない場合は、モデルを先に作成します。
  • リソース割り当て(%):モデルに割り当てるリソースを入力します。インスタンスのリソース実使用量を固定比率で割り当てます。

    • CPU:CPU割り当て量を入力します。割り当ての割合(%)を使わずに直接割り当てる場合は入力します。
    • Memory: Memory割り当て量を入力します。割り当ての割合(%)を使わずに直接割り当てる場合は入力します。
  • Pod数:ステージリソースのPod数を入力します。

  • 説明:ステージリソース説明を入力します。

  • Podオートスケーラー:モデルのリクエスト量に基づいてPod数を自動的に調整する機能です。オートスケーラーはモデル単位で設定されます。

    • 使用/使用しない:オートスケーラーを使用するかどうかを選択します。使用する場合、モデル負荷に応じてPod数がスケールインまたはスケールアウトされます。
    • 増設単位:Pod増設単位を入力します。
      • CPU:CPU使用量に応じてPod数が調節されます。
      • Memory: Memory使用量に応じてPod数が調節されます。
    • しきい値:Podが増設される増設単位別のしきい値です。

ステージリソースリスト

エンドポイントステージの下に作成されたソースリストが表示されます。

  • 状態:ステージリソースの状態が表示されます。主な状態は下記の表を参照してください。

    状態 説明
    CREATE REQUESTED ステージリソース作成がリクエストされた状態です。
    CREATE IN PROGRESS ステージリソースを作成中の状態です。
    DELETE IN PROGRESS ステージリソースを削除中の状態です。
    ACTIVE ステージリソースが正常に配布された状態です。
    CREATE FAILED ステージリソースの作成に失敗した状態です。もう一度お試しください。
  • モデル名:ステージに配布されたモデルの名前です。

  • API Gatewayリソースパス:ステージに配布されたモデルの推論URLです。表示されたURLで推論をリクエストできます。詳細は付録 > 10. エンドポイントAPIスペック仕様をご確認ください。
  • Pod数:リソースで使用中の正常Podと全体Pod数が表示されます。

エンドポイント推論の呼び出し

  1. エンドポイント > エンドポイントステージでステージをクリックすると、下部にステージ詳細画面が表示されます。
  2. 詳細画面のステージリソースタブでAPI Gatewayリソースパスを確認します。
  3. HTTP POST MethodでAPI Gatewayリソースパスを呼び出すと、推論APIが呼び出されます。
    • ユーザーが作成したアルゴリズムによって推論APIのリクエスト、レスポンス仕様は異なります。
      // 推論API例:リクエスト
      curl --location --request POST '{API Gatewayリソースパス}' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "instances": [
              [6.8,  2.8,  4.8,  1.4],
              [6.0,  3.4,  4.5,  1.6]
          ]
      }'
      
      // 推論API例:レスポンス
      {
          "predictions" : [
              [
                  0.337502569,
                  0.332836747,
                  0.329660654
              ],
              [
                  0.337530434,
                  0.332806051,
                  0.329663515
              ]
          ]
      }
      

ステージリソースの削除

  1. エンドポイントリストでエンドポイント名をクリックしてエンドポイントステージリストに移動します。
  2. エンドポイントステージリストで削除するステージリソースが配布されたエンドポイントステージをクリックします。クリックすると、下部にステージの詳細画面が表示されます。
  3. 詳細画面のステージリソースタブで削除するステージリソースを選択します。
  4. ステージリソースの削除をクリックします。
  5. リクエストされた削除作業はキャンセルできません。続行するには確認をクリックします。

エンドポイントの基本ステージ変更

エンドポイントの基本ステージを他のステージに変更します。 サービスの瞬断なしでエンドポイントのモデルを変更するには、AI EasyMakerはステージ機能を活用してモデルを配布することを推奨します。

  1. 実際のサービスで運営中のステージは基本ステージで運営します。
  2. 新規モデルに交換する場合、既存エンドポイントに新規ステージを追加します。
  3. 新規ステージで交換されたモデルでエンドポイントサービスに問題がないことを確認します。
  4. 基本ステージの変更をクリックします。
  5. 基本ステージに変更する新規ステージを、変更するステージから選択します。
  6. 変更リクエスト作業はキャンセルできません。続行するには[OK]をクリックします。
  7. 変更するステージが基本ステージに変更され、既存基本ステージのリソースは自動的に削除されます。

エンドポイントステージの削除

  1. エンドポイントリストでエンドポイント名をクリックしてエンドポイントステージリストに移動します。
  2. エンドポイントステージリストから削除するエンドポイントステージを選択します。基本ステージは削除できません。
  3. ステージの削除をクリックします。
  4. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[注意]エンドポイントステージを削除するとAPI Gatewayサービスのステージ削除: AI EasyMakerのエンドポイントステージを削除すると、エンドポイントのステージが配布されたAPI Gatewayサービスのステージも削除されます。 削除されるAPI Gatewayステージに運営中のAPIが存在する場合、API呼び出しができませんので注意してください。

エンドポイントの削除

エンドポイントを削除します。

  1. エンドポイントリストから削除するエンドポイントを選択します。
  2. エンドポイント下位に基本ステージを除くステージが存在する場合、エンドポイントを削除できません。先に他のステージを削除してからエンドポイントを削除してください。
  3. エンドポイントの削除をクリックします。
  4. リクエストされた削除作業はキャンセルできません。続行するには[OK]をクリックします。

[注意]エンドポイントを削除するとAPI Gatewayサービス削除: AI EasyMakerのエンドポイントを削除すると、エンドポイントが配布されたAPI Gatewayサービスも削除されます。 削除されるAPI Gatewayサービスに運営中のAPIが存在する場合、API呼び出しができませんので注意してください。

バッチ推論

AI EasyMakerのモデルでバッチ推論を行い、推論結果を統計で確認できる環境を提供します。

バッチ推論の作成

インスタンスとOSイメージを選択してバッチ推論が実行される環境を設定し、推論する入力/出力データのパスを入力してバッチ推論を行います。

  • 基本情報:バッチ推論の基本情報を入力します。
    • バッチ推論の名前:バッチ推論の名前を入力します。
    • バッチ推論の説明:説明を入力します。
  • インスタンス情報
    • インスタンスタイプ:バッチ推論を実行するインスタンスタイプを選択します。
    • インスタンス数:バッチ推論を実行するインスタンス数です。
  • モデル情報
    • モデル:バッチ推論を行うモデルを選択します。モデルを作成していない場合は、モデルを先に作成します。
    • Pod数:モデルのPod数を入力します。
    • リソース情報:モデルで実際に使用するリソースを確認できます。入力したPod数に応じて、実際の使用量を分割して各Podに割り当てられます。詳細は、付録 > 9.リソース情報を参照してください。
  • 入力データ
    • データパス:バッチ推論を実行するデータのパスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASのパスを入力します。
    • 入力データ区分:バッチ推論を実行するデータのタイプを選択します。
      • JSON:ファイルの有効なJSONデータを入力値として使用します。
      • JSONL: 各行が有効なJSONで構成されたJSON Linesファイルを入力値として使用します。
    • Globパターン
      • 含めるファイル指定:入力データに含めるファイルセットをGlobパターンで入力します。
      • 除外ファイル指定:入力データから除外するファイルセットをGlobパターンで入力します。
  • 出力データ
    • 出力データ:バッチ推論の実行結果を保存するデータ保存パスを入力します。
      • NHN Cloud Object StorageまたはNHN Cloud NASパスを入力します。
  • 追加設定
    • バッチオプション
      • バッチサイズ: 一回の推論作業で同時に処理されるデータサンプルの数を入力します。
      • 推論制限時間(秒):バッチ推論の制限時間を入力します。単一の推論リクエストが処理されて結果が返されるまでの最大許容時間を設定できます。
    • データストレージサイズ:バッチ推論を実行するインスタンスのデータストレージサイズを入力します。
      • NHN Cloud Object Storageを利用する場合のみ使用されます。バッチ推論に必要なデータがすべて保存できるように十分なサイズを指定する必要があります。
    • 最大バッチ推論時間: バッチ推論が完了するまでの最大待機時間を指定します。最大待ち時間を超えたバッチ推論は終了処理されます。
    • ログ管理:バッチ推論の進行中に発生するログをNHN Cloud Log \& Crash Searchサービスに保存できます。
    • タグ:タグを追加するには+ボタンをクリックしてKey-Value形式でタグを入力します。タグは最大10個まで入力できます。

[注意] NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用可能です。

[注意]バッチ推論入力データを削除すると、バッチ推論に失敗: バッチ推論が完了する前に入力データを削除すると、バッチ推論に失敗する可能性があります。

[注意]入力データ詳細オプションを設定する場合: Globパターンを適切に入力しなかった場合、入力データが見つからず、バッチ推論が正常に動作しない場合があります。 含むGlobパターンと一緒に使用する場合、除外Globパターンが優先的に適用されます。

[注意]バッチオプションを設定する場合: バッチ推論するモデルの性能に応じてバッチサイズ推論制限時間を適切に設定する必要があります。 入力した設定値が正しくない場合、バッチ推論が十分な性能を発揮できない場合があります。

[注意] GPUインスタンスを使用する場合: GPUインスタンスを使用するバッチ推論はPod数に応じてGPUインスタンスを割り当てます。 Pod数 / GPU数が整数で割り切れない場合、、割り当てられないGPUが発生する場合があります。 割り当てられないGPUはバッチ推論に使用されないため、GPUインスタンスを効率的に使用するために、Podの数を適切に設定してください。

バッチ推論リスト

バッチ推論リストが表示されます。リストのバッチ推論を選択すると、詳細情報を確認し、情報を変更できます。

  • 推論所要時間: バッチ推論が行われた時間が表示されます。
  • 状態:バッチ推論の状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED バッチ推論の作成をリクエストした状態です。
    CREATE IN PROGRESS バッチ推論に必要なリソースを作成している状態です。
    RUNNING バッチ推論が進行中の状態です。
    STOPPED バッチ推論がユーザーのリクエストにより停止した状態です。
    COMPLETE バッチ推論が正常に完了した状態です。
    STOP IN PROGRESS バッチ推論が停止している状態です。
    FAIL BATCH INFERENCE バッチ推論が進行中に失敗した状態です。詳細な失敗情報は、ログ管理が有効になっている場合、Log \& Crash Searchのログで確認できます。
    CREATE FAILED バッチ推論の作成に失敗した状態です。作成が継続的に失敗する場合は、サポートにお問い合わせください。
    FAIL BATCH INFERENCE IN PROGRESS, COMPLETE IN PROGRESS バッチ推論に使用されたリソースを整理している状態です。
  • 作業

    • 停止:進行中のバッチ推論を停止できます。
  • モニタリング:バッチ推論を選択すると表示される詳細画面の モニタリングタブで、モニタリング対象インスタンスのリストと基本指標チャートを確認できます。
    • モニタリング タブは、バッチ推論が作成中の状態では無効になります。

バッチ推論のコピー

既存のバッチ推論と同じ設定で新しいバッチ推論を作成します。

  1. コピーしたいバッチ推論を選択します。
  2. バッチ推論のコピーをクリックします。
  3. 既存のバッチ推論と同じ設定でバッチ推論の作成画面が表示されます。
  4. 設定を変更したい情報があれば変更した後、バッチ推論の作成をクリックしてバッチ推論を作成します。

バッチ推論の削除

バッチ推論を削除します。

  1. 削除したいバッチ推論を選択します。
  2. バッチ推論の削除をクリックします。進行中のバッチ推論は停止後に削除できます。
  3. リクエストされた削除作業はキャンセルできません。続行するには確認をクリックします。

個人イメージ

ユーザーがパーソナライズされたコンテナイメージを利用してノートパソコン、学習、ハイパーパラメータチューニングを駆動できます。 AI EasyMakerで提供するノートパソコン/ディープラーニングイメージを基に派生した個人イメージのみ、AI EasyMakerでリソース作成時に利用できます。 AI EasyMakerの基盤イメージは下表を確認してください。

ノートパソコンイメージ

イメージ名 コアタイプ フレームワーク フレームワークバージョン Pythonバージョン イメージアドレス
Ubuntu 22.04 CPU Python Notebook CPU Python 3.10.12 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-cpu-py310-ubuntu2204
Ubuntu 22.04 GPU Python Notebook GPU Python 3.10.12 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-gpu-py310-ubuntu2204
Ubuntu 22.04 CPU PyTorch Notebook CPU PyTorch 2.0.1 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-notebook:2.0.1-cpu-py310-ubuntu2204
Ubuntu 22.04 GPU PyTorch Notebook GPU PyTorch 2.0.1 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-notebook:2.0.1-gpu-py310-ubuntu2204
Ubuntu 22.04 CPU TensorFlow Notebook CPU TensorFlow 2.12.0 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-notebook:2.12.0-cpu-py310-ubuntu2204
Ubuntu 22.04 GPU TensorFlow Notebook GPU TensorFlow 2.12.0 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-notebook:2.12.0-gpu-py310-ubuntu2204

ディープラーニングイメージ

イメージ名 コアタイプ フレームワーク フレームワークバージョン Pythonバージョン イメージアドレス
Ubuntu 22.04 CPU PyTorch Training CPU PyTorch 2.0.1 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-train:2.0.1-cpu-py310-ubuntu2204
Ubuntu 22.04 GPU PyTorch Training GPU PyTorch 2.0.1 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-train:2.0.1-gpu-py310-ubuntu2204
Ubuntu 22.04 CPU TensorFlow Training CPU TensorFlow 2.12.0 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-train:2.12.0-cpu-py310-ubuntu2204
Ubuntu 22.04 GPU TensorFlow Training GPU TensorFlow 2.12.0 3.10 fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-train:2.12.0-gpu-py310-ubuntu2204

[参考]個人イメージ使用制約事項:

  • AI EasyMakerで提供する基盤イメージから派生した個人イメージのみ使用できます。
  • 個人イメージが保存されるコンテナレジストリサービスは、NHN Container Registry(NCR)のみ連動可能です (2023年12月基準)。

個人イメージの作成

次の文書は、ドッカー(Docker)を活用してAI EasyMakerベースのイメージでコンテナイメージを作成し、AI EasyMakerでノートパソコン用の個人イメージを使用する方法を案内します。

  1. 個人イメージのDockerFileを作成します。

        FROM fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-cpu-py310-ubuntu2204 as easymaker-notebook
        RUN conda create -n example python=3.10
        RUN conda activate example
        RUN pip install torch torchvision
    
  2. 個人イメージビルドとコンテナレジストリPush DockerfileでイメージをビルドしてNCRレジストリにイメージを保存(Push)します。

        docker build -t {イメージ名}:{タグ} .
        docker tag {イメージ名}:{タグ} {NCRレジストリアドレス}/{イメージ名}:{タグ}
        docker push {NCRレジストリアドレス}/{イメージ名}:{タグ}
    
        (例)
        docker build -t cutstom-training:v1 .
        docker tag cutstom-training:v1 example-kr1-registry.container.nhncloud.com/registry/custom-training:v1
        docker push example-kr1-registry.container.nhncloud.com/registry/custom-training:v1
    
  3. NCRに保存(Push)したイメージをAI EasyMakerの個人イメージとして作成します。

    1. AI EasyMakerコンソールのイメージメニューに移動します。
    2. イメージ作成 ボタンをクリックして、作成したイメージの情報を入力します。
      • 名前、説明:イメージの名前と説明を入力します。
      • アドレス:レジストリイメージアドレスを入力します。
      • タイプ:コンテナイメージのタイプを入力します。ノートパソコンまたは学習を選択します。
      • アカウント: AI EasyMakerノートパソコン/学習ノードがユーザーのレジストリリポジトリにアクセスするためのアカウントを選択します。
        • 新規使用:新規レジストリアカウントを登録します。
          • 名前、説明:レジストリアカウントの名前と説明を入力します。
          • 分類:コンテナレジストリサービスを選択します。
          • ID:レジストリリポジトリのIDを入力します。
          • パスワード:レジストリリポジトリのパスワードを入力します。
        • 既存アカウント使用:すでに登録されたレジストリアカウントを選択します。
  4. 作成した個人イメージでノートパソコンを作成します。

    1. ノートパソコンメニューに移動します。 ノートパソコン作成 ボタンをクリックしてノートパソコン作成ページに移動します。
    2. イメージ情報で個人イメージタブをクリックします。
    3. ノートパソコンコンテナイメージとして使用する個人イメージを選択します。
    4. その他ノートパソコン情報を入力して作成すると、個人イメージでノートパソコンが駆動されます。

[参考]> [参考]個人イメージ使用先: 個人イメージはノートPC、学習、ハイパーパラメータチューニングに使用してリソースを作成できます。

[参考] コンテナレジストリサービス: NHN Container Registry(NCR) コンテナレジストサービスとしてNCRサービスのみ連動可能です (2023年12月基準)。 NCRサービスのアカウントIDとパスワードは、次の値を入力します。 ID: NHN CloudユーザーアカウントのUser Access Key パスワード: NHN CloudユーザーアカウントのUser Secret Key

レジストリアカウント

AI EasyMakerが、個人イメージが保存されているユーザーのレジストリからイメージを取得して(Pull)コンテナを駆動するにはユーザーのレジストリにログインする必要があります。 レジストリアカウントにログイン情報を保存しておけば、該当レジストリアカウントに連動されたイメージで再使用できます。 レジストリアカウントを管理するにはAI EasyMakerコンソールのイメージメニューに移動した後、レジストリアカウントタブを選択します。

レジストリアカウントの作成

新規レジストリアカウントを作成します。

  • 名前:レジストリアカウントの名前を入力します。
  • 説明:レジストリアカウントの説明を入力します。
  • 分類:コンテナレジストリサービスを選択します。
  • ID:レジストリアカウントのIDを入力します。
  • パスワード:レジストリアカウントのパスワードを入力します。

レジストリアカウントの修正

レジストリID、パスワードの修正

  • レジストリアカウントの修正ボタンをクリックします。
  • ID とパスワードを新たに入力した後、確認ボタンをクリックします。

[参考] レジストリアカウントを変更すると、そのアカウントと連動されたイメージを使用する際、変更されたIDとパスワードでレジストリサービスにログインします。 間違ったレジストリID、パスワードを入力すると、個人イメージPullの進行中にログインに失敗し、リソースの作成に失敗します。 レジストリアカウントが連動された個人イメージで作成中のリソースがあったり、実行中の学習やハイパーパラメータがある場合は修正できません。

レジストリアカウント > 名前、説明の変更

  1. レジストリアカウントリストから変更するアカウントを選択します。
  2. 下部画面の変更ボタンをクリックします。
  3. 名前と説明を変更した後、確認ボタンをクリックします。

レジストリアカウントの削除

削除するレジストリアカウントをリストから選択し、レジストリアカウントの削除ボタンをクリックします。

[参考] イメージと連動されたレジストリアカウントは削除できません。 削除するには、連動されたイメージを先に削除した後、レジストリアカウントを削除する必要があります。

パイプライン

MLパイプラインは、移植可能でスケーラブルな機械学習ワークフローを管理・実行するための機能です。 Kubeflow Pipelines(KFP) Python SDKを使用してコンポーネント及びパイプラインを作成し、パイプラインを中間表現YAMLにコンパイルし、AI EasyMakerで実行することができます。

[参考]パイプラインとは? パイプラインは、一つ以上のコンポーネントを組み合わせて方向非巡回グラフ(directed acyclic graph, DAG)を形成するワークフローの定義です。 各コンポーネントは実行中に単一のコンテナを実行し、MLアーティファクトを作成ができます。

[参考] MLアーティファクトとは? コンポーネントは入力を受け取り、出力を作成できます。I/Oタイプには2つのタイプがあります。パラメータ(parameters)とアーティファクト(artifacts)です:

1.パラメータは、コンポーネント間で少量のデータを渡すのに便利です。 2.アーティファクトタイプは、データセット、モデル、メトリックなどのMLアーティファクトを出力するためのものです。オブジェクトストレージに保存するための便利なメカニズムを提供します。

[参考]パイプライン実行ログ照会 パイプラインを実行しながら発生するコンソール出力を照会する機能は提供されません。 パイプラインコードのログを確認するには、SDKのLog送信機能を利用してLog & Crash Searchに送信してご確認ください。

ほとんどのパイプラインは、データセット、モデル、評価メトリックなどの1つ以上のMLアーティファクトを作成することを目的としています。

[参考] Kubeflow Pipelines(KFP)公式文書

パイプラインのアップロード

パイプラインをアップロードします。

  • 名前:パイプライン名前を入力します。
  • 説明:説明を入力します。
  • ファイル登録:アップロードするYAMLファイルを選択します。
  • タグ: Key-Value形式のタグを指定できます。タグは最大10個まで入力できます。

[参考]パイプラインアップロード所要時間: パイプラインのアップロードには数分かかる場合があります。 初回リソース作成時、サービス環境構成のため、さらに数分の時間がかかります。

パイプラインリスト

パイプラインリストが表示されます。リストのパイプラインを選択すると、詳細情報を確認し、情報を変更できます。

  • 状態:パイプラインの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED パイプラインの作成がリクエストされた状態です。
    CREATE IN PROGRESS パイプラインの作成が進行中の状態です。
    CREATE FAILED パイプラインの作成に失敗した状態です。再試行してください。
    ACTIVE パイプラインが正常に作成された状態です。

パイプライングラフ

パイプライングラフが表示されます。グラフのノードを選択すると、詳細情報を確認できます。

グラフはパイプラインを図で表したもので、グラフ内の各ノードはパイプラインの段階を表し、各段階で表示されたパイプラインコンポーネント間の親/子関係を矢印で表します。

パイプラインの削除

パイプラインを削除します。

  1. 削除するパイプラインを選択します。
  2. パイプライン削除をクリックします。作成中のパイプラインは削除できません。
  3. リクエストされた削除作業はキャンセルできません。続行するには削除をクリックします。

[参考]関連するパイプラインスケジュールが存在する場合、パイプライン削除不可: 削除しようとするパイプラインで作成されたスケジュールが存在する場合、パイプラインを削除することはできません。パイプラインスケジュールを先に削除してからパイプラインを削除してください。

パイプラインの実行

アップロードしたパイプラインをAI EasyMakerで実行し、管理できます。

パイプライン実行の作成

パイプラインを実行します。

  • 基本情報
    • 名前:パイプラインの実行名を入力します。
    • 説明:説明を入力します。
    • パイプライン:実行するパイプラインを選択します。
    • 実験:パイプライン実行を含む実験を選択します。実験は、関連するパイプライン実行をグループ化します。作成された実験がない場合は、追加をクリックして実験を作成します。
  • 実行情報
    • 実行パラメータ:パイプラインに定義された入力パラメータがある場合は、その値を入力します。
    • 実行タイプ:パイプラインの実行タイプを選択します。一回性を選択した場合、パイプラインを一度だけ実行します。パイプラインを定期的に繰り返し実行する場合は、スケジュール設定を選択した後、パイプラインスケジュールの作成を参照してスケジュールを設定してください。
  • インスタンス情報
    • インスタンスタイプ:パイプラインを実行するインスタンスタイプを選択します。
    • インスタンス数:パイプライン実行に使用するインスタンス数を入力します。
  • 追加設定
    • ブートストレージサイズ:パイプラインを実行するインスタンスのブートストレージサイズを入力します。
    • NHN Cloud NAS:パイプラインを実行するインスタンスにNHN Cloud NASを接続できます。
      • マウントディレクトリ名:インスタンスにマウントするディレクトリ名を入力します。
      • NASパス: nas://{NAS ID}:/{path}形式のパスを入力します。
    • ログ管理:パイプライン実行中に発生するログをNHN Cloud Log & Crash Searchサービスに保存できます。
    • タグ: Key-Value形式のタグを指定できます。タグは最大10個まで入力できます。

[注意] NHN Cloud NASを使用する場合: AI EasyMakerと同じプロジェクトで作成されたNHN Cloud NASのみ使用可能です。

[参考]パイプライン実行の作成所要時間: パイプライン実行の作成には数分かかる場合があります。 初回リソース作成時、サービス環境構成のため、さらに数分の時間がかかります。

パイプライン実行リスト

パイプライン実行リストが表示されます。リストのパイプライン実行を選択すると、詳細情報を確認し、情報を変更できます。

  • 状態:パイプライン実行の状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED パイプライン実行作成がリクエストされた状態です。
    CREATE IN PROGRESS パイプライン実行作成が進行中の状態です。
    CREATE FAILED パイプライン実行作成に失敗した状態です。再試行してください。
    RUNNING パイプライン実行が進行中の状態です。
    COMPLETE IN PROGRESS パイプライン実行に使用されたリソースをクリーンアップ中の状態です。
    COMPLETE パイプライン実行が正常に完了した状態です。
    STOP IN PROGRESS パイプライン実行が停止中の状態です。
    STOPPED パイプライン実行がユーザーのリクエストにより停止した状態です。
    FAIL PIPELINE RUN IN PROGRESS パイプライン実行に使用されたリソースをクリーンアップしている状態です。
    FAIL PIPELINE RUN パイプラインの実行が失敗した状態です。詳細な失敗情報は、ログ管理が有効になっている場合、Log & Crash Searchのログで確認できます。
  • 作業

    • 停止:進行中のパイプラインの実行を停止できます。
  • モニタリング:リストのパイプライン実行を選択すると表示される詳細画面のモニタリングタブで、モニタリング対象インスタンスのリストと基本指標チャートを確認できます。
    • モニタリング *タブは、パイプライン実行が作成中の状態では無効になります。

パイプライン実行グラフ

パイプライン実行グラフが表示されます。グラフのノードを選択すると、詳細情報を確認できます。

グラフは、パイプライン実行を図示したものです。このグラフは、パイプライン実行中に既に実行されたステップと現在実行中のステップを示し、各ステップに表示されたパイプラインコンポーネント間の親/子関係を矢印で示します。グラフ内の各ノードは、パイプラインのステップを表します。

ノード別詳細情報を通じて、作成されたアーティファクトをダウンロードできます。

[注意]パイプラインアーティファクト保管周期: 120日が経過したアーティファクトは自動的に削除されます。

パイプライン実行停止

進行中のパイプラインの実行を停止します。

  1. リストから停止したいパイプラインの実行を選択します。
  2. 実行停止をクリックします。
  3. リクエストされた作業はキャンセルできません。続行するには確認をクリックします。

[参考]パイプライン実行停止所要時間: パイプライン実行停止は数分かかる場合があります。

パイプライン実行のコピー

既存のパイプライン実行と同じ設定で新しいパイプライン実行を作成します。

  1. コピーするパイプライン実行を選択します。
  2. パイプライン実行コピーをクリックします。
  3. 既存のパイプライン実行と同じ設定でパイプライン実行の作成画面が表示されます。
  4. 設定を変更したい情報があれば、変更した後、パイプライン実行の作成をクリックします。

パイプライン実行の削除

パイプライン実行を削除します。

  1. 削除するパイプライン実行を選択します。
  2. パイプライン実行削除をクリックします。進行中のパイプライン実行は削除できません。
  3. リクエストされた削除作業はキャンセルできません。続行するには削除をクリックします。

パイプラインスケジュール

アップロードしたパイプラインをAI EasyMakerで定期的に繰り返し実行するスケジュールを作成して管理できます。

パイプラインスケジュールの作成

パイプラインを定期的に繰り返し実行するためのスケジュールを作成します。

パイプラインスケジュール作成に設定できる情報のうち、下記の項目以外の情報はパイプライン実行作成を参照してください。

  • 実行情報
    • 実行タイプ:パイプラインの実行タイプを選択します。スケジュール設定を選択した場合、パイプラインを定期的に繰り返し実行します。パイプラインを一度だけ実行する場合は、一回性を選択してください。
    • トリガータイプ:パイプライン実行トリガータイプを選択します。時間周期またはCron式を選択できます。
      • 時間周期設定でパイプラインを繰り返し実行するには、時間周期を選択した後、数字と時間単位を入力します。
      • Cron式設定でパイプラインを繰り返し実行するには、Cron式を選択した後、Cron式を入力します。
    • 同時実行設定を選択します:トリガー周期(時間周期またはCron式**)に応じて、先に作成されたパイプライン実行が終了する前に新しいパイプライン実行が作成されることがあります。同時実行の最大数を指定することで、並列に実行される数に制限をかけることができます。
    • 開始時間:パイプラインスケジュールの開始時間を設定できます。未入力の場合、設定した周期に合わせてパイプライン実行を作成します。
    • 終了時間:パイプラインスケジュールの終了時間を設定できます。未入力の場合、停止するまでのパイプライン実行を作成します。
    • 実行漏れキャッチアップ:パイプラインの実行がスケジュールに遅れている場合、追いつく必要があるかどうかを決定します。
      • 例えば、パイプラインのスケジュールが一時的に中断され、その後再開された場合、有効に設定すると、不足しているパイプラインの実行に追いつきます。
      • パイプラインが内部的にバックフィル(backfill)を処理する場合、重複したバックフィル作業を防ぐために未使用に設定する必要があります。

[参考]パイプラインスケジュールの作成所要時間: パイプラインスケジュールの作成は数分かかる場合があります。 初回リソース作成時、サービス環境構成のため、さらに数分の時間がかかります。

[参考] Cron式形式: Cron式は、6つのスペースで区切られたフィールドを使用して時間を表します。 詳細はCron式形式文書を参照してください。

パイプラインスケジュールリスト

パイプラインスケジュールリストが表示されます。リストのパイプラインスケジュールを選択すると、詳細情報を確認し、情報を変更できます。

  • 状態:パイプラインスケジュールの状態が表示されます。主な状態は下表を参照してください。

    状態 説明
    CREATE REQUESTED パイプラインスケジュールの作成がリクエストされた状態です。
    CREATE FAILED パイプラインスケジュール作成に失敗した状態です。再試行してください。
    ENABLED パイプラインスケジュールが正常に開始された状態です。
    ENABLED(EXPIRED) パイプラインスケジュールが正常に開始されましたが、設定した終了時間が経過した状態です。
    DISABLED パイプラインスケジュールがユーザーのリクエストで停止した状態です。
  • 実行管理:リストのパイプラインスケジュールを選択すると表示される詳細画面の実行管理タブで、パイプラインスケジュールによって作成された実行リストを確認できます。

パイプラインスケジュールの開始と停止

開始されたパイプラインスケジュールを停止したり、停止されたパイプラインスケジュールを開始します。

  1. リストから開始または停止したいパイプラインスケジュールを選択します。
  2. スケジュール開始またはスケジュール停止をクリックします。

パイプラインスケジュールのコピー

既存のパイプラインスケジュールと同じ設定で新しいパイプラインスケジュールを作成します。

  1. コピーしたいパイプラインスケジュールを選択します。
  2. パイプラインスケジュールのコピーをクリックします。
  3. 既存のパイプラインスケジュールと同じ設定でパイプラインスケジュール作成画面が表示されます。
  4. 設定を変更したい情報があれば、変更した後、パイプラインスケジュールの作成をクリックします。

パイプラインスケジュールの削除

パイプラインスケジュールを削除します。

  1. 削除するパイプラインスケジュールを選択します。
  2. パイプラインスケジュールの削除をクリックします。
  3. リクエストされた削除作業はキャンセルできません。続行するには削除をクリックします。

[参考]関連するパイプライン実行が進行中の場合、パイプラインスケジュール削除不可: 削除しようとするパイプラインスケジュールによって作成された実行が進行中の場合は、削除できません。パイプライン実行が完了した後、パイプラインスケジュールを削除してください。

付録

1. NHN Cloud Object StorageにAI EasyMakerシステムアカウント権限を追加

AI EasyMakerの一部機能で入出力ストレージとしてユーザーのNHN Cloud Object Storageを使用する場合、 ユーザーのNHN Cloud Object StroageコンテナにAI EasyMakerシステムアカウントへの読み取りまたは書き込み権限を許可した時のみ正常に機能が動作します。

ユーザーのNHN Cloud Object StroageコンテナにAI EasyMakerシステムアカウントの読み取り/書き込み権限を許可することは、AI EasyMakerシステムアカウントがユーザーのNHN Cloud Object Stroageコンテナのすべてのファイルに対して付与された権限に基づいてファイルの読み書きができることを意味します。

この内容を必ず確認して必要なアカウントと権限のみユーザーObject Storageにアクセスポリシーを設定する必要があります。

アクセスポリシー設定中にAI EasyMakerシステムアカウント以外のアカウントに対してユーザーのObject Storageアクセスを許可して発生したすべての結果に対する責任は「ユーザー」にあり、AI EasyMakerはそれに対して責任を負いません。

[参考]機能によってAI EasyMakerがObject Stroageにアクセスして読み書きするファイルは次のとおりです。

機能 権限 アクセス対象
学習 読み取り ユーザーが入力したアルゴリズムパス、学習入力データパス
学習 書き込み ユーザーが入力した学習出力データ、チェックポイントパス
モデル 読み取り ユーザーが入力したモデルアーティファクトパス
エンドポイント 読み取り ユーザーが入力したモデルアーティファクトパス

NHN Cloud Object StorageにAI EasyMakerシステムアカウントの読み取り/書き込み権限を追加するには、次の内容を参照してください。

  1. [学習]または[モデル]タブ > AI EasyMakerシステムアカウント情報をクリックします。
  2. AI EasyMakerシステムアカウント情報のAI EasyMakerテナントIDAI EasyMaker APIユーザーIDをアーカイブします。
  3. NHN Cloud Object Storageコンソールに移動します。
  4. 特定プロジェクトまたは特定ユーザーに読み取り/書き込み許可文書を参照してNHN Cloud Object StorageコンソールでAI EasyMakerシステムアカウントに必要な読み取りおよび書き込み許可権限を追加します。

AI EasyMakerサービスで発生するログ、イベントをNHN Cloud Log & Crash Searchサービスに保存できます。 Log & Crash Searchサービスにログを保存するには、Log & Crashサービスを有効にする必要があり、別途利用料金がかかります。

ログ照会

  1. Log & Crash Searchサービスコンソールページに移動します。
  2. Log & Crash Searchサービスで検索条件を入力してログを照会します。
    • AI EasyMaker学習ログクエリ:categoryフィールドが"easymaker.training"のログを照会します。
      • クエリ: category:"easymaker.training"
    • AI EasyMakerエンドポイントログクエリ:categoryフィールドが"easymaker.inference"のログを照会します。
      • クエリ: category:"easymaker.inference"
    • AI EasyMakerログ全体照会クエリ: logTypeフィールドが"NNHCloud-AIEasyMaker"のログを照会します。
      • クエリ:logType:"NHNCloud-AIEasyMaker"
  3. Log & Crash Searchサービスの詳細な利用方法はLog & Crash Searchサービスのコンソールガイドを参照してください。

AI EasyMakerサービスは、Log & Crash Searchサービスに次のように定義されたフィールドにログを転送します。

  • 共通ログフィールド

    名前 説明 有効範囲
    easymakerAppKey AI EasyMakerアプリケーションキー(AppKey) -
    category ログカテゴリー easymaker.training, easymaker.inference
    logLevel ログレベル INFO, WARNING, ERROR
    body ログの内容 -
    logType ログ提供サービス名 NHNCloud-AIEasyMaker
    time ログ発生時間(UTC時刻) -
  • 学習ログフィールド

    名前 説明
    trainingId AI EasyMaker学習ID
  • エンドポイントログフィールド

    名前 説明
    endpointId AI EasyMakerエンドポイントID
    endpointStageId エンドポイントステージID
    inferenceId 推論リクエスト固有ID
    action Action区分(Endpoint.Model)
    modelName 推論対象モデル名

3. ハイパーパラメータ

  • コンソールから入力されたKey-Value形式の値です。
  • エントリーポイント実行時、実行引数(--{Key}に渡されます。
  • 環境変数値(EM_HP_{大文字に変換されたKey})としても保存され活用できます。

以下の例のように、学習作成時に入力したハイパーパラメータの値を活用できます。
ハイパーパラメータの入力画面

    import argparse

    model_version = os.environ.get("EM_HP_MODEL_VERSION")

    def parse_hyperparameters():
        parser = argparse.ArgumentParser()

        # 入力したハイパーパラメータ解析
        parser.add_argument("--epochs", type=int, default=500)
        parser.add_argument("--batch_size", type=int, default=32)
        ...

        return parser.parse_known_args()

4. 環境変数

  • 学習に必要な情報は、環境変数として学習コンテナに渡され、学習スクリプトで渡された環境変数を活用できます。
  • ユーザー入力で作成される環境変数名は大文字に変換されます。
  • コード上で学習が完了したモデルは、必ずEM_MODEL_DIRパスに保存する必要があります。
  • 主な環境変数

    環境変数名 説明
    EM_SOURCE_DIR 学習作成時に入力したアルゴリズムスクリプトがダウンロードされているフォルダの絶対パス
    EM_ENTRY_POINT 学習作成時に入力したアルゴリズムエントリーポイント名
    EM_DATASET_${データセット名} 学習作成時に入力したそれぞれのデータセットがダウンロードされているフォルダの絶対パス
    EM_DATASETS 全体データセットリスト(json形式)
    EM_MODEL_DIR モデル保存パス
    EM_CHECKPOINT_INPUT_DIR 入力チェックポイント保存パス
    EM_CHECKPOINT_DIR 出力チェックポイント保存パス
    EM_HP_${大文字に変換されたハイパーパラメータキー} ハイパーパラメータキーに対応するハイパーパラメータ値
    EM_HPS 全体ハイパーパラメータリスト(json形式)
    EM_TENSORBOARD_LOG_DIR 学習結果を確認するためのTensorboardログパス
    EM_REGION 現在リージョン情報
    EM_APPKEY 現在使用中のAI EasyMakerサービスのアプリケーションキー
  • 環境変数活用サンプルコード

    import os
    import tensorflow
    
    dataset_dir = os.environ.get("EM_DATASET_TRAIN")
    train_data = read_data(dataset_dir, "train.csv")
    
    model = ... # 入力したデータを利用してモデル実装
    model.load_weights(os.environ.get('EM_CHECKPOINT_INPUT_DIR', None))
    callbacks = [
        tensorflow.keras.callbacks.ModelCheckpoint(filepath=f'{os.environ.get("EM_CHECKPOINT_DIR")}/cp-{{epoch:04d}}.ckpt', save_freq='epoch', period=50),
        tensorflow.keras.callbacks.TensorBoard(log_dir=f'{os.environ.get("EM_TENSORBOARD_LOG_DIR")}'),
    ]
    model.fit(..., callbacks)
    
    model_dir = os.environ.get("EM_MODEL_DIR")
    model.save(model_dir)
    

5. Tensorboardを活用するための指標ログを保存

  • 学習後、Tensorboard画面で結果指標を確認するために、学習スクリプト作成時にTensorboardログ記憶領域を指定された位置(EM_TENSORBOARD_LOG_DIR)に設定する必要があります。

[注意] Tensorboard指標ログ保管周期: 120日が経過した指標ログは自動的に削除されます。

  • Tensorboardログ保存のサンプルコード(TensorFlow)
    import tensorflow as tf
    
    # Tensorboardログパスの指定
    tb_log = tf.keras.callbacks.TensorBoard(log_dir=os.environ.get("EM_TENSORBOARD_LOG_DIR"))
    
    model = ... # モデル実装
    
    model.fit(x_train, y_train, validation_data=(x_test, y_test),
            epochs=100, batch_size=20, callbacks=[tb_log])
    

Tensorboardログ確認

6. フレームワーク別分散学習設定

  • Tensorflow
    • 分散学習に必要な環境変数TF_CONFIGは、自動的に設定されます。詳しい内容は、Tensorflow公式ガイド文書を参照してください。
  • Pytorch
    • 分散学習をするためのBackends設定が必要です。分散学習をCPUで行う場合はglooに、GPUで進行する場合はncclに設定してください。詳しい内容は、Pytorch公式ガイド文書を参照してください。

7. クラスタバージョンのアップグレード

AI EasyMakerサービスは、安定したサービスと新規機能を提供するため、定期的にクラスタバのージョンをアップグレードします。 新規クラスタのバージョンが配布されると、旧バージョンのクラスタで駆動されたノートパソコンおよびエンドポイントを新規クラスタに移行する必要があります。 リソース別の新規クラスタ移行方法を案内します。

ノートパソコンクラスタバージョンアップグレード

ノートパソコンリスト画面で新規クラスタに移行しなければならないノートパソコンは名前の左側に再起動ボタンが表示されます。 再起動ボタンの上にマウスポインタを合わせると、再起動案内文言と有効期限が表示されます。

  • 期限切れ前に次の注意事項を必ず確認てから再起動ボタンをクリックしてください。
    • 再起動時にデータストレージ(/root/easymakerディレクトリパス)に保存されたデータはそのまま維持されます。
    • 再起動を実行すると、ブートストレージに保存されたデータは初期化され、失われる可能性があります。データをデータストレージに移動してから再起動してください。

再起動は初回実行時に約25分かかり、その後は約10分かかります。 再起動に失敗した場合、管理者に自動的に報告されます。

エンドポイントクラスタバージョンアップグレード

エンドポイントリスト画面で新規クラスタに移行する必要があるエンドポイントは、名前の左側に! 案内文言が表示されます。 !案内文言の上にマウスポインタを合わせると、バージョンアップグレードの案内文言と有効期限が表示されます。 期限が切れるまでに、次の案内に従って旧バージョンのクラスタで運営されているステージを新バージョンのクラスタに移行する必要があります。

一般ステージのクラスタバージョンアップグレード
  1. 基本ステージ以外の一般ステージは削除します。削除する前に該当ステージがサービス中かどうかを確認します。
  2. ステージを再作成します。
  3. 新規ステージがACTIVE状態になったら、ステージエントポイントでAPI呼び出しと推論レスポンスが正常に来るか確認します。

[注意] ステージを削除すると、エンドポイントが終了し、API呼び出しができなくなります。削除する前にサービス中でないステージであることを確認してください。

基本ステージのクラスタバージョンアップグレード

基本ステージは実際のサービスが運営されるステージです。 サービス無瞬断で基本ステージのクラスタのバージョンを移行するには、次のガイドに従って移行します。

  1. 旧バージョンのクラスタの基本ステージを置き換える新規ステージを作成します。
  2. 新規ステージエンドポイントで正常にAPI呼び出しと推論レスポンスが来るか確認します。
  3. 基本ステージ変更ボタンをクリックします。新規ステージを選択して基本ステージに変更します。
  4. 変更が完了すると、新規ステージが基本ステージに設定され、既存の基本ステージは削除されます。

8. torchrun使い方

  • Pytorchで分散学習ができるようにコードを作成し、分散ノード数とノード当たりのプロセス数を入力すると、torchrunを利用した分散ノード及びマルチプロセスを活用した分散学習が行われます。
  • 総プロセス数、モデルサイズ、入力データサイズ、バッチサイズなどの要素によってメモリ不足で学習及びハイパーパラメータチューニングが失敗することがあります。メモリ不足で失敗した場合、下記のようなエラーメッセージが残ることがあります。ただし、下記のメッセージが表示されたからといって、全てメモリ不足による失敗ではありません。 メモリ使用量に応じて適切なインスタンスタイプを設定してください。
exit code : -9 (pid: {pid})

9. リソース情報

AI EasyMakerでバッチ推論とエンドポイントを作成する際、選択したインスタンスタイプから基本使用量を除いたリソースを割り当てます。 モデルのリクエスト量と複雑さによって必要なリソースが異なるため、適切なインスタンスタイプと一緒にPodの数、リソース割り当て量を慎重に設定してください。

バッチ推論は、実際の使用量をPodの数で割って各Podにリソースを割り当てます。エンドポイントは、入力した割り当て量がインスタンスの実際の使用量を超えることができないので、事前にリソースの使用量を確認してください。 バッチ推論とエンドポイントともに、割り当てられたリソースが推論に必要な最小使用量より少ない場合、作成に失敗する可能性があるので注意してください。

10. エンドポイントAPIスペック仕様

AI EasyMakerサービスはOIP(open inference protocol)スペックに基づいたエンドポイントを提供します。 OIPスペックの詳細はOIPスペックを参照してください。

名前 メソッド APIパス
モデルリスト GET /{model_name}/v1/models
モデルReady GET /{model_name}/v1/models/{model_name}
推論 POST /{model_name}/v1/models/{model_name}/predict
説明 POST /{model_name}/v1/models/{model_name}/explain
サーバー情報 GET /{model_name}/v2
サーバーLive GET /{model_name}/v2/health/live
サーバーReady GET /{model_name}/v2/health/ready
モデル情報 GET /{model_name}/v2/models/{model_name}
モデルReady GET /{model_name}/v2/models/{model_name}/ready
推論 POST /{model_name}/v2/models/{model_name}/infer
OpenAI生成型モデル推論 POST /{model_name}/openai/v1/completions
OpenAI生成型モデル推論 POST /{model_name}/openai/v1/chat/completions

[参考] OpenAI生成型モデル推論 OpenAI生成型モデル推論はOpenAIのGPT-4oのような生成型モデルを使用する場合に使用されます。 推論に必要な入力値はOpenAIのAPIスペックに従って入力する必要があります。詳細はOpenAI API文書を参照してください。 AI EasyMakerで提供するCompletion, Chat Completion APIをサポートするモデルはModel endpoint compatibillityをご確認ください。

11. フレームワーク別のサービングに関する注意事項

TensorFlowフレームワーク

AI EasyMakerで提供するTensorFlowモデルのサービングは、TensorFlowが推奨するSavedModel(.pb)を使用しています。 チェックポイントを使うためには、SavedModelで保存されたチェックポイントvariablesディレクトリをモデルディレクトリに一緒に保存するとモデルサービングに使われます。 参考: https://www.tensorflow.org/guide/saved_model

PyTorchフレームワーク

AI EasyMakerはTorchServeでPyTorchモデル(.mar)をサービングします。 model-archiverを使って作ったMARファイルを使うことを推奨し、weightファイルでもサービングが可能ですが、weightファイルと一緒に必要なファイルがあります。 必要なファイルと詳しい説明は下記の表とmodel-archiver説明文書をご確認ください。

ファイル名 必須かどうか 説明
model.py 必須 model-fileパラメータで渡されるモデル構造ファイルです。
handler.py 必須 推論ロジックを処理するためのhandlerパラメータとして渡されるファイルです。
weightファイル(.pt, .pth, .bin) 必須 モデルの重みと構造を保存したファイルです。
requirements.txt 人に サービングする時に必要なPythonパッケージをインストールするためのファイルです。
extra/ 選択 ディレクトリにあるファイルはextra-filesパラメータで渡すことができます。

Hugging Faceフレームワーク

Hugging Faceモデルは、AI EasyMakerが提供するRuntimeやTensorFlow Serving、TorchServeを利用してサービングできます。

Hugging Face Runtime

簡単にHugging Faceモデルをサービングする方法です。 Hugging Face Runtimeサービングは微調整をサポートしていません。微調整されたモデルをサービングするにはTensorFlow/Pytorch Servingの方法を使用してください。

  1. サービングするモデルをHugging Faceで確認します。
  2. Hugging FaceモデルIDをコピーします。
  3. AI EasyMakerモデル作成ページでHugging Faceフレームワークを選択し、Hugging FaceモデルIDを入力します。
  4. モデルに応じて必要な入力値を入力してモデルを作成します。
  5. 作成されたモデルを確認し、エンドポイントを作成します。

[参考]サポートするHugging Face Task: 現在Hugging Face RuntimeはHugging Faceの全体Taskをサポートしません。 サポートするTaskはsequence_classification, token_classification, fill_mask, text_generation, text2text_generationです。 サポートしないTaskを使用するにはTensorFlow/Pytorch Serving方法を使用してください。

[参考] Gated Model: Gated Modelをサービングするにはアクセスが許可されたアカウントのトークンをモデルパラメータとして入力する必要があります。 トークンを入力しなかったり、許可されていないアカウントのトークンを入力した場合、モデルの配布に失敗します。

TensorFlow/PyTorch Serving

TensorFlowとPyTorchで学習されたHugging Faceモデルをサービングする方法です。

  1. Hugging Faceモデルをダウンロードします。

    • 下記のサンプルコードのようにtransformersライブラリのAutoTokenizer, AutoConfig, AutoModelを使用してダウンロードできます。

      from transformers import AutoTokenizer, AutoConfig, AutoModel
      
      model_id = "<model_id>"
      revision = "main"
      
      model_dir = f"./models/{model_id}/{revision}"
      
      tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision)
      model_config = AutoConfig.from_pretrained(model_id, revision=revision)
      model = AutoModel.from_config(model_config)
      
      tokenizer.save_pretrained(model_dir)
      model.save_pretrained(model_dir)
      
    • モデルのダウンロードに失敗した場合は、AutoModelではなく、モデルに合うクラスをimportしてダウンロードしてください。

    • 微調整が必要な場合Hugging Face微調整ガイドに従って独自コードを作成して学習できます。
      • AI EasyMaker学習の詳細は学習をご確認ください。
  2. Hugging Faceモデル情報を確認してサービングに必要なファイルを作成します。

    • フレームワークごとにサービングに必要な形でモデルを保存します。
    • 詳細については、 TensorFlow, PyTorchフレームワークの参考事項をご確認ください。
  3. OBSまたはNASにモデルファイルをアップロードします。
  4. 以降のプロセスはモデル作成エンドポイント作成ガイドをご確認ください。
目次
TOP