二、 用户体验
如上图所示,推理在深度学习中,表示模型的预测过程。一般来说,推理会使用pipeline(串行管道过程)来执行所需要的操作。一个完整的pipeline一般包括了数据的前处理、模型的前向推理、数据的后处理三个过程。
pipeline()方法是ModelScope框架上最基础的用户方法之一,可对多种领域的多种模型进行快速推理。通过pipeline()方法,用户可以只需要一行代码即可完成对特定任务的模型推理。
如上图所示,所有模型都有一个快速开始页面,用户可以看到每个模型是如何调用实现的。
如上图所示,用户只需要两行代码,就能在服务器后端拉起模型,把模型加载到本地并运行。不同模态的模型都可以通过修改两行参数,直接获取。
目前,平台的三百多个模型都可以通过两行代码中的两个参数实现拉取。如果用户需要把模型部署到自己的云端,让云端服务进行推理。用户可以通过SDK直接实现。
如上图所示,用户基于ModelScope中文gpt3底座二次开发得到诗词生成模型代码,通过使用原始基础模型进行推理。
对于模型来说,如果开发者有开发能力,ModelScope社区支持SDK进行微调。开发者可以根据自己的业务场景,目标数据集进行模型微调。
在网页端,每个模型都有Notebook链接,用户可以直接进入云端的Notebook平台。用户不需要任何安装或环境配置,可以直接复制模型页面的代码,点击运行即可。与此同时,ModelScope社区提供了免费CPU以及GPU算力供大家使用。
在本地部署方面,ModelScope的本地环境配置相对简单。用户只需通过ModelScope安装包,就可以运行模型。
为了方便开发者贡献自己的模型,贡献者只需要提供Configuratiorn、Model Flles/Checkpoints即可。
与此同时,ModelScope社区提供了分层API,开发者可以通过组件化的方式,将模型、预处理组件、后处理组件分开,方便用户组装。
在模型微调以及训练方面,ModelScope社区支持用户High-level API接入。接口为train()+evaluate()。High-level API的代码复用度较低,开发者负责实现绝大多数流程代码,且已有模型代码接入成本较低。
ModelScope社区为用户提供了实现training loop的模块抽象,支持串联data set,模型forward,backward,梯度更新等流程。
开发者只需提供模型类,预处理,Metrics,评估指标定制即可。ModelScope社区提供hook机制,保障training流程(按需)定制化,从而提高代码的复用度。
在数据集方面,支持开发者读取本地,云上(OSSetc.)以及web数据,开发者可以对接Model Scope Dataset-hub。
ModelScope社区保持对多种数据源(hub)开放,开发者可以直接获取tf,torch等框架原生数据格式,对分布式训练/finetune有更完善的支持。