简介
项目地址:https://github.com/modelscope/modelscope/tree/master
ModelScope 是一个“模型即服务”(MaaS)平台,旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的API设计执行推理、训练和评估,从而促进跨不同AI领域的最先进模型的统一体验。
ModelScope Library为模型贡献者提供了必要的分层API,以便将来自 CV、NLP、语音、多模态以及科学计算的模型集成到ModelScope生态系统中。所有这些不同模型的实现都以一种简单统一访问的方式进行封装,用户只需几行代码即可完成模型推理、微调和评估。同时,灵活的模块化设计使得在必要时也可以自定义模型训练推理过程中的不同组件。
除了包含各种模型的实现之外,ModelScope Library还支持与ModelScope后端服务进行必要的交互,特别是与Model-Hub和Dataset-Hub的交互。这种交互促进了模型和数据集的管理在后台无缝执行,包括模型数据集查询、版本控制、缓存管理等。
部分模型和在线体验
ModelScope开源了数百个(当前700+)模型,涵盖自然语言处理、计算机视觉、语音、多模态、科学计算等,其中包含数百个SOTA模型。用户可以进入ModelScope网站(modelscope.cn)的模型中心零门槛在线体验,或者Notebook方式体验模型。
示例如下:
自然语言处理:
-
GPT-3预训练生成模型-中文-2.7B
-
元语功能型对话大模型
-
孟子T5预训练生成模型-中文-base
-
CSANMT连续语义增强机器翻译-英中-通用领域-large
-
RaNER命名实体识别-中文-新闻领域-base
-
BAStructBERT分词-中文-新闻领域-base
-
二郎神-RoBERTa-330M-情感分类
-
SPACE-T表格问答预训练模型-中文-通用领域-base
多模态:
-
CLIP模型-中文-通用领域-base
-
OFA预训练模型-中文-通用领域-base
-
太乙-Stable-Diffusion-1B-中文-v0.1
-
mPLUG视觉问答模型-英文-large
计算机视觉:
-
ControlNet可控图像生成
-
DAMOYOLO-高性能通用检测模型-S
-
DCT-Net人像卡通化
-
读光-文字识别-行识别模型-中英-通用领域
-
人体检测-通用-Base
-
RetinaFace人脸检测关键点模型
-
BSHM人像抠图
-
图像分割-商品展示图场景的商品分割-电商领域
-
万物识别-中文-通用领域
语音:
-
Paraformer语音识别-中文-通用-16k-离线-large-pytorch
-
语音合成-中文-多情感领域-16k-多发音人
-
CTC语音唤醒-移动端-单麦-16k-小云小云
-
WeNet-U2pp_Conformer-语音识别-中文-16k-实时
-
FRCRN语音降噪-单麦-16k
-
DFSMN回声消除-单麦单参考-16k
科学计算:
-
Uni-Fold-Monomer 开源的蛋白质单体结构预测模型
-
Uni-Fold-Multimer 开源的蛋白质复合物结构预测模型
快速上手
我们针对不同任务提供了统一的使用接口, 使用pipeline
进行模型推理、使用Trainer
进行微调和评估。
对于任意类型输入(图像、文本、音频、视频…)的任何任务,只需3行代码即可加载模型并获得推理结果,如下所示:
>>> from modelscope.pipelines import pipeline
>>> word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base')
>>> word_segmentation('今天天气不错,适合出去游玩')
{'output': '今天 天气 不错 , 适合 出去 游玩'}
>>> import cv2
>>> from modelscope.pipelines import pipeline
>>> portrait_matting = pipeline('portrait-matting')
>>> result = portrait_matting('https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_matting.png')
>>> cv2.imwrite('result.png', result['output_img'])
对于微调和评估模型, 你需要通过十多行代码构建dataset和trainer,调用trainer.train()
和trainer.evaluate()
即可。
例如我们利用gpt3 1.3B的模型,加载是诗歌数据集进行finetune,可以完成古诗生成模型的训练。
>>> from modelscope.metainfo import Trainers
>>> from modelscope.msdatasets import MsDataset
>>> from modelscope.trainers import build_trainer
>>> train_dataset = MsDataset.load('chinese-poetry-collection', split='train'). remap_columns({'text1': 'src_txt'})
>>> eval_dataset = MsDataset.load('chinese-poetry-collection', split='test').remap_columns({'text1': 'src_txt'})
>>> max_epochs = 10
>>> tmp_dir = './gpt3_poetry'
>>> kwargs = dict(
model='damo/nlp_gpt3_text-generation_1.3B',
train_dataset=train_dataset,
eval_dataset=eval_dataset,
max_epochs=max_epochs,
work_dir=tmp_dir)
>>> trainer = build_trainer(name=Trainers.gpt3_trainer, default_args=kwargs)
>>> trainer.train()
为什么要用ModelScope library
-
针对不同任务、不同模型抽象了统一简洁的用户接口,3行代码完成推理,10行代码完成模型训练,方便用户使用ModelScope社区中多个领域的不同模型,开箱即用,便于AI入门和教学。
-
构造以模型为中心的开发应用体验,支持模型训练、推理、导出部署,方便用户基于ModelScope Library构建自己的MLOps.
-
针对模型推理、训练流程,进行了模块化的设计,并提供了丰富的功能模块实现,方便用户定制化开发来自定义自己的推理、训练等过程。
-
针对分布式模型训练,尤其是大模型,提供了丰富的训练策略支持,包括数据并行、模型并行、混合并行等。
安装
镜像
ModelScope Library目前支持tensorflow,pytorch深度学习框架进行模型训练、推理, 在Python 3.7+, Pytorch 1.8+, Tensorflow1.15/Tensorflow2.0+测试可运行。
为了让大家能直接用上ModelScope平台上的所有模型,无需配置环境,ModelScope提供了官方镜像,方便有需要的开发者获取。地址如下:
CPU镜像
# py37
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-py37-torch1.11.0-tf1.15.5-1.6.1
# py38
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-py38-torch1.11.0-tf1.15.5-1.6.1
GPU镜像
# py37
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.3.0-py37-torch1.11.0-tf1.15.5-1.6.1
# py38
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.3.0-py38-torch1.11.0-tf1.15.5-1.6.1
搭建本地Python环境
你也可以使用pip和conda搭建本地python环境,我们推荐使用Anaconda,安装完成后,执行如下命令为modelscope library创建对应的python环境:
conda create -n modelscope python=3.7
conda activate modelscope
接下来根据所需使用的模型依赖安装底层计算框架
- 安装Pytorch 文档链接
- 安装tensorflow 文档链接
安装完前置依赖,你可以按照如下方式安装ModelScope Library。
ModelScope Libarary由核心框架,以及不同领域模型的对接组件组成。如果只需要ModelScope模型和数据集访问等基础能力,可以只安装ModelScope的核心框架:
pip install modelscope
如仅需体验多模态领域的模型,可执行如下命令安装领域依赖:
pip install modelscope[multi-modal]
如仅需体验NLP领域模型,可执行如下命令安装领域依赖(因部分依赖由ModelScope独立host,所以需要使用"-f"参数):
pip install modelscope[nlp] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
If you want to use cv models:
pip install modelscope[cv] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
如仅需体验语音领域模型,可执行如下命令安装领域依赖(因部分依赖由ModelScope独立host,所以需要使用"-f"参数):
pip install modelscope[audio] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
注意
:当前大部分语音模型需要在Linux环境上使用,并且推荐使用python3.7 + tensorflow 1.x的组合。
如仅需体验科学计算领域模型,可执行如下命令安装领域依赖(因部分依赖由ModelScope独立host,所以需要使用"-f"参数):
pip install modelscope[science] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
注
:
-
目前部分语音相关的模型仅支持 python3.7,tensorflow1.15.4的Linux环境使用。 其他绝大部分模型可以在windows、mac(x86)上安装使用。.
-
语音领域中一部分模型使用了三方库SoundFile进行wav文件处理,在Linux系统上用户需要手动安装SoundFile的底层依赖库libsndfile,在Windows和MacOS上会自动安装不需要用户操作。详细信息可参考SoundFile 官网。以Ubuntu系统为例,用户需要执行如下命令:
sudo apt-get update sudo apt-get install libsndfile1
-
CV领域的少数模型,需要安装mmcv-full, 如果运行过程中提示缺少mmcv,请参考mmcv安装手册进行安装。 这里提供一个最简版的mmcv-full安装步骤,但是要达到最优的mmcv-full的安装效果(包括对于cuda版本的兼容),请根据自己的实际机器环境,以mmcv官方安装手册为准。
pip uninstall mmcv # if you have installed mmcv, uninstall it pip install -U openmim mim install mmcv-full
更多教程
除了上述内容,我们还提供如下信息:
- 更加详细的安装文档
- 任务的介绍
- 模型推理
- 模型微调
- 数据预处理
- 模型评估
- 贡献模型到ModelScope
License
本项目使用Apache License (Version 2.0).