EAS一键部署HuggingFace&ModelScope服务应用

EAS提供了预置镜像以部署社区模型,并针对模型分发和镜像拉起做了加速机制。您只需配置几个参数就可以将社区模型一键快捷的部署到EAS模型在线服务平台。本文为您介绍如何部署HuggingFaceModelScope的社区模型。

背景信息

当前,开放的模型社区(例如 huggingfacemodelscope )提供了大量的机器学习模型和代码实现,其对应库的接口将模型、框架以及相关的处理逻辑进行了封装,您仅需使用几行代码即可直接端到端进行模型训练和调用等操作,无需考虑复杂的环境依赖、预处理后处理逻辑、框架类型等一系列使用和部署落地模型时的问题。这种生态也是对以Tensorflow、Pytorch为代表的框架-模型形态的升级。

EAS也对该形态进行了优化支持,支持您一键部署社区模型。

部署HuggingFace模型

PAI支持将HuggingFace社区官方库中的tasks对应的模型快速部署为EAS模型在线服务,具体操作步骤如下:

  1. 在官方库tasks中选择要部署的模型,本文以文本分类模型为例,进入distilbert-base-uncased-finetuned-sst-2-english模型页面,分别获取下图中的MODEL_ID(模型ID)、TASK(模型对应的TASK)、REVISION(模型版本)的值,并保存到本地。0ec0f57fcd2cee6a6c91b53d67616f26.png

    您可以根据下表中的对应关系找到部署EAS服务时所需的TASK:

    HuggingFace页面展示的TASK

    部署EAS服务时填写的TASK

    Audio Classification

    audio-classification

    Automatic Speech Recognition(ASR)

    automatic-speech-recognition

    Feature Extraction

    feature-extraction

    Fill Mask

    fill-mask

    Image Classification

    image-classification

    Question Answering

    question-answering

    Summarization

    summarization

    Text Classification

    text-classification

    Sentiment Analysis

    sentiment-analysis

    Text Generation

    text-generation

    Translation

    translation

    Translation (xx-to-yy)

    translation_xx_to_yy

    Text-to-Text Generation

    text2text-generation

    Zero-Shot Classification

    zero-shot-classification

    Document Question Answering

    document-question-answering

    Visual Question Answering

    visual-question-answering

    Image-to-Text

    image-to-text

  2. EAS模型在线服务页面,部署HuggingFace模型。

    1. 进入新建服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台

      ae0ae4299a9a64be75ad0c241aea0a12

      参数

      描述

      服务名称

      参照界面提示自定义配置服务名称。

      部署方式

      选择镜像部署AI-Web应用

      镜像选择

      PAI平台镜像列表中选择huggingface-inference;并根据实际场景选择对应的镜像版本。

      环境变量

      配置以下参数为步骤1中查询的结果:

      • MODEL_ID:distilbert-base-uncased-finetuned-sst-2-english。

      • TASK:text-classification。

      • REVISION:main。

      运行命令

      配置镜像版本后,系统会自动配置运行命令,您无需修改配置。

      额外系统盘

      单击资源部署信息区域的系统盘配置,将额外系统盘配置为100 GB。

    2. 单击部署。当服务状态变为运行中时,表明服务已部署成功。

  3. 调用已部署成功的模型服务。

    通过控制台调用服务

    • 模型在线服务(EAS)页面,单击服务方式列下的查看Web应用,在WebUI页面验证模型推理效果。image.png

    • 单击目标服务操作列下的在线调试,在Body页签输入请求数据,例如:{"data": ["hello"]},单击发送请求image

      说明

      文本分类模型输入的数据格式({"data": ["XXX"]})是Gradio框架/api/predict定义的,如果您使用其他类型的模型,例如图片分类或语音数据处理等,可以参考/api/predict的定义来构造请求数据。

    通过API调用服务

    1. 单击服务名称进入服务详情页面,在该页面单击查看调用信息

    2. 调用信息对话框公网地址调用页签,查看访问地址Token,并保存到本地。

    3. 通过如下代码使用API调用服务。

      import requests
      
      resp = requests.post(url="<service_url>",
                    headers={"Authorization": "<token>"},
                    json={"data": ["hello"]})
      
      print(resp.content)
      
      # resp: {"data":[{"label":"POSITIVE","confidences":[{"label":"POSITIVE","confidence":0.9995185136795044}]}],"is_generating":false,"duration":0.280987024307251,"average_duration":0.280987024307251}

      其中:<service_url><token>均需要替换为步骤b中获取的访问地址和Token。

部署ModelScope模型

PAI支持将Modelscope官方库中模型快速部署为EAS模型在线服务,具体操作步骤如下:

  1. 在官方库中选择要部署的模型,本文以机器翻译模型为例,进入damo/nlp_csanmt_translation_en2zh模型页面,分别获取MODEL_ID、TASK、REVISION的值并保存到本地。

    • MODEL_ID:模型ID。image

    • TASK:模型对应的TASK。image

    • REVISION:模型版本。

      说明

      需要配置为一个确定的模型版本,例如:v1.0.1v1.0.0,不能配置为master。

      image.png

  2. EAS模型在线服务页面,部署ModelScope模型。

    1. 进入新建服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台image

      参数

      描述

      服务名称

      参照界面提示自定义配置服务名称。

      部署方式

      选择镜像部署AI-Web应用

      镜像选择

      PAI平台镜像列表中选择modelscope-inference;并根据实际场景选择对应的镜像版本。

      环境变量

      配置以下参数为步骤1中查询的结果:

      • MODEL_IDiic/nlp_csanmt_translation_en2zh

      • TASKtranslation

      • REVISIONv1.0.1

      运行命令

      配置镜像版本后,系统会自动配置运行命令,您无需修改配置。

      资源配置选择

      您选择的实例规格的内存不能小于8 GB。

    2. 单击部署。当服务状态变为运行中时,表明服务已部署成功。

  3. 调用已部署成功的模型服务。

    启动WebUI调用模型服务

    1. 服务部署成功后,单击服务方式列下的查看Web应用

    2. WebUI页面左侧测试内容文本框中输入请求数据,单击执行测试,在测试结果文本框中返回结果。image.png

      WebUI页面右侧为输入数据的Schema,如果发送了请求之后,会显示输入输出的真实数据内容。您可以根据SchemaJSON内容,构造请求数据,来调用模型服务。

    通过在线调试调用模型服务

    您可以在服务详情页面中单击查看调用信息,在公网地址调用页签获取访问地址和Token。再使用PAI提供的SDK或自主发送POST请求,详情请参见服务调用SDK。本文为了方便演示,以在线调试为例为您说明如何调用模型服务。具体操作步骤如下:

    1. 模型在线服务(EAS)页面,单击目标服务操作列下的在线调试。如果您不清楚该模型对应的数据格式,可以直接在在线调试页面单击发送请求,获得如下图所示的请求数据格式。image

    2. 您可以参考实际返回结果中Body后的请求数据格式自行构造请求数据。以上图为例,您可以在左侧Body下的文本框中输入{"input": {"text": "Deploying ModelScope models on PAI-EAS is simple and easy to use"}},单击发送请求,获得如下预测结果。image

后续,您可以参照上述步骤部署语音类和图像类模型,以及调用模型来验证模型效果。