ModelScope模型训练平台配置与使用
《ModelScope模型训练平台配置与使用》共 0.1 万字,通篇围绕 推理、部署、微调、prompt 展开,归在「训练、微调与数据」这一层。
适合要自己训模型、或者判断这一版该不该训的人
目录骨架(2 节)
- 使用AutoModel加载模型
- 使用ModelScope pipeline加载模型
分享内容
- ModelScope介绍
- 环境安装与模型下载
- 模型推理
- 模型微调
- 模型部署
快速开始
先熟悉魔搭社区的模型下载和模型推理。设置开发环境,并顺利从魔搭社区开始模型学习,使用和开发。
环境安装
可以使用魔搭社区已经预安装好的 Notebook环境 来使用魔搭社区模型。魔搭社区Notebook为新用户提供了100小时的免费GPU算力和不限时长的免费CPU算力,并预安装了大部分模型可运行的环境依赖。
如果您希望在本地开发环境使用魔搭社区的模型, 我们推荐使用ModelScope SDK下载模型。您可以使用如下命令安装ModelScope SDK:
pip install modelscope
同时我们推荐您安装 Git 和 Git LFS ,这是模型管理包括上传所必须的工具。
模型下载
如果您在高带宽的机器上运行,推荐使用ModelScope命令行工具下载模型。该方法支持断点续传和模型高速下载,例如可以通过如下命令,将Qwen2.5-0.5B-Instruct模型,下载到当前路径下的"model-dir"目录。
modelscope download --model="Qwen/Qwen2.5-0.5B-Instruct" --local_dir ./model-dir
您也可以使用ModelScope Python SDK下载模型,该方法支持断点续传和模型高速下载:
from modelscope import snapshot_download
model_dir = snapshot_download("Qwen/Qwen2.5-0.5B-Instruct")
由于模型都是通过Git存储,所以也可以在安装Git LFS后,通过git clone的方式在本地下载模型,例如:
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
关于模型下载的详细说明,可参考模型下载文档。
同时,如果模型和ModelScope SDK绑定,则只需要几行代码即可加载模型,同时ModelScope还支持通过AutoModel等接口来加载模型。如下是使用AutoModel和pipeline方式加载模型的示例:
使用AutoModel加载模型
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加载模型
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base')
模型推理
推理不同模态多种任务,pipeline是最简单、最快捷的方法。您可以使用开箱即用的pipeline执行跨不同模式的多种任务,下面是一个pipeline完整的运行示例:
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)