部署HuggingFace模型#
HuggingFace是一个开源的模型社区,机器学习开发者在社区中可以分享、发现和使用各类机器学习模型。
本文将介绍如何将HuggingFace社区的模型部署到PAI创建模型推理服务。
安装和配置SDK#
我们需要首先安装PAI Python SDK以运行本示例。
!python -m pip install --upgrade alipai
SDK需要配置访问阿里云服务需要的AccessKey,以及当前使用的工作空间和OSS Bucket。在PAI SDK安装之后,通过在命令行终端 中执行以下命令,按照引导配置密钥、工作空间等信息。
# 以下命令,请在 命令行终端 中执行.
python -m pai.toolkit.config
我们可以通过以下代码验证配置是否已生效。
import pai
from pai.session import get_default_session
print(pai.__version__)
sess = get_default_session()
# 获取配置的工作空间信息
assert sess.workspace_name is not None
print(sess.workspace_name)
部署HuggingFace模型#
在本示例中,我们将使用HuggingFace社区提供的情感分类模型 distilbert-base-uncased-finetuned-sst-2-english部署一个模型在线服务,他支持将一段英文文本分类为正面或负面情感。
通过相应的模型的详情页,我们可以获取部署模型所需的信息,包括模型ID(MODEL_ID
)、模型任务类型(TASK
)、模型版本(REVISION
)。
通过PAI Python SDK提供的HuggingFaceModel
,我们可以轻松地将HuggingFace社区的模型部署到PAI上。
from pai.huggingface import HuggingFaceModel
# 初始化一个HuggingFaceModel
m = HuggingFaceModel(
command="python app.py", # 模型服务启动命令
transformers_version="latest", # 使用的transformers版本, 'latest'表示使用PAI目前支持的最新的版本
environment_variables={
"MODEL_ID": "distilbert-base-uncased-finetuned-sst-2-english", # 部署模型的ID
"TASK": "text-classification", # 部署的模型任务类型
"REVISION": "main", # 部署模型的版本信息
},
)
from pai.common.utils import random_str
# 部署模型,创建一个模型在线服务
p = m.deploy(
service_name=f"hf_model_deploy_{random_str(n=8)}", # 模型服务的名称(地域内唯一)
instance_type="ecs.g6.large", # 模型服务使用的机器实例规格
options={
"enable_webservice": True, # 以AIWeb应用的模式启动,支持用户在Web浏览器上使用模型在线服务
},
)
p.predict(data={"data": ["I love you"]})
测试完成之后,删除服务,释放机器资源。
p.delete_service()