Skip to content

19.ModelScope模型训练平台配置与使用 ​

来源:语雀原文 | 整理日期:2026-09-22

分享内容

  1. ModelScope介绍
  2. 环境安装与模型下载
  3. 模型推理
  4. 模型微调
  5. 模型部署

快速开始 ​

先熟悉魔搭社区的模型下载和模型推理。设置开发环境,并顺利从魔搭社区开始模型学习,使用和开发。

环境安装 ​

可以使用魔搭社区已经预安装好的 Notebook环境 来使用魔搭社区模型。魔搭社区Notebook为新用户提供了100小时的免费GPU算力和不限时长的免费CPU算力,并预安装了大部分模型可运行的环境依赖。

如果您希望在本地开发环境使用魔搭社区的模型, 我们推荐使用ModelScope SDK下载模型。您可以使用如下命令安装ModelScope SDK:

plain
pip install modelscope

同时我们推荐您安装 Git 和 Git LFS ,这是模型管理包括上传所必须的工具。

模型下载 ​

如果您在高带宽的机器上运行,推荐使用ModelScope命令行工具下载模型。该方法支持断点续传和模型高速下载,例如可以通过如下命令,将Qwen2.5-0.5B-Instruct模型,下载到当前路径下的"model-dir"目录。

plain
modelscope download --model="Qwen/Qwen2.5-0.5B-Instruct" --local_dir ./model-dir

您也可以使用ModelScope Python SDK下载模型,该方法支持断点续传和模型高速下载:

plain
from modelscope import snapshot_download
model_dir = snapshot_download("Qwen/Qwen2.5-0.5B-Instruct")

由于模型都是通过Git存储,所以也可以在安装Git LFS后,通过git clone的方式在本地下载模型,例如:

plain
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git

关于模型下载的详细说明,可参考模型下载文档。

同时,如果模型和ModelScope SDK绑定,则只需要几行代码即可加载模型,同时ModelScope还支持通过AutoModel等接口来加载模型。如下是使用AutoModel和pipeline方式加载模型的示例:

使用AutoModel加载模型 ​

plain
from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2.5-0.5B-Instruct"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

使用ModelScope pipeline加载模型 ​

plain
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base')

模型推理 ​

推理不同模态多种任务,pipeline是最简单、最快捷的方法。您可以使用开箱即用的pipeline执行跨不同模式的多种任务,下面是一个pipeline完整的运行示例:

plain
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

inference_pipeline = pipeline(
    task=Tasks.auto_speech_recognition,
    model='iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
    model_revision="v2.0.4")

rec_result = inference_pipeline('https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_vad_punc_example.wav')
print(rec_result)

ModelScope兼容了Transformers提供的简单而统一的方法来加载预训练实例和tokenizer。这意味着您可以使用ModelScope加载AutoModel和AutoTokenizer等类。下面是一个大语言模型的完整的运行示例:

plain
from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2.5-0.5B-Instruct"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "请简要介绍一下大型语言模型."
messages = [
    {"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

对于暂时未与ModelScope SDK做原生集成的模型,可以先从ModelScope上下载模型,然后通过其他的主流库实现模型推理,以SDXL-Turbo模型为例,完整的模型推理运行示例如下:

plain
from diffusers import AutoPipelineForText2Image
import torch
from modelscope import snapshot_download

model_dir = snapshot_download("AI-ModelScope/sdxl-turbo")

pipe = AutoPipelineForText2Image.from_pretrained(model_dir, torch_dtype=torch.float16, variant="fp16")
pipe.to("cuda")

prompt = "cat"

image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
image.save("image.png")

模型微调 ​

本文以LLM为例,使用MS-Swift进行模型微调。MS-Swift是魔搭社区官方提供的大模型工具箱,支持300+大语言模型和80+多模态大模型从微调训练到部署推理的链路。下面是一个LLM自我认知微调的示例:

安装依赖

plain
pip install ms-swift

微调脚本

plain
!CUDA_VISIBLE_DEVICES=0  swift sft \
    --model Qwen/Qwen2.5-0.5B-Instruct \
    --train_type lora \
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
    --torch_dtype bfloat16 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --gradient_accumulation_steps 1 \
    --eval_steps 1 \
    --save_steps 1 \
    --save_total_limit 5 \
    --logging_steps 1 \
    --max_length 2048 \
    --output_dir output \
    --system 'You are a helpful assistant.' \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --model_author swift \
    --model_name swift-robot

微调后推理,注意:ckpt_dir需要修改为训练生成的last checkpoint文件夹

plain
!CUDA_VISIBLE_DEVICES=0 swift export \
    --ckpt_dir output/v0-20250130-165127/checkpoint-12 \
    --merge_lora true

更多基于MS-Swift进行大模型和多模态模型训练与推理的文档,可以参见文档中心的大模型训练与推理部分。

模型部署 ​

您可以使用魔搭社区 SwingDeploy 来一键部署指定的模型到云资源上。SwingDeploy除了支持各种任务小模型的部署外,对于部分大语言模型,SwingDeploy支持部署后直接提供OpenAI API兼容的调用接口。

如果您希望在自有的GPU环境进行模型部署,我们推荐使用vLLM部署大语言模型,首先您需要设置环境变量来指定使用ModelScope上的模型:

plain
export VLLM_USE_MODELSCOPE=True

vllm>=0.6支持 vLLM 内置的工具调用功能,部署命令:

plain
!vllm serve Qwen/Qwen2.5-0.5B-Instruct

​