使用ModelScope运行或者微调模型ModelScope国内一个“模型即服务”(MaaS)平台

@TOC

一、ModelScope社区

ModelScope是一个“模型即服务”(MaaS)平台,由阿里推出维护,旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的API设计执行推理、训练和评估,从而促进跨不同AI领域的最先进模型的统一体验。

ModelScope Library为模型贡献者提供了必要的分层API,以便将来自 CV、NLP、语音、多模态以及科学计算的模型集成到ModelScope生态系统中。所有这些不同模型的实现都以一种简单统一访问的方式进行封装,用户只需几行代码即可完成模型推理、微调和评估。同时,灵活的模块化设计使得在必要时也可以自定义模型训练推理过程中的不同组件。

除了包含各种模型的实现之外,ModelScope Library还支持与ModelScope后端服务进行必要的交互,特别是与Model-Hub和Dataset-Hub的交互。这种交互促进了模型和数据集的管理在后台无缝执行,包括模型数据集查询、版本控制、缓存管理等。

GitHub地址:ModelScope

二、使用

ModelScope针对不同任务提供了统一的使用接口, 使用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()

三、总结

  1. 针对不同任务、不同模型抽象了统一简洁的用户接口,3行代码完成推理,10行代码完成模型训练,方便用户使用ModelScope社区中多个领域的不同模型,开箱即用,便于AI入门和教学。

  2. 构造以模型为中心的开发应用体验,支持模型训练、推理、导出部署,方便用户基于ModelScope Library构建自己的MLOps.

  3. 针对模型推理、训练流程,进行了模块化的设计,并提供了丰富的功能模块实现,方便用户定制化开发来自定义自己的推理、训练等过程。

  4. 针对分布式模型训练,尤其是大模型,提供了丰富的训练策略支持,包括数据并行、模型并行、混合并行等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

即时设计:轻松实现设计稿动画,打造独具魅力的GIF作品

制作动画 随着动画设计越来越受欢迎,设计师们需要一款强大的工具,以便轻松控制设计稿元素的属性,实现动画效果。今天,我们向您推荐一款具备帧动画功能的设计工具,它可以让您轻松调整元素的宽高、相对位置等属性&#x…

Spring AI 指南

近年来,人工智能技术的迅猛发展改变了我们对科技的看法,并在各个领域引发了巨大的变革。每个人都希望在自己的项目上能够使用人工智能。Spring 框架提供了一个名为 “Spring AI” 的项目,Spring AI 项目旨在简化包含人工智能功能的应用程序的…

Python 基础面试第四弹

1. Python中常用的库有哪些,作用分别是什么 requests: requests 是一个用于发送 HTTP 请求的库,它提供了简单而优雅的 API,可以轻松地发送 GET、POST、PUT、DELETE 等请求,并处理响应数据。它支持会话管理、身份验证、文件上传等常…

Matlab绘制动态心形线

1. 代码 for alpha0:0.1:30 x-1.8:0.001:1.8; y(x.^2).^(1/3)0.9*(3.3-x.^2).^(1/2).*sin(alpha*pi*x); plot(x,y,r-,LineWidth,1.2); set(gca,YGrid,on); axis([-3,3,-2,4]); text(-2,3.35,$f(x)x^{\frac{2}{3}}0.9(3.3-x^2)^{\frac{1}{2}}sin(\alpha\pi x)$,Interpreter,lat…

Geotrust DV通配符证书保护域名数量

Geotrust是一家知名的SSL证书提供商,旗下有多种类型的SSL数字证书,保护网站数据在传输过程中的安全性和完整性,帮助用户确认其网站的安全。通配符SSL证书是Geotrust颁发的一种可以同时保护多个域名站点的SSL证书。今天就随SSL盾小编了解Geotr…

Toshiba 数字隔离器助力工业应用实现稳定的高速隔离数据传输

隔离器件是将输入信号进行转换并输出,以实现输入、输出两端电气隔离的一种安规器件。电气隔离能够保证强电电路和弱电电路之间信号传输的安全性,如果没有进行电气隔离,一旦发生故障,强电电路的电流将直接流到弱电电路,…

啊哈c语言——逻辑挑战8:验证哥德巴赫猜想

上面这封书信是普鲁士数学家哥德巴赫在1742年6月7日写给瑞士数学家欧拉的,哥德巴赫在书信中提出了“任一大于2的整数都可以写成3个质数之和”的猜想。当时,哥德巴赫遵照的是“1也是素数”的约定。现今,数学界已经不使用这个约定了。哥德巴赫原…

Spring Boot 整合 Knife4j(快速上手)

关于 Knife4j 官方文档:https://doc.xiaominfo.com/ Knife4j是一个基于Swagger的API文档生成工具,它提供了一种方便的方式来为Spring Boot项目生成在线API文档。Knife4j的特点包括: 自动化生成:通过Swagger注解,Kn…

yq操作yaml插入列表数据支持传参

yq是基于golang语言开发的一款json、yaml以及xml命令行工具,支持多个平台,github官网:GitHub - mikefarah/yq: yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor 文档地址:Shell Completion …

凸优化 3:最优化方法

凸优化 3:最优化方法 最优化方法适用场景对比费马引理一阶优化算法梯度下降最速下降 二阶优化算法牛顿法Hessian矩阵Hessian矩阵的逆Hessian矩阵和梯度的区别牛顿法和梯度下降法的区别 拟牛顿法DFP、BFGS/L-BFGS 数值优化算法坐标下降法SMO算法 基于导数的函数优化解…

应用程序支持的系统版本

在使用 Android Studio 创建 Android 项目时,Minimum SDK 选项表示应用程序所需的最低 Android API 级别。这个选项让您指定应用程序可以运行的最小 Android 版本。 在构建应用程序时,您可能需要使用一些最新的 Android API 来实现某些功能。但是&#x…

FCN学习-----第一课

语义分割中的全卷积网络 CVPR IEEE国际计算机视觉与模式识别会议 PAMI IEEE模式分析与机器智能汇刊 需要会的知识点: 神经网络:前向传播和反向传播 卷积神经网络:CNN,卷积,池化,上采样 分类网络&#xff1a…

杨中科 ASP.NETCore Rest

什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…

紧跟国际潮流,勇探未知领域

紧跟国际潮流,勇探未知领域 文章目录 紧跟国际潮流,勇探未知领域一、计算产业新面貌二、紧跟AI新潮流1、我国人工智能产业发展表现出明显的集群化趋势2、人工智能产业集群是基于网络空间发展的创新集群三、企业簇群及其产业创新生态四、创新的“极化”和…

解析拼团购-----商业升级拉锯战,如何突破重重突围?

每天五分钟讲解一个商业模式,大家好我是模式策划啊浩。 作为新时代商业营销的宠儿“拼团购”如何能成为商业升级的关键因素呢?随着互联网技术的不断进步,拼团购作为一种新兴的消费形式,正逐渐成为商业领域的新宠。在激烈的商业竞…

【LeetCode】608. 树节点

表:Tree ------------------- | Column Name | Type | ------------------- | id | int | | p_id | int | ------------------- id 是该表中具有唯一值的列。 该表的每行包含树中节点的 id 及其父节点的 id 信息。 给定的结构总是一个有效的树。…

linux cat命令增加文件名功能后修复可能出现的bug

增加显示文件名功能后,需要将输出缓冲区的大小增加FILENAME_MAX1,FILENAME_MAX为当前系统文件名最长时占用的字节数,1为冒号占用的1字节,否则在特殊情况下,会导致输出缓冲区不够用,程序崩溃报段错误。 仅仅…

stm32学习笔记:TIM-输出比较

四部分讲解内容,本文是第二部分 输出比较主要用于PWM波形的控制电机(驱动电机的必要条件) 1、定时器基本定时,定一个时间,然后让定时器每隔一段时间产生一个中断,来实现每隔一个固定时间执行一段程序的目…

存储过程从表中获取数据库名称

---------------业务数据库信息 CREATE TABLE [dbo].[app_erp_datbabase_conf] ( [id] [int] IDENTITY(1,1) NOT NULL, [database_type] [varchar](200) NOT NULL, [database_name] [varchar](200) NOT NULL, [create_time] [datetime] NULL, [modify_t…

linux磁盘管理实验1

1.在安装好的linux系统中新加一块硬盘,将硬盘分成2个主分区,和2个逻辑分区,将其中一个逻辑分区设置成vfat(FAT32)分区,并实现开机自动挂载所有分区。 答:添加一个硬盘为sdb 分成2个主分区&#…