EAS提供了预置镜像以部署社区模型,并针对模型分发和镜像拉起做了加速机制。您只需配置几个参数就可以将社区模型一键快捷的部署到EAS模型在线服务平台。本文为您介绍如何部署HuggingFace和ModelScope的社区模型。
背景信息
当前,开放的模型社区(例如 huggingface、modelscope )提供了大量的机器学习模型和代码实现,其对应库的接口将模型、框架以及相关的处理逻辑进行了封装,您仅需使用几行代码即可直接端到端进行模型训练和调用等操作,无需考虑复杂的环境依赖、预处理后处理逻辑、框架类型等一系列使用和部署落地模型时的问题。这种生态也是对以Tensorflow、Pytorch为代表的框架-模型形态的升级。
EAS也对该形态进行了优化支持,支持您一键部署社区模型。
部署HuggingFace模型
PAI支持将HuggingFace社区官方库中的tasks对应的模型快速部署为EAS模型在线服务,具体操作步骤如下:
-
在官方库tasks中选择要部署的模型,本文以文本分类模型为例,进入distilbert-base-uncased-finetuned-sst-2-english模型页面,分别获取下图中的MODEL_ID(模型ID)、TASK(模型对应的TASK)、REVISION(模型版本)的值并保存到本地。
您可以根据下表中的对应关系找到部署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
-
在EAS模型在线服务页面,部署HuggingFace模型。
-
进入部署服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数
描述
服务名称
参照界面提示自定义配置服务名称。
部署方式
选择镜像部署AI-Web应用。
镜像选择
在PAI平台镜像列表中选择huggingface-inference;并根据实际场景选择对应的镜像版本。
环境变量
配置以下参数为步骤1中查询的结果:
-
MODEL_ID:distilbert-base-uncased-finetuned-sst-2-english。
-
TASK:text-classification。
-
REVISION:main。
运行命令
配置镜像版本后,系统会自动配置运行命令,您无需修改配置。
-
-
单击部署。当服务状态变为运行中,表明服务已部署成功。
-
-
调用已部署成功的模型服务。
通过控制台调用服务
-
在PAI-EAS模型在线服务页面,单击服务方式列下的查看Web应用,在WebUI页面验证模型推理效果。
-
单击目标服务操作列下的在线调试,在Body页签输入请求数据,例如:
{"data": ["hello"]}
,单击发送请求。说明
文本分类模型输入的数据格式(
{"data": ["XXX"]}
)是Gradio框架的/api/predict
定义的,如果您使用其他类型的模型,例如图片分类或语音数据处理等,可以参考/api/predict
的定义来构造请求数据。
通过API调用服务
-
单击服务名称进入服务详情页面,在该页面单击查看调用信息。
-
在调用信息对话框公网地址调用页签,查看访问地址和Token,并保存到本地。
-
通过如下代码使用API调用服务。
import requests resp = requests.post(url="", headers={"Authorization": ""}, 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}
其中:和均需要替换为步骤b中获取的访问地址和Token。
通过gradio_client调用服务
使用如下代码调用服务:
from gradio_client import Client client = Client("", hf_token="") client.view_api() result = client.predict( "Hello!", # str in 'Input' Textbox component api_name="/predict" ) print('result: ') print(result) '''{"label": "POSITIVE", "confidences": [{"label": "POSITIVE", "confidence": 0.9995439648628235}]}'''
其中:和替换为服务的访问地址和Token,您可以参照通过API调用服务内容,在调用信息对话框公网地址调用页签获取。
-
部署ModelScope模型
PAI支持将Modelscope官方库中模型快速部署为EAS模型在线服务,具体操作步骤如下:
-
在官方库中选择要部署的模型,本文以机器翻译模型为例,进入damo/nlp_csanmt_translation_en2zh模型页面,分别获取MODEL_ID、TASK、REVISION的值并保存到本地。
-
MODEL_ID:模型ID。
-
TASK:模型对应的TASK。
-
REVISION:模型版本。
说明
需要配置为一个确定的模型版本,例如:v1.0.1或v1.0.0,不能配置为master。
-
-
在EAS模型在线服务页面,部署ModelScope模型。
-
进入部署服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数
描述
服务名称
参照界面提示自定义配置服务名称。
部署方式
选择镜像部署AI-Web应用。
镜像选择
在PAI平台镜像列表中选择modelscope-inference;并根据实际场景选择对应的镜像版本。
环境变量
配置以下参数为步骤1中查询的结果:
-
MODEL_ID:damo/nlp_csanmt_translation_en2zh。
-
TASK:translation。
-
REVISION:v1.0.1。
运行命令
配置镜像版本后,系统会自动配置运行命令,您无需修改配置。
-
-
单击部署。当服务状态变为运行中,表明服务已部署成功。
-
-
调用已部署成功的模型服务。
启动WebUI调用模型服务
-
服务部署成功后,单击服务方式列下的查看Web应用。
-
在WebUI页面左侧测试内容文本框中输入请求数据,单击执行测试,在测试结果文本框中返回结果。
WebUI页面右侧为输入数据的Schema,如果发送了请求之后,会显示输入输出的真实数据内容。您可以根据Schema和JSON内容,构造请求数据,来调用模型服务。
通过在线调试调用模型服务
您可以在服务详情页面中单击查看调用信息,在公网地址调用页签获取访问地址和Token。再使用PAI提供的SDK或自主发送POST请求,详情请参见服务调用SDK。本文为了方便演示,以在线调试为例为您说明如何调用模型服务。具体操作步骤如下:
-
在PAI-EAS模型在线服务页面,单击目标服务操作列下的在线调试。如果您不清楚该模型对应的数据格式,可以直接在在线调试页面单击发送请求,获得如下图所示的请求数据格式。
-
您可以参考实际返回结果中Body后的请求数据格式自行构造请求数据。以上图为例,您可以在左侧Body下的文本框中输入
{"input": {"text": "Deploying ModelScope models on PAI-EAS is simple and easy to use"}}
,单击发送请求,获得如下预测结果。
-
后续,您可以参照上述步骤部署语音类和图像类模型,以及调用模型来验证模型效果。
-
语音合成tts模型:damo/speech_sambert-hifigan_tts_zh-cn_16k。示例效果如下图所示:
-
图像相关的人像美肤模型:damo/cv_unet_skin-retouching。示例效果如下图所示:
-
图像人脸融合模型:damo/cv_unet-image-face-fusion_damo。示例效果如下图所示:
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164209.html