如果您想要在生产环境中部署Huggingface社区模型,并实现实时推理,您可以使用EAS模型在线服务。EAS提供了预置镜像,可快速部署Huggingface社区模型,并具备模型分发和镜像拉起的加速机制。您只需配置几个参数,即可轻松将Huggingface社区模型部署到EAS上。本文为您介绍如何部署和调用Huggingface社区模型。
背景信息
HuggingFace提供了多个模型选项,其中可在EAS上部署的包括普通Pipeline模型和大语言对话模型,这两类模型的部署和调用方式稍有不同。您可以参考以下内容了解如何部署和调用这两种类型的模型:
部署模型服务
步骤一:选择模型
普通模型
您可以在官方库tasks中选择要部署的普通Pipeline模型。本文以文本分类模型为例,进入distilbert-base-uncased-finetuned-sst-2-english模型页面,分别获取下图中的MODEL_ID(模型ID)、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 |
大语言对话模型
您可以在官方库tasks中选择要部署的大语言对话模型,并获取大语言对话模型的MODEL_ID(模型ID)、TASK(模型对应的TASK)、REVISION(模型版本)的值并保存到本地。目前支持的大语言对话模型列表如下:
语言 | 类型 | MODEL_TYPE | MODEL_ID |
中文模型 | Qwen系列 | qwen |
|
ChatGLM系列 | glm |
| |
Baichuan系列 | baichuan |
| |
其他类型 | 无 |
| |
| |||
英文模型 | Llama系列 | llama |
|
以Qwen系列模型为例,其中:
MODEL_ID(模型ID):请从上述表格中获取。例如
Qwen/Qwen-7B-Chat
。TASK(模型类别):均配置为chat。
REVISION(模型版本):参考普通模型查询方式获取模型版本。例如
main
。
步骤二:部署服务
支持以下两种部署方式。其中使用场景化方式部署的HuggingFace模型服务,仅支持API接口调用方式,不支持WebUI调用方式。
方式一:场景化模型部署
进入模型在线服务(EAS)页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在模型在线服务(EAS)页面,单击部署服务,然后在场景化模型部署区域,单击HuggingFace模型部署。
在HuggingFace模型部署页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数
描述
基本信息
模型ID
配置以下参数为步骤一中查询的结果:
普通模型(以文本分类模型为例):
模型ID:
distilbert-base-uncased-finetuned-sst-2-english
。模型类别:
text-classification
。模型版本:
main
。
大语言对话模型(以Qwen系列模型为例):
模型ID:
Qwen/Qwen-7B-Chat
。模型类别:
chat
。模型版本:
main
。
模型类别
模型版本
资源配置
资源配置选择
本方案选择ml.gu7i.c16m60.1-gu30。
说明由于大语言模型的体积通常较大,并且对于GPU的要求较高,建议根据实际模型需求选择合适的GPU资源。
针对7B模型,建议选择GU30系列机型。对于更大的模型,可能需要考虑双卡机型或拥有更大显存的机型,请根据实际需求选择。
参数配置完成后,单击部署。
当服务状态变为运行中时,表明服务已部署成功。
方式二:自定义模型部署
进入模型在线服务(EAS)页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在模型在线服务(EAS)页面,单击部署服务,然后在自定义模型部署区域,单击自定义部署。
在新建服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数
描述
模型服务信息
部署方式
选择镜像部署AI-Web应用。
镜像选择
在PAI平台镜像列表中选择huggingface-inference,镜像版本选择1.0-transformers4.33。
填写三方库配置列表
(可选)单击填写三方库配置列表,配置三方库。
PAI镜像中预装了基础的依赖库和各领域常用的依赖包。对于有特殊依赖的模型,可根据提示配置依赖库。
环境变量
配置以下参数为步骤一中查询的结果:
普通模型(以文本分类模型为例):
MODEL_ID:
distilbert-base-uncased-finetuned-sst-2-english
。TASK:
text-classification
。REVISION:
main
。
大语言对话模型(以qwen系列模型为例):
MODEL_ID:
Qwen/Qwen-7B-Chat
。TASK:
chat
。REVISION:
main
。
运行命令
配置镜像版本后,系统会自动配置运行命令,您无需修改配置。
资源部署信息
资源配置选择
本方案选择ml.gu7i.c16m60.1-gu30。
说明由于大语言模型的体积通常较大,并且对于GPU的要求较高,建议根据实际模型需求选择合适的GPU资源。
针对7B模型,建议选择GU30系列机型。对于更大的模型,可能需要考虑双卡机型或拥有更大显存的机型,请根据实际需求选择。
额外系统盘
单击系统盘配置,将额外系统盘配置为100 GB。
参数配置完成后,单击部署。
当服务状态变为运行中时,表明服务已部署成功。
调用服务
服务部署成功后,您可以调用模型服务来验证模型效果。其中使用场景化方式部署的HuggingFace模型服务仅支持API接口调用方式。
调用普通模型服务
通过控制台调用服务
在模型在线服务(EAS)页面,单击服务方式列下的查看Web应用,在WebUI页面验证模型推理效果。
单击目标服务操作列下的在线调试,在Body页签输入请求数据,例如:
{"data": ["hello"]}
,单击发送请求。说明文本分类模型输入的数据格式(
{"data": ["XXX"]}
)是Gradio框架/api/predict
定义的,如果您使用其他类型的模型,例如图片分类或语音数据处理等,可以参考/api/predict
的定义来构造请求数据。
通过API调用服务
查询服务访问地址和Token。
单击服务名称进入服务详情页面,在该页面单击查看调用信息。
在调用信息对话框公网地址调用页签,查看访问地址和Token,并保存到本地。
通过如下代码使用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>均需要替换为步骤1中获取的访问地址和Token。
调用大语言模型服务
启动WebUI调用模型服务
服务部署成功后,单击服务方式列下的查看Web应用,即可打开一个类似下图页面的对话窗口,在该页面可以直接开始对话。
通过API接口调用模型服务
API接口的具体调用方式,请参见如何使用API进行模型推理。
相关文档
此外,EAS还预置了TritonServer、TensorFlow Serving、Modelscope镜像,您可以通过EAS一键部署相应的模型服务,并进行推理验证。具体操作,请参见: