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

Platform For AI:組み込みプロセッサ

最終更新日:Apr 02, 2026

プロセッサは、オンライン予測ロジックのパッケージです。Elastic Algorithm Service (EAS) は、標準モデルをデプロイするための組み込みプロセッサを提供しており、このロジックを独自に開発する必要はありません。

次の表に、EAS のプロセッサ名とコードを示します。EASCMD を使用してサービスをデプロイする際に、プロセッサコードを指定してください。

プロセッサ名

プロセッサコード (EASCMD のみ)

リファレンス

CPU 版

GPU 版

EasyRec

easyrec-2.4

easyrec-2.4

EasyRec プロセッサ

TorchEasyRec

easyrec-torch-1.0

easyrec-torch-1.0

TorchEasyRec プロセッサ

PMML

pmml

なし

PMML プロセッサ

TensorFlow 1.12

tensorflow_cpu_1.12

tensorflow_gpu_1.12

TensorFlow 1.12 プロセッサ

TensorFlow 1.14

tensorflow_cpu_1.14

tensorflow_gpu_1.14

TensorFlow 1.14 プロセッサ

TensorFlow 1.15

tensorflow_cpu_1.15

tensorflow_gpu_1.15

TensorFlow 1.15 プロセッサ (PAI-Blade アジリティエディション最適化エンジンを含む)

TensorFlow 2.3

tensorflow_cpu_2.3

なし

TensorFlow 2.3 プロセッサ

PyTorch 1.6

pytorch_cpu_1.6

pytorch_gpu_1.6

PyTorch 1.6 プロセッサ (PAI-Blade アジリティエディション最適化エンジンを含む)

Caffe

caffe_cpu

caffe_gpu

Caffe プロセッサ

Parameter Server

parameter_server

なし

Parameter Server プロセッサ

Alink

alink_pai_processor

なし

なし

xNN

xnn_cpu

なし

なし

EasyVision

easy_vision_cpu_tf1.12_torch151

easy_vision_gpu_tf1.12_torch151

EasyVision プロセッサ

EasyTransfer

easytransfer_cpu

easytransfer_gpu

EasyTransfer プロセッサ

EasyNLP

easynlp

easynlp

EasyNLP プロセッサ

EasyCV

easycv

easycv

EasyCV プロセッサ

Blade

blade_cpu

blade_cuda10.0_beta

なし

MediaFlow

なし

mediaflow

MediaFlow プロセッサ

Triton

なし

triton

Triton プロセッサ

PMML プロセッサ

EAS の PMML プロセッサは、次の機能を提供します。

  • PMML モデルファイルをサービスとしてロードします。

  • モデルサービスへのリクエストを処理します。

  • 予測結果を計算し、クライアントに返します。

PMML プロセッサは、欠損値を処理するためのデフォルトの戦略を提供します。PMML モデルファイルの特徴列に isMissing ポリシーが指定されていない場合、システムは次のデフォルト値で補完します。

タイプ

デフォルト

BOOLEAN

false

DOUBLE

0.0

FLOAT

0.0

INT

0

STRING

""

PMML モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type パラメーターを PMML に設定します。詳細については、「コンソールを使用したモデルサービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processorpmml に設定します。例:

    {
      "processor": "pmml",
      "generate_token": "true",
      "model_path": "http://xxxxx/lr.pmml",
      "name": "eas_lr_example",
      "metadata": {
        "instance": 1,
        "cpu": 1 # EAS は CPU コア (1 Quota) ごとに 4 GB のメモリを割り当てます。
      }
    }
  • Data Science Workshop (DSW)

    EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。

TensorFlow 1.12 プロセッサ

EAS の TensorFlow 1.12 プロセッサは、SavedModel (推奨) または SessionBundle 形式の TensorFlow モデルをロードします。デプロイする前に、Keras および Checkpoint モデルを SavedModel 形式に変換してください。詳細については、「TensorFlow に関するよくある質問」をご参照ください。

説明

このプロセッサは、カスタム TensorFlow オペレーションをサポートしていません。

TensorFlow モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[TensorFlow1.12] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processortensorflow_cpu_1.12 または tensorflow_gpu_1.12 に設定します。デプロイリソースに基づいてコードを選択してください。processor とリソースタイプが一致しない場合、デプロイは失敗します。例:

    {
      "name": "tf_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/savedmodel_example.zip",
      "processor": "tensorflow_cpu_1.12",
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 0,
        "memory": 2000
      }
    }
  • DSW

    EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。

TensorFlow 1.14 プロセッサ

EAS の TensorFlow 1.14 プロセッサは、SavedModel (推奨) または SessionBundle 形式の TensorFlow モデルをロードします。デプロイする前に、Keras および Checkpoint モデルを SavedModel 形式に変換してください。詳細については、「TensorFlow に関するよくある質問」をご参照ください。

説明

このプロセッサは、カスタム TensorFlow オペレーションをサポートしていません。

TensorFlow モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[TensorFlow1.14] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processortensorflow_cpu_1.14 または tensorflow_gpu_1.14 に設定します。デプロイリソースに一致するコードを選択してください。processor とリソースタイプが一致しない場合、デプロイは失敗します。例:

    {
      "name": "tf_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/savedmodel_example.zip",
      "processor": "tensorflow_cpu_1.14",
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 0,
        "memory": 2000
      }
    }
  • DSW

    EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。

TensorFlow 1.15 プロセッサ (PAI-Blade アジリティエディション)

EAS の TensorFlow 1.15 プロセッサは、SavedModel (推奨) または SessionBundle 形式の TensorFlow モデルをロードします。デプロイする前に、Keras および Checkpoint モデルを SavedModel 形式に変換してください。詳細については、「TensorFlow に関するよくある質問」をご参照ください。

説明
  • このプロセッサは、カスタム TensorFlow オペレーションをサポートしていません。

  • このプロセッサには、PAI-Blade で最適化された TensorFlow モデルをデプロイするための PAI-Blade アジリティエディション最適化エンジンが含まれています。

TensorFlow モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[TensorFlow1.15] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD

    service.json 設定ファイルで、processortensorflow_cpu_1.15 または tensorflow_gpu_1.15 に設定します。デプロイリソースに一致するコードを選択してください。processor とリソースタイプが一致しない場合、デプロイは失敗します。例:

    {
      "name": "tf_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/savedmodel_example.zip",
      "processor": "tensorflow_cpu_1.15",
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 0,
        "memory": 2000
      }
    }
  • DSW

    EASCMD の使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。パラメーターの説明については、「サービスの作成」をご参照ください。

TensorFlow 2.3 プロセッサ

EAS の TensorFlow 2.3 プロセッサは、SavedModel (推奨) または SessionBundle 形式の TensorFlow モデルをロードします。デプロイする前に、Keras および Checkpoint モデルを SavedModel 形式に変換してください。詳細については、「TensorFlow に関するよくある質問」をご参照ください。

説明

このプロセッサは、カスタム TensorFlow オペレーションをサポートしていません。

TensorFlow モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[TensorFlow2.3] に設定します。詳細については、「コンソールを使用したサービスのデプロイ」をご参照ください。

  • EASCMD

    service.json 設定ファイルで、processortensorflow_cpu_2.3 例:

    {
      "name": "tf_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/savedmodel_example.zip",
      "processor": "tensorflow_cpu_2.3",
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 0,
        "memory": 2000
      }
    }
  • DSW

    EASCMD の使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。

PyTorch 1.6 プロセッサ (PAI-Blade アジリティエディション)

EAS の PyTorch 1.6 プロセッサは、TorchScript 形式のモデルをロードします。詳細については、「TorchScript の公式ドキュメント」をご参照ください。

説明
  • このプロセッサは、PyTorch 拡張機能や、非テンソル形式のモデル入出力をサポートしていません。

  • このプロセッサには、最適化された PyTorch モデルをデプロイするための PAI-Blade (アジリティエディション) 最適化エンジンが含まれています。

TorchScript モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[PyTorch 1.6] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processorpytorch_cpu_1.6 または pytorch_gpu_1.6 に設定します。デプロイリソースに基づいて値を選択してください。processor とリソースタイプが一致しない場合、デプロイは失敗します。例:

    {
      "name": "pytorch_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/torchscript_model.pt",
      "processor": "pytorch_gpu_1.6",
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 1,
        "cuda": "10.0",
        "memory": 2000
      }
    }
  • DSW

    EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。パラメーターの説明については、「サービスの作成」をご参照ください。

Caffe プロセッサ

EAS の Caffe プロセッサは、Caffe でトレーニングされたディープラーニングモデルをロードします。モデルパッケージにモデルと重みファイル名を指定してください。

説明

このプロセッサは、カスタムデータ層をサポートしていません。

Caffe モデルは、次の方法でデプロイします。

  • コンソール

    Processor TypeCaffe に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、リソースタイプに基づいて processorcaffe_cpu または caffe_gpu に設定します。processor とリソースタイプが一致しない場合、デプロイは失敗します。例:

    {
      "name": "caffe_serving_test",
      "generate_token": "true",
      "model_path": "http://xxxxx/caffe_model.zip",
      "processor": "caffe_cpu",
      "model_config": {
        "model": "deploy.prototxt",
        "weight": "bvlc_reference_caffenet.caffemodel"
      },
      "metadata": {
        "instance": 1,
        "cpu": 1,
        "gpu": 0,
        "memory": 2000
      }
    }
  • DSW

    EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD を使用したモデルサービスのデプロイ」をご参照ください。

PS プロセッサ

EAS の PS プロセッサは、PS 形式のモデルをロードします。

PS モデルをデプロイし、サービスにリクエストを送信します。

  • PS モデルは、次のいずれかの方法でデプロイします。

    • コンソール

      Processor TypePS Algorithm に設定します。詳細については、「カスタムデプロイ」をご参照ください。

    • EASCMD クライアント

      service.json 設定ファイルで、processorparameter_sever に設定します。

      {
        "name":"ps_smart",
        "model_path": "oss://examplebucket/xlab_m_pai_ps_smart_b_1058272_v0.tar.gz",
        "processor": "parameter_sever",
        "metadata": {
          "region": "beijing",
          "cpu": 1,
          "instance": 1,
          "memory": 2048
        }
      }
    • DSW

      EASCMD クライアントの使用と同様です。service.json 設定ファイルを作成します。詳細については、「EASCMD クライアントを使用したモデルサービスのデプロイ」をご参照ください。

  • リクエスト形式

    このプロセッサは、単一予測とバッチ予測の両方をサポートしています。リクエスト形式は同じで、特徴オブジェクトの JSON 配列です。

    • 単一リクエストの例

      curl "http://eas.location/api/predict/ps_smart" -d "[
                  {
                      "f0": 1,
                      "f1": 0.2,
                      "f3": 0.5
                  }
      ]"
    • バッチリクエストの例

      curl "http://eas.location/api/predict/ps_smart" -d "[
              {
                  "f0": 1,
                  "f1": 0.2,
                  "f3": 0.5
              },
              {
                  "f0": 1,
                  "f1": 0.2,
                  "f3": 0.5
              }
      ]"
    • 応答

      単一リクエストとバッチリクエストの応答形式は同じで、応答オブジェクトの配列です。各応答オブジェクトは、同じ位置のリクエストオブジェクトに対応します。

      [
        {
          "label":"xxxx",
          "score" : 0.2,
          "details" : [{"k1":0.3}, {"k2":0.5}]
        },
        {
          "label":"xxxx",
          "score" : 0.2,
          "details" : [{"k1":0.3}, {"k2":0.5}]
        }
      ]

EasyTransfer プロセッサ

EAS の EasyTransfer プロセッサは、EasyTransfer でトレーニングされた TensorFlow ベースの NLP モデルをロードします。

EasyTransfer モデルは、次の方法でデプロイします。

  • コンソール

    Processor Type パラメーターに [EasyTransfer] を選択します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、デプロイリソースに基づいて processoreasytransfer_cpu または easytransfer_gpu に設定します。processor とリソースが一致しない場合、デプロイは失敗します。model_config で、type をトレーニング中に使用したモデルタイプに設定します。次の例では、テキスト分類モデルを使用しています。その他のパラメーターについては、「サービスの作成」をご参照ください。

    • GPU デプロイメント用の設定 (パブリックリソースグループを例として使用)

      {
        "name": "et_app_demo",
        "metadata": {
          "instance": 1
        },
        "cloud": {
          "computing": {
            "instance_type": "ecs.gn6i-c4g1.xlarge"
          }
        },
        "model_path": "http://xxxxx/your_model.zip",
        "processor": "easytransfer_gpu",
        "model_config": {
          "type": "text_classify_bert"
        }
      }
    • CPU デプロイメント用の設定

      {
        "name": "et_app_demo",
        "model_path": "http://xxxxx/your_model.zip",
        "processor": "easytransfer_cpu",
        "model_config": {
          "type":"text_classify_bert"
        },
        "metadata": {
          "instance": 1,
          "cpu": 1,
          "memory": 4000
        }
      }

    サポートされているタスクタイプ:

    タスクタイプ

    タイプ

    テキストマッチング

    text_match_bert

    テキスト分類

    text_classify_bert

    シーケンスラベリング

    sequence_labeling_bert

    テキストベクトル化

    vectorization_bert

EasyNLP プロセッサ

EAS の EasyNLP プロセッサは、EasyNLP でトレーニングされた PyTorch ベースの NLP モデルをロードします。

EasyNLP モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[EasyNLP] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processoreasynlp に設定します。model_config で、type をトレーニングタスクタイプに設定します。次の例では、単一ラベルテキスト分類モデルを使用しています。その他のパラメーターについては、「サービスの作成」をご参照ください。

    {
      "name": "easynlp_app_demo",
      "metadata": {
        "instance": 1
      },
      "cloud": {
        "computing": {
          "instance_type": "ecs.gn6i-c4g1.xlarge"
        }
      },
      "model_config": {
        "app_name": "text_classify",
        "type": "text_classify"
      },
      "model_path": "http://xxxxx/your_model.tar.gz",
      "processor": "easynlp"
    }

    サポートされているタスクタイプ:

    タスクタイプ

    単一ラベルテキスト分類

    text_classify

    複数ラベルテキスト分類

    text_classify_multi

    テキストマッチング

    text_match

    シーケンスラベリング

    sequence_labeling

    テキストベクトル化

    vectorization

    中国語テキスト要約 (GPU)

    sequence_generation_zh

    英語テキスト要約 (GPU)

    sequence_generation_en

    機械読解 (中国語)

    machine_reading_comprehension_zh

    機械読解 (英語)

    machine_reading_comprehension_en

    WUKONG_CLIP (GPU)

    wukong_clip

    CLIP (GPU)

    clip

デプロイ後、Elastic Algorithm Service (EAS) ページで、対象サービスの Service Type 列にある Invocation Information をクリックして、エンドポイントとトークンを表示します。次の Python の例を使用してサービスを呼び出します。

import requests
# ご利用のサービスエンドポイントに置き換えてください。
url = '<eas-service-url>'
# ご利用のトークンに置き換えてください。
token = '<eas-service-token>'
# リクエストデータを準備します。次の例はテキスト分類用です。
request_body = {
    "first_sequence": "hello"
}
 
headers = {"Authorization": token}
resp = requests.post(url=url, headers=headers, json=request_body)
print(resp.content.decode())

EasyCV プロセッサ

EAS の EasyCV プロセッサは、EasyCV でトレーニングされたディープラーニングモデルをロードします。

EasyCV モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[EasyCV] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processoreasycv に設定します。model_config で、type をトレーニング中に使用したモデルタイプに設定します。次の例では、画像分類モデルを使用しています。その他のパラメーターについては、「サービスの作成」をご参照ください。

    {
      "name": "easycv_classification_example",
      "processor": "easycv",
      "model_path": "oss://examplebucket/epoch_10_export.pt",
      "model_config": {"type":"TorchClassifier"},
      "metadata": {
        "instance": 1
      },
      "cloud": {
        "computing": {
          "instance_type": "ecs.gn5i-c4g1.xlarge"
        }
      }
    }

    サポートされているジョブタイプ:

    ジョブタイプ

    model_config

    画像分類

    {"type":"TorchClassifier"}

    物体検出

    {"type":"DetectionPredictor"}

    セマンティックセグメンテーション

    {"type":"SegmentationPredictor"}

    YOLOX

    {"type":"YoloXPredictor"}

    動画分類

    {"type":"VideoClassificationPredictor"}

デプロイ後、Elastic Algorithm Service (EAS) ページに移動します。サービスを見つけ、Service Type 列で Invocation Information をクリックして、エンドポイントとトークンを表示します。次の Python の例は、サービスの呼び出し方法を示しています。

import requests
import base64
import json
resp = requests.get('http://examplebucket.oss-cn-zhangjiakou.aliyuncs.com/images/000000123213.jpg')
ENCODING = 'utf-8'
datas = json.dumps( {
            "image": base64.b64encode(resp.content).decode(ENCODING)
            })
# ご利用の認証トークンに置き換えてください。
head = {
   "Authorization": "NTFmNDJlM2E4OTRjMzc3OWY0NzI3MTg5MzZmNGQ5Yj***"
}
for x in range(0,10):
  	# ご利用のサービスエンドポイントに置き換えてください。
    resp = requests.post("http://150231884461***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/easycv_classification_example", data=datas, headers=head)
    print(resp.text)
                            

画像または動画データを Base64 でエンコードして転送します。画像データには image キーを、動画データには video キーを使用します。

EasyVision プロセッサ

EAS の EasyVision プロセッサは、EasyVision でトレーニングされたディープラーニングモデルをロードします。

EasyVision モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[EasyVision] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processoreasy_vision_cpu_tf1.12_torch151 または easy_vision_gpu_tf1.12_torch151 に設定します。デプロイリソースに一致するコードを選択してください。processor とリソースタイプが一致しない場合、デプロイは失敗します。model_config で、type をトレーニングに使用したモデルタイプに設定します。例:その他のパラメーターについては、「サービスの作成」をご参照ください。

    • GPU デプロイメント用の設定

      {
        "name": "ev_app_demo",
        "processor": "easy_vision_gpu_tf1.12_torch151",
        "model_path": "oss://path/to/your/model",
        "model_config": "{\"type\":\"classifier\"}",
        "metadata": {
          "resource": "your_resource_name",
          "cuda": "9.0",
          "instance": 1,
          "memory": 4000,
          "gpu": 1,
          "cpu": 4,
          "rpc.worker_threads" : 5
        }
      }
    • CPU デプロイメント用の設定

      {
        "name": "ev_app_cpu_demo",
        "processor": "easy_vision_cpu_tf1.12_torch151",
        "model_path": "oss://path/to/your/model",
        "model_config": "{\"type\":\"classifier\"}",
        "metadata": {
          "resource": "your_resource_name",
          "instance": 1,
          "memory": 4000,
          "gpu": 0,
          "cpu": 4,
          "rpc.worker_threads" : 5
        }
      }

MediaFlow プロセッサ

EAS の MediaFlow プロセッサは、動画、音声、画像を分析および処理するためのオーケストレーションエンジンです。

MediaFlow モデルは、次のいずれかの方法でデプロイします。

  • コンソール

    Processor Type[MediaFlow] に設定します。詳細については、「カスタム推論サービスのデプロイ」をご参照ください。

  • EASCMD クライアント

    service.json 設定ファイルで、processormediaflow に設定します。このプロセッサには追加の設定フィールドが必要です。その他のフィールドについては、「サービスの作成」をご参照ください。

    • graph_pool_size:グラフプールの数。

    • worker_threads:ワーカースレッドの数。

    例:

    • 動画分類モデルをデプロイするための設定。

      {
        "model_entry": "video_classification/video_classification_ext.js", 
        "name": "video_classification", 
        "model_path": "oss://path/to/your/model", 
        "generate_token": "true", 
        "processor": "mediaflow", 
        "model_config" : {
            "graph_pool_size":8,
            "worker_threads":16
        },
        "metadata": {
          "eas.handlers.disable_failure_handler" :true,
          "resource": "your_resource_name", 
            "rpc.worker_threads": 30,
            "rpc.enable_jemalloc": true,
          "rpc.keepalive": 500000, 
          "cpu": 4, 
          "instance": 1, 
          "cuda": "9.0", 
          "rpc.max_batch_size": 64, 
          "memory": 10000, 
          "gpu": 1 
        }
      }
    • 自動音声認識 (ASR) モデルをデプロイするための設定。

      {
        "model_entry": "asr/video_asr_ext.js", 
        "name": "video_asr", 
        "model_path": "oss://path/to/your/model", 
        "generate_token": "true", 
        "processor": "mediaflow", 
        "model_config" : {
            "graph_pool_size":8,
            "worker_threads":16
        },
        "metadata": {
          "eas.handlers.disable_failure_handler" :true,
          "resource": "your_resource_name", 
            "rpc.worker_threads": 30,
            "rpc.enable_jemalloc": true,
          "rpc.keepalive": 500000, 
          "cpu": 4, 
          "instance": 1, 
          "cuda": "9.0", 
          "rpc.max_batch_size": 64, 
          "memory": 10000, 
          "gpu": 1 
        }
      }

    ASR と動画分類の設定は、主に model_entrynamemodel_path が異なります。ご利用のモデルに合わせてこれらのフィールドを変更してください。

Triton プロセッサ

Triton Inference Server は、NVIDIA のオンラインサービングフレームワークです。GPU 上でモデルをデプロイおよび管理するためのインターフェイスを提供し、KFServing API 標準と互換性があります。主な特徴:

  • TensorFlow、PyTorch、ONNX Runtime、TensorRT、カスタムバックエンドなど、さまざまなフレームワークのモデルをデプロイします。

  • GPU 上で複数のモデルを同時に実行して、使用率を向上させます。

  • HTTP/gRPC プロトコルとバイナリ形式拡張をサポートし、リクエストサイズを削減します。

  • 動的バッチ処理をサポートし、サービススループットを向上させます。

Triton Inference Server は、EAS 上で組み込みの Triton プロセッサとして利用できます。

説明
  • 中国 (上海) リージョンでのみパブリックプレビューとして利用可能です。

  • すべてのモデルは OSS に保存する必要があります。まず OSS を有効化し、モデルファイルを OSS バケットにアップロードしてください。詳細については、「シンプルアップロード」をご参照ください。

Triton プロセッササービスのデプロイと呼び出し。

  • Triton プロセッサを使用したデプロイ

    Triton モデルサービスは、EASCMD を使用してのみデプロイできます。詳細については、「サービスの作成」をご参照ください。「service.json」構成ファイルで、プロセッサtriton に設定します。Triton は OSS からモデルを取得するため、必要な OSS パラメーターを設定する必要があります。例:「service.json」:

    {
      "name": "triton_test",                          
      "processor": "triton",
      "processor_params": [
        "--model-repository=oss://triton-model-repo/models", 
        "--allow-http=true", 
      ],
      "metadata": {
        "instance": 1,
        "cpu": 4,
        "gpu": 1,
        "memory": 10000,
        "resource":"<your resource id>"
      }
    }

    Triton 固有のパラメーターを以下に示します。その他のパラメーターについては、「service.json のパラメーター」をご参照ください。

    パラメーター

    説明

    processor_params

    起動時に Triton Server に渡されるパラメーター。サポートされていないパラメーターは自動的にフィルターされます。サポートされているパラメーターは、次のTriton サーバーに渡すことができるパラメーターセットにリストされています。model-repository は必須です。オプションのパラメーターについては、「main.cc」をご参照ください。

    oss_endpoint

    OSS エンドポイント。指定しない場合、システムは EAS サービスと同じリージョンの OSS を使用します。クロスリージョン OSS の場合はこれを指定してください。値については、「リージョンとエンドポイント」をご参照ください。

    metadata

    resource

    モデルサービスをデプロイするための EAS 専用リソースグループの ID。Triton プロセッサには、EAS 専用リソースグループが必要です。詳細については、「EAS 専用リソースグループの使用」をご参照ください。

    表 1. Triton サーバーでサポートされているパラメーター

    パラメーター

    必須

    説明

    model-repository

    はい

    パスは OSS パスとして指定する必要があります。システムは、バケットのルートディレクトリを model-repository として直接使用することをサポートしていません。バケット内のサブディレクトリを指定する必要があります。

    例:oss://triton-model-repo/models。ここで、triton-model-repo はバケット名、models はバケット内のサブディレクトリです。

    log-verbose

    いいえ

    詳細については、「main.cc」をご参照ください。

    log-info

    いいえ

    log-warning

    いいえ

    log-error

    いいえ

    exit-on-error

    いいえ

    strict-model-config

    いいえ

    strict-readiness

    いいえ

    allow-http

    いいえ

    http-thread-count

    いいえ

    pinned-memory-pool-byte-size

    いいえ

    cuda-memory-pool-byte-size

    いいえ

    min-supported-compute-capability

    いいえ

    buffer-manager-thread-count

    いいえ

    backend-config

    いいえ

  • ネイティブ Triton クライアントを使用したサービスの呼び出し

    NVIDIA の公式 Triton クライアントをインストールします。

    pip3 install nvidia-pyindex
    pip3 install tritonclient[all]

    テスト画像をダウンロードします。

    wget http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/doc-assets/cat.png

    Python クライアントを使用して、バイナリ形式のリクエストを Triton プロセッササービスに送信します。

    import numpy as np
    import time
    from PIL import Image
    
    import tritonclient.http as httpclient
    from tritonclient.utils import InferenceServerException
    
    URL = "<service url>"  # <service url> をご利用のサービスエンドポイントに置き換えてください。
    HEADERS = {"Authorization": "<service token>"} # <service token> をご利用のサービスアクセストークンに置き換えてください。
    input_img = httpclient.InferInput("input", [1, 299, 299, 3], "FP32")
    img = Image.open('./cat.png').resize((299, 299))
    img = np.asarray(img).astype('float32') / 255.0
    input_img.set_data_from_numpy(img.reshape([1, 299, 299, 3]), binary_data=True)
    
    output = httpclient.InferRequestedOutput(
        "InceptionV3/Predictions/Softmax", binary_data=True
    )
    triton_client = httpclient.InferenceServerClient(url=URL, verbose=False)
    
    start = time.time()
    for i in range(10):
        results = triton_client.infer(
            "inception_graphdef", inputs=[input_img], outputs=[output], headers=HEADERS
        )
        res_body = results.get_response()
        elapsed_ms = (time.time() - start) * 1000
        if i == 0:
            print("model name: ", res_body["model_name"])
            print("model version: ", res_body["model_version"])
            print("output name: ", res_body["outputs"][0]["name"])
            print("output shape: ", res_body["outputs"][0]["shape"])
        print("[{}] Avg rt(ms): {:.2f}".format(i, elapsed_ms))
        start = time.time()