外观
19.ModelScope模型训练平台配置与使用
来源:语雀原文 | 整理日期:2026-09-22
分享内容
- ModelScope介绍
- 环境安装与模型下载
- 模型推理
- 模型微调
- 模型部署
快速开始
先熟悉魔搭社区的模型下载和模型推理。设置开发环境,并顺利从魔搭社区开始模型学习,使用和开发。
环境安装
可以使用魔搭社区已经预安装好的 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=Truevllm>=0.6支持 vLLM 内置的工具调用功能,部署命令:
plain
!vllm serve Qwen/Qwen2.5-0.5B-Instruct