日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

預(yù)置Processor使用說明

更新時(shí)間:

Processor是包含在線預(yù)測邏輯的程序包。EAS已將一些常用的Processor預(yù)置為官方Processor,您可以直接使用該官方Processor部署常規(guī)模型,節(jié)省開發(fā)在線預(yù)測邏輯的成本。

EAS提供的Processor名稱及Code如下表所示(使用EASCMD部署服務(wù)時(shí),需要提供Processor Code)。

Processor名稱

Processor Code(僅用于EASCMD部署)

文檔

CPU

GPU

PMML

pmml

PMML Processor

TensorFlow1.12

tensorflow_cpu_1.12

tensorflow_gpu_1.12

TensorFlow1.12 Processor

TensorFlow1.14

tensorflow_cpu_1.14

tensorflow_gpu_1.14

TensorFlow1.14 Processor

TensorFlow1.15

tensorflow_cpu_1.15

tensorflow_gpu_1.15

TensorFlow1.15 Processor(內(nèi)置PAI-Blade敏捷版優(yōu)化引擎)

TensorFlow2.3

tensorflow_cpu_2.3

TensorFlow2.3 Processor

PyTorch1.6

pytorch_cpu_1.6

pytorch_gpu_1.6

PyTorch1.6 Processor(內(nèi)置PAI-Blade敏捷版優(yōu)化引擎)

Caffe

caffe_cpu

caffe_gpu

Caffe Processor

PS算法

parameter_sever

PS算法Processor

Alink

alink_pai_processor

xNN

xnn_cpu

EasyVision

easy_vision_cpu_tf1.12_torch151

easy_vision_gpu_tf1.12_torch151

EasyVision Processor

EasyTransfer

easytransfer_cpu

easytransfer_gpu

EasyTransfer Processor

EasyNLP

easynlp

easynlp

EasyNLP Processor

EasyCV

easycv

easycv

EasyCV Processor

Blade

blade_cpu

blade_cuda10.0_beta

MediaFlow

mediaflow

MediaFlow Processor

Triton

triton

Triton Processor

PMML Processor

EAS預(yù)置的PMML Processor主要功能包括:

  • PMML類型的模型文件加載為一個(gè)服務(wù)。

  • 處理對模型服務(wù)進(jìn)行調(diào)用的請求。

  • 根據(jù)模型計(jì)算請求結(jié)果,并將其返回至客戶端。

PMML Processor提供默認(rèn)的缺失值填充策略。如果PMML模型文件中的特征字段無指定isMissing策略,則系統(tǒng)默認(rèn)以如下值進(jìn)行填充。

DataType

默認(rèn)填充值

BOOLEAN

false

DOUBLE

0.0

FLOAT

0.0

INT

0

STRING

“”

您可以通過如下任何一種方式部署PMML模型:

  • 控制臺上傳

    選擇Processor種類PMML,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即pmml,示例如下。

    {
      "processor": "pmml",
      "generate_token": "true",
      "model_path": "http://xxxxx/lr.pmml",
      "name": "eas_lr_example",
      "metadata": {
        "instance": 1,
        "cpu": 1 #自動(dòng)為每個(gè)CPU配置4 GB內(nèi)存,稱為1 Quota。
      }
    }
  • DSW部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

TensorFlow1.12 Processor

EAS提供的TensorFlow1.12 Processor可以加載SavedModel(推薦)或SessionBundle格式的TensorFlow模型。對于KerasCheckpoint模型,需要先將其轉(zhuǎn)換為SavedModel模型,再進(jìn)行部署,詳情請參見TensorFlow模型如何導(dǎo)出為SavedModel

說明

官方通用Processor不支持TensorFlow自定義OP。

您可以通過如下任何一種方式部署TensorFlow模型:

  • 控制臺上傳

    選擇Processor種類TensorFlow1.12,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即tensorflow_cpu_1.12tensorflow_gpu_1.12(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),示例如下。

    {
      "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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

TensorFlow1.14 Processor

EAS提供的TensorFlow1.14 Processor可以加載SavedModel(推薦)或SessionBundle格式的TensorFlow模型。對于KerasCheckpoint模型,需要先將其轉(zhuǎn)換為SavedModel模型,再進(jìn)行部署,詳情請參見TensorFlow模型如何導(dǎo)出為SavedModel

說明

官方通用Processor不支持TensorFlow自定義OP。

您可以通過如下任何一種方式部署TensorFlow模型:

  • 控制臺上傳

    選擇Processor種類TensorFlow1.14,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即tensorflow_cpu_1.14tensorflow_gpu_1.14(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),示例如下。

    {
      "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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

TensorFlow1.15 Processor(內(nèi)置PAI-Blade敏捷版優(yōu)化引擎)

EAS提供的TensorFlow1.15 Processor可以加載SavedModel(推薦)或SessionBundle格式的TensorFlow模型。對于KerasCheckpoint模型,需要先將其轉(zhuǎn)換為SavedModel模型,再進(jìn)行部署,詳情請參見TensorFlow模型如何導(dǎo)出為SavedModel

說明
  • 官方通用Processor不支持TensorFlow自定義OP。

  • Processor內(nèi)置了PAI-Blade敏捷版優(yōu)化引擎,您可以使用它部署PAI-Blade敏捷版優(yōu)化后的TensorFlow模型。

您可以通過如下任何一種方式部署TensorFlow模型:

  • 控制臺上傳

    選擇Processor種類TensorFlow1.15,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即tensorflow_cpu_1.15tensorflow_gpu_1.15(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),示例如下。

    {
      "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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署。關(guān)于服務(wù)配置文件中的參數(shù)解釋請參見創(chuàng)建服務(wù)

TensorFlow2.3 Processor

EAS提供的TensorFlow2.3 Processor可以加載SavedModel(推薦)或SessionBundle格式的TensorFlow模型。對于KerasCheckpoint模型,需要先將其轉(zhuǎn)換為SavedModel模型,再進(jìn)行部署,詳情請參見TensorFlow模型如何導(dǎo)出為SavedModel

說明

官方通用Processor不支持TensorFlow自定義OP。

您可以通過如下任何一種方式部署TensorFlow模型:

  • 控制臺上傳

    選擇Processor種類TensorFlow2.3,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即tensorflow_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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

PyTorch1.6 Processor(內(nèi)置PAI-Blade敏捷版優(yōu)化引擎)

EAS提供的PyTorch1.6 Processor可以加載TorchScript格式的模型,詳情請參見TorchScript官方介紹

說明
  • 官方通用Processor不支持PyTorch擴(kuò)展、不支持非Tensor類型的模型輸入和輸出。

  • Processor內(nèi)置了PAI-Blade敏捷版優(yōu)化引擎,您可以使用它部署PAI-Blade敏捷版優(yōu)化后的PyTorch模型。

您可以通過如下任何一種方式部署TorchScript模型:

  • 控制臺上傳

    選擇Processor種類PyTorch1.6,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即pytorch_cpu_1.6pytorch_gpu_1.6(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),示例如下。

    {
      "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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署。關(guān)于服務(wù)配置文件中的參數(shù)解釋請參見創(chuàng)建服務(wù)

Caffe Processor

EAS提供的Caffe Processor可以加載Caffe框架訓(xùn)練得到的深度學(xué)習(xí)模型。因?yàn)?span id="z68uejxpaoma" class="help-letter-space">Caffe框架比較靈活,所以部署Caffe模型時(shí),需要指定模型包的Model文件名稱和Weight文件名稱。

說明

官方通用Processor不支持自定義DataLayer。

您可以通過如下任何一種方式部署Caffe模型:

  • 控制臺上傳

    選擇Processor種類Caffe,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即caffe_cpucaffe_gpu(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),示例如下。

    {
      "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部署

    類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

PS算法Processor

EAS提供的PS算法Processor可以加載PS格式的模型。

以下介紹如何使用PS算法Processor部署模型服務(wù)及如何發(fā)送服務(wù)請求。

  • 您可以通過如下任何一種方式部署PS格式的模型:

    • 控制臺上傳

      選擇Processor種類PS算法,詳情請參見服務(wù)部署:控制臺

    • 本地客戶端部署

      在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即parameter_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部署

      類似于本地客戶端部署,編寫服務(wù)配置文件service.json,詳情請參見DSW部署

  • 請求說明

    支持單個(gè)請求預(yù)測或批量請求預(yù)測。單個(gè)請求和批量請求數(shù)據(jù)結(jié)構(gòu)相同,即JSON數(shù)組里包含features對象。

    • 單個(gè)請求示例

      curl "http://eas.location/api/predict/ps_smart" -d "[
                  {
                      "f0": 1,
                      "f1": 0.2,
                      "f3": 0.5,
                  }
      ]"
    • 多個(gè)請求示例

      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,
              }
      ]"
    • 返回值

      單個(gè)請求和批量請求返回值也相同,即數(shù)組里包含返回對象,且返回的對象位置和請求數(shù)據(jù)一一對應(yīng)。

      [
        {
          "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 Processor

EAS提供的EasyTransfer Processor可以加載EasyTransfer框架訓(xùn)練得到的基于TensorFlow的深度學(xué)習(xí)NLP模型。

您可以通過如下任何一種方式部署EasyTransfer模型:

  • 控制臺上傳

    選擇Processor種類EasyTransfer,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即easytransfer_cpueasytransfer_gpu(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò))。在model_configtype字段指定訓(xùn)練時(shí)所使用的模型類型,文本分類模型示例如下。其他參數(shù)的詳細(xì)解釋請參見創(chuàng)建服務(wù)

    • 使用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
        }
      }

    目前支持的任務(wù)類型如下表所示。

    任務(wù)類型

    type

    文本匹配

    text_match_bert

    文本分類

    text_classify_bert

    序列標(biāo)注

    sequence_labeling_bert

    文本向量化

    vectorization_bert

EasyNLP Processor

EAS提供的EasyNLP Processor可以加載EasyNLP框架訓(xùn)練得到的,基于PyTorch的深度學(xué)習(xí)NLP模型。

您可以通過如下任何一種方式部署EasyNLP模型:

  • 控制臺上傳

    選擇Processor種類EasyNLP ,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即easynlp。在model_configtype字段指定訓(xùn)練時(shí)所使用的模型類型,文本分類(單標(biāo)簽)模型示例如下。其他參數(shù)的詳細(xì)解釋請參見創(chuàng)建服務(wù)

    {
      "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"
    }

    目前支持的任務(wù)類型如下表所示。

    任務(wù)類型

    type

    文本分類(單標(biāo)簽)

    text_classify

    文本分類(多標(biāo)簽)

    text_classify_multi

    文本匹配

    text_match

    序列標(biāo)注

    sequence_labeling

    文本向量化

    vectorization

    中文摘要生成(GPU)

    sequence_generation_zh

    英文摘要生成(GPU)

    sequence_generation_en

    機(jī)器閱讀理解(中文)

    machine_reading_comprehension_zh

    機(jī)器閱讀理解(英文)

    machine_reading_comprehension_en

    WUKONG_CLIP(GPU)

    wukong_clip

    CLIP(GPU)

    clip

服務(wù)部署完成后,在模型在線服務(wù)(EAS)頁面,單擊待調(diào)用服務(wù)服務(wù)方式列下的調(diào)用信息,查看服務(wù)訪問的Endpoint和用于服務(wù)鑒權(quán)的Token信息,參照如下Python示例調(diào)用服務(wù)。

import requests
# 替換為已獲取的服務(wù)訪問的Endpoint。
url = '<eas-service-url>'
# 替換為已獲取的Token信息。
token = '<eas-service-token>'
# 輸出需要預(yù)測的數(shù)據(jù),以下以文本分類為例。
request_body = {
    "first_sequence": "hello"
}
 
headers = {"Authorization": token}
resp = requests.post(url=url, headers=headers, json=request_body)
print(resp.content.decode())

EasyCV Processor

EAS提供的EasyCV Processor可以加載EasyCV框架訓(xùn)練得到的深度學(xué)習(xí)模型。

您可以通過如下任何一種方式部署EasyCV模型:

  • 控制臺上傳

    選擇Processor種類EasyCV,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即easycv。在model_configtype字段指定訓(xùn)練時(shí)所使用的模型類型,圖像分類模型示例如下。其他參數(shù)的詳細(xì)解釋請參見創(chuàng)建服務(wù)

    {
      "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"
        }
      }
    }

    目前支持的任務(wù)類型如下表所示。

    任務(wù)類型

    model_config

    圖像分類

    {"type":"TorchClassifier"}

    目標(biāo)檢測

    {"type":"DetectionPredictor"}

    語義分割

    {"type":"SegmentationPredictor"}

    yolox目標(biāo)檢測

    {"type":"YoloXPredictor"}

    視頻分類

    {"type":"VideoClassificationPredictor"}

服務(wù)部署完成后,在模型在線服務(wù)(EAS)頁面,單擊待調(diào)用服務(wù)服務(wù)方式列下的調(diào)用信息,查看服務(wù)訪問的Endpoint和用于服務(wù)鑒權(quán)的Token信息,參照如下Python示例調(diào)用服務(wù)。

import requests
import base64
import json
resp = requests.get('http://exmaplebucket.oss-cn-zhangjiakou.aliyuncs.com/images/000000123213.jpg')
ENCODING = 'utf-8'
datas = json.dumps( {
            "image": base64.b64encode(resp.content).decode(ENCODING)
            })
# 替換為已獲取的Token信息。
head = {
   "Authorization": "NTFmNDJlM2E4OTRjMzc3OWY0NzI3MTg5MzZmNGQ5Yj***"
}
for x in range(0,10):
  	# 替換為已獲取的服務(wù)訪問的Endpoint。
    resp = requests.post("http://150231884461***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test_easycv_classification_example", data=datas, headers=head)
    print(resp.text)
                            

其中,需要將圖像或視頻數(shù)據(jù)編碼成Base64格式進(jìn)行傳輸,圖像數(shù)據(jù)使用關(guān)鍵字image,視頻數(shù)據(jù)使用關(guān)鍵字video

EasyVision Processor

EAS提供的EasyVision Processor可以加載EasyVision框架訓(xùn)練得到的深度學(xué)習(xí)模型。

您可以通過如下任何一種方式部署EasyVision模型:

  • 控制臺上傳

    選擇Processor種類EasyVision,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即easy_vision_cpu_tf1.12_torch151easy_vision_gpu_tf1.12_torch151(需要根據(jù)部署所用的資源進(jìn)行選擇,如果processor與資源不匹配,則會導(dǎo)致部署報(bào)錯(cuò)),在model_configtype字段指定訓(xùn)練時(shí)所使用的模型類型,示例如下。其他參數(shù)的詳細(xì)解釋請參見創(chuàng)建服務(wù)

    • 使用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 Processor

EAS 提供的MediaFlow Processor是通用的編排引擎,可以進(jìn)行視頻、音頻及圖像分析處理。

您可以通過如下任何一種方式部署MediaFlow模型:

  • 控制臺上傳

    選擇Processor種類MediaFlow,詳情請參見控制臺上傳部署

  • 本地客戶端部署

    在服務(wù)配置文件service.json中,將processor字段配置為相應(yīng)的Processor Code,即mediaflow。此外,使用MediaFlow Processor部署模型,還需要增加如下特有字段,其他字段說明請參見創(chuàng)建服務(wù)

    • graph_pool_size:圖池的數(shù)量。

    • worker_threads:調(diào)度線程的數(shù)量。

    示例如下:

    • 部署視頻分類模型的配置。

      {
        "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 
        }
      }

    語音識別與視頻分類service.json配置的主要差異為model_entrynamemodel_path字段,需要您根據(jù)部署的模型類型進(jìn)行修改。

Triton Processor

Triton Inference ServerNVIDIA公司推出的新一代在線服務(wù)框架,它針對GPU上的模型提供了簡單易用的部署和管理接口,且兼容KFServingAPI標(biāo)準(zhǔn)。此外,Triton Inference Server還具有以下特點(diǎn):

  • 支持多種開源框架的部署,包括TensorFlow、PyTorch、ONNX RuntimeTensorRT等,同時(shí)也支持您提供的自定義服務(wù)后端(backend)。

  • 支持多個(gè)模型同時(shí)運(yùn)行在GPU上,以提高GPU設(shè)備的利用率。

  • 支持HTTP/gRPC通信協(xié)議,提供二進(jìn)制格式擴(kuò)展以壓縮發(fā)送請求的大小。

  • 支持Dynamic Batching功能,提升服務(wù)吞吐。

Triton Inference ServerEAS上以預(yù)置的Triton Processor形式發(fā)布。

說明
  • Triton Processor目前僅在華東2(上海)公測,其他地域暫不支持。

  • Triton服務(wù)部署使用的模型都必須存放在OSS中。因此,您需要提前開通OSS,并將自己的模型相關(guān)文件上傳到OSS中。關(guān)于如何上傳文件到OSS,請參見上傳文件

以下介紹如何使用Triton Processor部署模型服務(wù)及如何調(diào)用該服務(wù):

  • 使用Triton Processor部署模型服務(wù)

    您只能通過客戶端工具eascmd部署Triton模型服務(wù)。關(guān)于如何使用客戶端工具eascmd部署模型服務(wù),請參見創(chuàng)建服務(wù)。部署模型服務(wù)時(shí),使用的服務(wù)描述配置文件service.json中,需要將processor字段配置為相應(yīng)的Processor Code,即triton。此外,由于Triton需要從OSS中獲取模型,因此還需要用戶配置OSS的相關(guān)參數(shù)。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模型服務(wù)需要配置的特有參數(shù)的含義如下表所示,其他通用參數(shù)含義請參見service.json中的參數(shù)詳解

    參數(shù)

    描述

    processor_params

    服務(wù)啟動(dòng)時(shí)傳遞給Triton Server的參數(shù)。對于不支持的參數(shù)將被自動(dòng)過濾,支持傳遞給Triton server的參數(shù)集合如下面的支持傳遞給Triton server的參數(shù)集合所示。其中model-repository為必填參數(shù),其他可選參數(shù)請參見main.cc

    oss_endpoint

    OSSEndpoint。如果不傳遞該參數(shù),則系統(tǒng)會自動(dòng)使用當(dāng)前EAS服務(wù)所在地域的OSS服務(wù)。如果需要使用跨地域的OSS服務(wù),則必須指定該參數(shù)。該參數(shù)的取值請參見訪問域名和數(shù)據(jù)中心

    metadata

    resource

    用于部署模型服務(wù)的EAS專屬資源組ID。通過Triton Processor部署模型服務(wù)時(shí),使用的資源必須為EAS的專屬資源組。關(guān)于如何創(chuàng)建EAS專屬資源組,請參見使用專屬資源組

    表 1. 支持傳遞給Triton server的參數(shù)集合

    參數(shù)

    是否必選

    描述

    model-repository

    路徑需要指定為OSS路徑,系統(tǒng)不支持直接使用Bucket根目錄作為model-repository,需要指定Bucket下的某個(gè)子目錄才可以。

    例如,oss://triton-model-repo/models,其中triton-model-repoBucket名稱,modelsBucket下的一個(gè)子目錄。

    log-verbose

    參數(shù)詳情請參見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原生Client調(diào)用EAS Triton Processor服務(wù)

    使用Python Client發(fā)出請求,您需要先通過如下命令安裝Triton官方提供的Client。

    pip3 install nvidia-pyindex
    pip3 install tritonclient[all]

    下載測試圖片到當(dāng)前目錄,命令如下。

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

    以下示例中,使用Python ClientTriton Processor服務(wù)發(fā)送請求,該請求的數(shù)據(jù)格式是二進(jìn)制格式。

    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>替換為服務(wù)的訪問地址。
    HEADERS = {"Authorization": "<service token>"} # 將<service token>替換為服務(wù)的訪問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()