全部产品
Search
文档中心

人工智能平台 PAI:EAS一键部署HuggingFace服务应用

更新时间:Jun 04, 2024

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

背景信息

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