1. 模型构建

模型列表详见:https://help.aliyun.com/document_detail/183593.html

2. 模型部署调用

部署PAI-EAS服务

您可以通过如下任何一种方式部署模型:

  • 控制台上传选择Processor种类EasyNLP,详情请参见控制台上传部署
  • 本地客户端部署在服务配置文件service.json中,将processor字段配置为相应的Processor Code,即easy_nlp_cpu_tf1.12easy_nlp_gpu_tf1.12(需要根据部署所用的资源进行选择,如果processor与资源不匹配,则会导致部署报错),在model_configtype字段指定训练时所使用的模型类型,示例如下。其他参数的详细解释请参见创建服务

    • 使用GPU部署的配置:

      1. {
      2. "name": "sentiment_analysis",
      3. "processor_type": "python",
      4. "processor": "easynlp_tf1.12_gpu",
      5. "model_path": "oss://path-to-your-model/deployment/",
      6. "model_config": "{\"type\":\"text_classify_bert\"}",
      7. "request_id": "0a981de716274387300375617e7e24",
      8. "metadata": {
      9. "instance": 1,
      10. "cuda": "9.0"
      11. },
      12. "cloud": {
      13. "computing": {
      14. "instance_type": "ecs.gn5i-c4g1.xlarge"
      15. }
      16. }
      17. }
    • 使用CPU部署的配置:

      {
      "name": "sentiment_analysis",
      "processor_type": "python",
      "processor": "easynlp_tf1.12_cpu",
      "model_path": "oss://path-to-your-model/deployment/",
      "model_config": "{\"type\":\"text_classify_bert\"}",
      "request_id": "0a981de716274387300375617e7e24",
      "metadata": {
         "instance": 1,
         "cuda": "9.0"
      },
      "cloud": {
         "computing": {
             "instance_type": "xx"
         }
      }
      }
      

      注意:

  • model_path填的是新版模型存放的用户的oss地址,格式为(http://test1201.oss-cn-beijing-bmj108-xxx)

  • region和resource需要根据部署环境来调整

    调试模型服务

    1. 在PAI-EAS模型在线服务页面,单击上一步中已部署服务操作列下的在线调试。
    2. 在调试页面的在线调试请求参数区域的Request Body处填如,格式如下:

      {"id": "113","first_sequence": "很不错的,正品,很给力","sequence_length": 10}
      
    3. 点击发送请求,其可在调试信息区域查看预测结果。

image.png

脚本批量调用

  1. PAI EAS模型在线服务页面,单击已部署服务服务方式列下的调用信息
  2. 调用信息对话框的公网地址调用页签,查看公网调用的访问地址Token
  3. 新建eas_nlp_risk.py脚本,填入token和client信息,运行脚本即可,示例如下:

    #!/usr/bin/env python
    #encoding=utf-8
    from eas_prediction import PredictClient
    from eas_prediction import StringRequest
    if __name__ == '__main__':
    # 如果只需要线上模型结果,可以将use_ensemble = False,如果想尝试词表集成后的结果use_ensemble = True
    use_ensemble = False
    
    client = PredictClient('http://xxx.pai-eas.aliyuncs.com', 'risk_text_classify')
    client.set_token('xxx==')
    client.init()
    
    request = StringRequest(
      '[{"id": "110","first_sequence": "想赢勇士想到 发疯?格林新发现吓呆众人","sequence_length": 128},\
        {"id": "112","first_sequence": "骗人的,千万别买,谁买谁后悔?商家就是欺诈。垃圾商家。买了之后想退货门都没有,以各种手段不退货。买者慎重。","sequence_length": 128},\
        {"id": "113","first_sequence": "很不错的,正品,很给力,效果真的是不错的。","sequence_length": 128}]')
    for x in range(0, 50000):
      resp = client.predict(request)
      # print(str(resp.response_data, 'utf8'))
    print("test endding")
    


    监控服务指标
    调用模型服务后,您可以查看模型调用的相关指标水位,包括QPS、RT、CPU、GPU及Memory等等。

  4. PAI EAS模型在线服务页面,单击已调用服务服务监控列下的image.png图标。

  5. 服务监控页签,即可查看模型调用的指标水位。从服务监控的水位图中可以看到部署的BERT文本分类模型的时延在10 ms左右。 image.png