PAI x ModelScope: 在PAI使用ModelScope模型

简介: 在当前的人工智能领域,特别是大语言模型、文生图等领域,基于预训练模型完成机器学习模型的开发部署已成为重要的应用范式,开发者们依赖于这些先进的开源预训练模型,以简化机器学习应用的开发并加速创新。

引言

在当前的人工智能领域,特别是大语言模型、文生图等领域,基于预训练模型完成机器学习模型的开发部署已成为重要的应用范式,开发者们依赖于这些先进的开源预训练模型,以简化机器学习应用的开发并加速创新。

PAI 是阿里云上端到端的机器学习平台,支持开发者完成机器学习模型的开发部署全生命周期流程。通过与魔搭 ModelScope 社区合作,开发者可以使用预置的 PAI Python SDK 代码模版,轻松地在 PAI 上使用 ModelScope 上丰富的预训练模型,完成模型的开发和部署。

通过 PAI SDK 使用 ModelScope 模型

通过 ModelScope 社区的模型搜索功能,我们可以通过“阿里云PAI SDK部署/训练”过滤选项,找到当前支持使用 SDK 部署/训练的模型。 image.png

通过模型卡片详情页的“部署”和“训练”入口,查看“阿里云PAI SDK部署/训练”,我们可以获取到相应模型的训练或是部署的示例代码。 image.png

开发者可以根据自己的需求,参考代码模版注释和 SDK 文档修改代码后提交执行。

image.png

Qwen1.5-7B-Chat训练和部署示例

Qwen1.5-7B-Chat 是阿里云通义千问系列开源模型的一员,模型性能在同尺寸的模型中属于头部梯队,对推理和微调硬件要求不高,可以直接部署,或是通过微调对模型进行定制优化。

Qwen1.5-7B-Chat模型卡片链接:https://modelscope.cn/models/qwen/Qwen1.5-7B-Chat/summary

以下我们将以Qwen1.5-7B-Chat模型的训练和部署为示例进行介绍。

前提准备

在运行以下示例代码之前,需要完成以下准备:

  • PAI 产品开通

具体请参考文档:

开通PAI并创建默认工作空间_人工智能平台 PAI(PAI)-阿里云帮助中心

注意:模型的训练任务将产生 PAI-DLC 账单费用,创建推理服务将产生 PAI-EAS 账单费用。

  • PAI Python SDK 安装和初始化

在命令行中执行以下命令,完成 SDK 的方案和配置

python -m pip install -U alipai
# 配置鉴权密钥,PAI工作空间等信息
python -m pai.toolkit.config

具体请参考文档:

如何安装和配置PAI Python SDK_人工智能平台 PAI(PAI)-阿里云帮助中心

模型部署

Qwen1.5-7B-Chat 部署的示例模版代码如下:

from pai.common.utils import random_str
from pai.session import get_default_session
from pai.modelscope import ModelScopeModel
sess = get_default_session()
# 创建 ModelScopeModel 对象。
model = ModelScopeModel(
    # 推理服务启动命令
    command=(
        "python webui/webui_server.py --model-path=Qwen/Qwen1.5-7B-Chat "
        "--model-type=qwen2 --backend=vllm "
        # vLLM engine arguments
        " --max-model-len=4096 --gpu-memory-utilization=0.95"
    ),
    # 推理服务镜像
    image_uri=f"eas-registry-vpc.{sess.region_id}.cr.aliyuncs.com/pai-eas/chat-llm-webui:3.0.3-vllm",
)
# 部署创建推理服务
predictor = model.deploy(
    # 服务名称
    service_name=f"ms_serving_{random_str(6)}",
    # 服务使用的机型规格
    instance_type="ecs.gn7i-c8g1.2xlarge",
    options={
        "metadata.enable_webservice": True,
        "metadata.rpc.keepalive": 300000,
        "features.eas.aliyun.com/extra-ephemeral-storage": "30Gi",
    }
)

以上的代码将使用 PAI 提供的大语言模型推理镜像,使用 vLLM 作为推理引擎在 PAI-EAS 上创建一个推理服务实例。

deploy 方法返回的 Predictor 对象指向创建的推理服务,它提供了 predict 方法支持调用推理服务。代码模版中也提供了调用示例,供开发者参考。基于大语言模型部署的推理服务,支持通过OpenAI SDK调用。

# 大语言模型推理服务支持OpenAI API风格
openai_api = predictor.openai()
# 通过OpenAI SDK调用推理服务
resp = openai_api.chat.completions.create(
    model="default",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the meaning of life?"},
    ],
    max_tokens=1024,
)
print(resp.choices[0].message.content)
# 注意测试完成后删除部署的服务,避免产生额外费用
# predictor.delete_service()

模型微调训练

Qwen1.5-7B-Chat 模型的训练代码基于ModelScope Swift,它是 ModelScope 社区提供的轻量级模型训练框架,开发者可以通过一行命令即可完成大语言模型的微调和部署,具体可以参考 ModelScope Swift框架介绍:

https://github.com/modelscope/swift

Qwen1.5-7B-Chat 的训练模版示例代码如下,它将使用指定的机器规格,在 PAI 上执行一个训练任务。训练任务将使用 PAI 上预置的镜像 ModelScope 训练镜像,使用 Swift 框架完成模型的微调训练。

from pai.modelscope.estimator import ModelScopeEstimator
 
# 模型训练超参
hyperparameters = {
    "model_type": "qwen1half-0_5b-chat",
    "sft_type": "lora",
    "tuner_backend": "swift",
    # 模型输出地址,请勿修改,只有该地址下的输出文件才会被保存
    "output_dir": "/ml/output/model/",
    "dtype": "AUTO",
    "dataset": "ms-bench",
    "train_dataset_sample": "5000",
    "num_train_epochs": "2",
    "max_length": "1024",
    "check_dataset_strategy": "warning",
    "lora_rank": "8",
    "lora_alpha": "32",
    "lora_dropout_p": "0.05",
    "lora_target_modules": "ALL",
    "gradient_checkpointing": "True",
    "batch_size": "1",
    "weight_decay": "0.01",
    "learning_rate": "1e-4",
    "gradient_accumulation_steps": "16",
    "max_grad_norm": "0.5",
    "warmup_ratio": "0.03"
}
# 创建 ModelScopeEstimator 对象
est = ModelScopeEstimator(
    # 指定训练脚本的启动命令,通过 $PAI_USER_ARGS 传入所有超参信息,请参考:
    # https://help.aliyun.com/zh/pai/user-guide/submit-a-training-job
    command="swift sft $PAI_USER_ARGS",
    # 任务使用的机型规格
    instance_type="ecs.gn6e-c12g1.3xlarge",
    # 使用相应 modelscope_version 的训练镜像
    modelscope_version="1.13.3",
    hyperparameters=hyperparameters,
    base_job_name="modelscope-sdk-train",
    # 第三方依赖包
    requirements=["ms_swift==2.0.3.post1"],
)
# 提交创建一个训练任务(产生PAI-DLC账单费用)
est.fit(wait=False)
# 创建并打开一个TensorBoard实例
tb = est.tensorboard()
print(tb.app_uri)
# 等待训练作业执行完成
est.wait()
# 查看训练任务所产出的模型地址
print(est.model_data())

以上的代码同时也会在 PAI 上创建一个与作业关联的 TensorBoard 实例,可以通过TensorBoard监控模型的训练进度和性能。

训练任务产出的模型,默认保存到用户的 OSS Bucket,可以通过 ossutils 等工具下载到本地。开发者也可以直接将模型部署到 PAI-EAS 创建一个推理服务,具体可以参考以下的“使用 ModelScope Swift 框架完成大语言模型的微调训练和部署” Notebook 示例。

Notebook示例

开发者可以通过以下Notebook了解更多如何基于 PAI Python SDK 在 PAI 使用 ModelScope 模型的示例。

打开Notebook

示例描述

Github

DSW Gallery

在PAI快速部署ModelScope模型。

Github

DSW Gallery

使用ModelScope Swift框架完成大语言模型的微调训练和部署。

Github

DSW Gallery

基于ModelScope library自定义代码完成ViT图片分类模型的微调训练和部署。

Github

DSW Gallery

在训练作业中使用 TensorBoard

Github

DSW Gallery

提交 PyTorch 分布式作业

参与PAI免费使用

通过参与阿里云免费试用,首次开通PAI的用户可以获得 PAI-DLC(训练服务)和 PAI-EAS(推理服务)免费试用资源包。用户可以在提交训练作业,或是部署推理服务选择免费试用的规格实例,使用免费资源包,具体可以参考阿里云PAI免费试用:https://help.aliyun.com/zh/pai/product-overview/free-quota-for-new-users

PAI-DLC 训练服务支持的免费使用实例类型:

实例规格

CPU

内存

GPU

GPU显存

ecs.g6.xlarge

4

16 GB

-

-

ecs.gn6v-c8g1.2xlarge

8

32 GB

1 * NVIDIA V100

1 * 16 GB

ecs.gn7i-c8g1.2xlarge

8

30 GB

1 * NVIDIA A10

1 * 24 GB

PAI-EAS 推理服务支持的免费试用实例类型:

实例规格

CPU

内存

GPU

GPU显存

ecs.g6.xlarge.limit

4

16 GB

-

-

ecs.gn6i-c8g1.2xlarge.limit

8

31 GB

1 * NVIDIA T4

1 * 8 GB

ecs.gn7i-c8g1.2xlarge.limit

8

30 GB

1 * NVIDIA A10

1 * 24 GB

相关资源链接

  • ModelScope 社区:

https://modelscope.cn/

  • 阿里云免费试用:

https://help.aliyun.com/zh/pai/product-overview/free-quota-for-new-users

  • PAI Python SDK Github:

https://github.com/aliyun/pai-python-sdk

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
157
分享
相关文章
【解决方案】DistilQwen2.5-R1蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式的机器学习和深度学习平台,对DistilQwen2.5-R1模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过 PAI-ModelGallery 轻松实现 Qwen2.5 系列模型的训练、评测、压缩和快速部署。本文详细介绍在 PAI 平台使用 DistilQwen2.5-R1 蒸馏模型的全链路最佳实践。
【解决方案】DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括 DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。本文详细介绍DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践。
PAI-Model Gallery云上一键部署阶跃星辰新模型Step1X-Edit
4月27日,阶跃星辰正式发布并开源图像编辑大模型 Step1X-Edit,性能达到开源 SOTA。Step1X-Edit模型总参数量为19B,实现 MLLM 与 DiT 的深度融合,在编辑精度与图像保真度上实现大幅提升,具备语义精准解析、身份一致性保持、高精度区域级控制三项关键能力;支持文字替换、风格迁移等11 类高频图像编辑任务类型。在最新发布的图像编辑基准 GEdit-Bench 中,Step1X-Edit 在语义一致性、图像质量与综合得分三项指标上全面领先现有开源模型,比肩 GPT-4o 与 Gemin。PAI-ModelGallery 支持Step1X-Edit一键部署方案。
基于PAI+专属网关+私网连接:构建全链路Deepseek云上私有化部署与模型调用架构
本文介绍了阿里云通过PAI+专属网关+私网连接方案,帮助企业实现DeepSeek-R1模型的私有化部署。方案解决了算力成本高、资源紧张、部署复杂和数据安全等问题,支持全链路零公网暴露及全球低延迟算力网络,最终实现技术可控、成本优化与安全可靠的AI部署路径,满足企业全球化业务需求。
PAI 重磅发布模型权重服务,大幅降低模型推理冷启动与扩容时长
阿里云人工智能平台PAI 平台推出模型权重服务,通过分布式缓存架构、RDMA高速传输、智能分片等技术,显著提升大语言模型部署效率,解决模型加载耗时过长的业界难题。实测显示,Qwen3-32B冷启动时间从953秒降至82秒(降幅91.4%),扩容时间缩短98.2%。
【新模型速递】PAI-Model Gallery云上一键部署MiniMax-M1模型
MiniMax公司6月17日推出4560亿参数大模型M1,采用混合专家架构和闪电注意力机制,支持百万级上下文处理,高效的计算特性使其特别适合需要处理长输入和广泛思考的复杂任务。阿里云PAI-ModelGallery现已接入该模型,提供一键部署、API调用等企业级解决方案,简化AI开发流程。
DistilQwen-ThoughtX 蒸馏模型在 PAI-ModelGallery 的训练、评测、压缩及部署实践
通过 PAI-ModelGallery,可一站式零代码完成 DistilQwen-ThoughtX 系列模型的训练、评测、压缩和部署。
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
阿里云PAI-全模态模型Qwen2.5-Omni-7B推理浅试
阿里云PAI-全模态模型Qwen2.5-Omni-7B推理浅试
323 11
【新模型速递】PAI一键云上零门槛部署DeepSeek-V3-0324、Qwen2.5-VL-32B
PAI-Model Gallery 集成国内外 AI 开源社区中优质的预训练模型,涵盖了 LLM、AIGC、CV、NLP 等各个领域,用户可以通过 PAI 以零代码方式实现从训练到部署再到推理的全过程,获得更快、更高效、更便捷的 AI 开发和应用体验。 现阿里云PAI-Model Gallery已同步接入DeepSeek-V3-0324、Qwen2.5-VL-32B-Instruct两大新模型,提供企业级部署方案。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问