LLMs:MindFormers的简介、安装和使用方法、案例应用

LLMs:MindFormers的简介、安装和使用方法、案例应用

目录

MindFormers的简介

1、MindFormers的特点

2、支持模型:LLaMA3.1、GLM4、Qwen2、InternLM2、DeepSeekV2、Baichuan2

MindFormers的安装和使用方法

1、安装

版本匹配关系

兼容性说明

源码编译安装

2、使用方法

T1、单机多卡:默认8卡启动、仅设置使用卡数、自定义启动

使用示例

T2、多机多卡

使用示例

T3、单卡启动

MindFormers的案例应用


MindFormers的简介

2024年1月发布,MindSpore Transformers套件的目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件,提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。期望帮助用户轻松的实现大模型训练和创新研发

Gitee地址:mindformers: MindSpore Transformers套件的目标是构建一个大模型训练、推理、部署的全流程套件: 提供业内主流的Transformer类预训练模型, 涵盖丰富的并行特性。 期望帮助用户轻松的实现大模型训练。文档:https://mindformers.readthedocs.io/zh-cn/latest/

1、MindFormers的特点

MindSpore Transformers套件基于MindSpore内置的并行技术和组件化设计,具备如下特点:

  • 一行代码实现从单卡到大规模集群训练的无缝切换;
  • 提供灵活易用的个性化并行配置;
  • 能够自动进行拓扑感知,高效地融合数据并行和模型并行策略;
  • 一键启动任意任务的单卡/多卡训练、微调、评估、推理流程;
  • 支持用户进行组件化配置任意模块,如优化器、学习策略、网络组装等;
  • 提供Trainer、pipeline、AutoClass等高阶易用性接口
  • 提供预置SOTA权重自动下载及加载功能;
  • 支持人工智能计算中心无缝迁移部署;

2、支持模型:LLaMA3.1、GLM4、Qwen2、InternLM2、DeepSeekV2、Baichuan2

MindFormers已支持大部分模型的LoRA微调以及LoRA权重合并功能,具体可参考各模型文档启动模型的LoRA微调任务。

当前MindFormers支持的模型列表如下:

模型参数序列预训练微调推理LoRA对话评估
LLaMA27B4KgeneratePPL
13B4KgeneratePPL
70B4KgeneratePPL
LLaMA38B8K-generate--
70B8Kgenerate--
LLaMA3.18B8K-docs--
70B8K-docs--
Baichuan27B4K-generatePPL
13B4K-generatePPL
GLM26B2K-generatePPL / Rouge
GLM36B2K-generate--
GLM3-32K6B32K-generate--
GLM49B8K-generate--
CogVLM2-Video13B2K-docs--
CogVLM2-Image19B4K--docs---
Qwen7B8K-docsC-Eval
14B8K-docsC-Eval
Qwen1.50.5B8K--docs--
1.8B8K--docs--
4B8K--docs--
7B32Kdocs--
14B32Kdocs--
32B8K--docs--
72B32Kdocs--
Qwen20.5B32K-docs--
1.5B32K-docs--
7B32K-docs--
57B-A14B8K--docs--
57B32Kdocs--
72B128K-docs--
QwenVL9.6B2K-generate--
InternLM7B2K-generatePPL
20B2K-generatePPL
InternLM27B2K-generate--
20B4K--generate--
Yi6B2K-generate-
34B4Kgenerate-
Mixtral8x7B32Kdocs-
DeepSeek Coder33B4K-docs-
DeepSeek Coder1.57B4K-docs---
DeepSeekV2236B4Kdocs---
CodeLlama34B4KgenerateHumanEval
GPT213B2KgeneratePPL
Whisper1.5B------

MindFormers的安装和使用方法

1、安装

版本匹配关系

当前支持的硬件为Atlas 800T A2训练服务器。

当前套件建议使用的Python版本为3.10。

MindFormersMindPetMindSporeCANN驱动固件镜像链接备注
1.3.01.0.42.4.0-driver-版本分支

当前MindFormers建议使用如上的软件配套关系。其中CANN和固件驱动的安装需与使用的机器匹配,请注意识别机器型号,选择对应架构的版本。

兼容性说明

MindFormers与MindSpore有如下兼容关系:

MindFormersMindSpore兼容性
1.3.02.3
1.2.02.4

源码编译安装

MindFormers目前支持源码编译安装,用户可以执行如下命令进行安装。

git clone -b r1.3.0 https://gitee.com/mindspore/mindformers.git
cd mindformers
bash build.sh

2、使用方法

MindFormers支持模型启动预训练、微调、推理、评测等功能,可点击支持模型中模型名称查看文档完成上述任务,以下为模型分布式启动方式的说明与示例。

MindFormers推荐使用分布式方式拉起模型训练、推理等功能,目前提供scripts/msrun_launcher.sh分布式启动脚本作为模型的主要启动方式,msrun特性说明可以参考msrun启动。 该脚本主要输入参数说明如下:

参数单机是否必选多机是否必选默认值说明
WORKER_NUM8所有节点中使用计算卡的总数
LOCAL_WORKER-8当前节点中使用计算卡的数量
MASTER_ADDR-127.0.0.1指定分布式启动主节点的ip
MASTER_PORT-8118指定分布式启动绑定的端口号
NODE_RANK-0指定当前节点的rank id
LOG_DIR-output/msrun_log日志输出路径,若不存在则递归创建
JOIN-False是否等待所有分布式进程退出
CLUSTER_TIME_OUT-7200分布式启动的等待时间,单位为秒

注:如果需要指定device_id启动,可以设置环境变量ASCEND_RT_VISIBLE_DEVICES,如要配置使用2、3卡则输入export ASCEND_RT_VISIBLE_DEVICES=2,3

T1、单机多卡:默认8卡启动、仅设置使用卡数、自定义启动

# 1. 单机多卡快速启动方式,默认8卡启动
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}"# 2. 单机多卡快速启动方式,仅设置使用卡数即可
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}" WORKER_NUM# 3. 单机多卡自定义启动方式
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}" \WORKER_NUM MASTER_PORT LOG_DIR JOIN CLUSTER_TIME_OUT

使用示例
# 单机多卡快速启动方式,默认8卡启动
bash scripts/msrun_launcher.sh "run_mindformer.py \--config path/to/xxx.yaml \--run_mode finetune"# 单机多卡快速启动方式
bash scripts/msrun_launcher.sh "run_mindformer.py \--config path/to/xxx.yaml \--run_mode finetune" 8# 单机多卡自定义启动方式
bash scripts/msrun_launcher.sh "run_mindformer.py \--config path/to/xxx.yaml \--run_mode finetune" \8 8118 output/msrun_log False 300

T2、多机多卡

多机多卡执行脚本进行分布式训练需要分别在不同节点运行脚本,并将参数MASTER_ADDR设置为主节点的ip地址, 所有节点设置的ip地址相同,不同节点之间仅参数NODE_RANK不同。

# 多机多卡自定义启动方式
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}" \WORKER_NUM LOCAL_WORKER MASTER_ADDR MASTER_PORT NODE_RANK LOG_DIR JOIN CLUSTER_TIME_OUT

使用示例
# 节点0,节点ip为192.168.1.1,作为主节点,总共8卡且每个节点4卡
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}" \8 4 192.168.1.1 8118 0 output/msrun_log False 300# 节点1,节点ip为192.168.1.2,节点0与节点1启动命令仅参数NODE_RANK不同
bash scripts/msrun_launcher.sh "run_mindformer.py \--config {CONFIG_PATH} \--run_mode {train/finetune/eval/predict}" \8 4 192.168.1.1 8118 1 output/msrun_log False 300

T3、单卡启动

MindFormers提供run_mindformer.py脚本作为单卡启动方法,该脚本可以根据模型配置文件,完成支持模型的单卡训练、微调、评估、推理流程。

# 运行run_mindformer.py的入参会覆盖模型配置文件中的参数
python run_mindformer.py --config {CONFIG_PATH} --run_mode {train/finetune/eval/predict}

MindFormers的案例应用

持续更新中……

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

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

相关文章

vue+Leaflet.PM插件实现创建和编辑几何图形(点、线、面、圆等)

场景 VueLeaflet实现加载OSM显示地图:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122317394在上面加载显示OSM的基础上,使用Leaflet.pm插件实现在页面上绘制、编辑、剪切、移动几何元素。Leaflet.pm插件 用于创建和编辑几何图层的插件可…

手动实现h5移动端点击全屏按钮横屏展示图片,左右滑动切换,处理页面会随着手指滑动问题

页面提供全屏按钮,全屏展示的容器 <div class"container"><button click"openSwiper">点击全屏查看</button><!-- 大图 --><divclass"full"v-if"showSwiper"touchstart"handleTouchStart"touch…

Vue2+3 —— Day3/4

Day3 Vue生命周期 和 生命周期的四个阶段 Vue生命周期的四个阶段&#xff1a; 从创建到销毁的整个阶段中&#xff0c;Vue提供好了一系列函数&#xff08;8个&#xff09;&#xff1b; 并且在经历生命周期的对应阶段时&#xff0c;会自动帮你调用这些函数 这8个函数称为生命…

Redis集群模式之Redis Sentinel vs. Redis Cluster

在分布式系统环境中&#xff0c;Redis以其高性能、低延迟和丰富的数据结构而广受青睐。随着数据量的增长和访问需求的增加&#xff0c;单一Redis实例往往难以满足高可用性和扩展性的要求。为此&#xff0c;Redis提供了两种主要的集群模式&#xff1a;Redis Sentinel和Redis Clu…

机器学习———特征工程

1 特征工程概念 特征工程就是对特征进行相关的处理&#xff0c;一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程&#xff0c;特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征&#xff0c;比如:字典特征提取(特征离散化)、文本特征提取…

服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列&#xff0c;上层安装linux操作系统统。分区结构&#xff1a;boot分区LVM卷swap分区&#xff08;按照顺序&#xff09;&#xff0c;LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…

vue3+vite搭建脚手架项目本地运行electron桌面应用

1.搭建脚手架项目 搭建Vue3ViteTs脚手架-CSDN博客 2.创建完项目后&#xff0c;安装所需依赖包 npm i vite-plugin-electron electron26.1.0 3.根目录下创建electron/main.ts electron/main.ts /** electron/main.ts */import { app, BrowserWindow } from "electron&qu…

C++ | Leetcode C++题解之第556题下一个更大元素III

题目&#xff1a; 题解&#xff1a; class Solution { public:int nextGreaterElement(int n) {int x n, cnt 1;for (; x > 10 && x / 10 % 10 > x % 10; x / 10) {cnt;}x / 10;if (x 0) {return -1;}int targetDigit x % 10;int x2 n, cnt2 0;for (; x2 …

大数据技术之Hadoop :我是恁爹

就如上图中的技术分类&#xff0c;大数据技术主要解决的就是海量数据的存储和计算问题。 这两个问题的解决方案最先被 Google 被提出&#xff0c;用于解决 Google 搜索引擎海量的网页存储和索引的构建。对应的技术就是日后被人所熟知的 HDFS 和 MapReduce。 不关注大数据的可…

云计算:定义、类型及对企业的影响

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 云计算&#xff1a;定义、类型及对企业的影响 云计算&#xff1a;定义、类型及对企业的影响 云计算&#xff1a;定义、类型及对企…

如何优化Elasticsearch的查询性能?

优化Elasticsearch查询性能可以从以下几个方面进行&#xff1a; 合理设计索引和分片&#xff1a; 确保设置合理的分片和副本数&#xff0c;考虑数据量、节点数和集群大小。根据数据量和节点数量调整分片数量&#xff0c;避免使用过多分片&#xff0c;因为每个分片都需要额外的…

星期-时间范围选择器 滑动选择时间 最小粒度 vue3

星期-时间范围选择器 功能介绍属性说明事件说明实现代码使用范例 根据业务需要&#xff0c;实现了一个可选择时间范围的周视图。用户可以通过鼠标拖动来选择时间段&#xff0c;并且可以通过快速选择组件来快速选择特定的时间范围。 如图&#xff1a; 功能介绍 时间范围选择&…

光流法与直接法在SLAM中的应用

本文总结视觉SLAM中常用的光流法与直接法 1、Lucas-Kanade光流法 相机所拍摄到的图像随相机视角的变化而变化&#xff0c;这种变化也可以理解为图像中像素的反向移动。“光流”&#xff08;Optical Flow&#xff09;是指通过分析连续图像帧来估计场景中像素或特征点的运动的技…

SSE (Server-Sent Events) 服务器实时推送详解

Server-Sent Events 一、什么是 SSE ?二、SSE 的工作原理三、SSE 的基本配置1.HTTP 请求和响应头设置2.SSE 字段介绍3.SSE 事件数据流示例 四、SseEmitter 的基本配置1.SseEmitter 介绍及用法2.使用 SseEmitter 示例11)编写核心 SSE Client2)编写 Controller3)前端接收与处理 …

AI大模型:重塑软件开发流程的优势、挑战及应对策略

随着人工智能技术的飞速发展&#xff0c;AI大模型正在深刻影响着软件开发的各个环节。本文将详细分析AI在软件开发流程中带来的优势&#xff0c;面临的挑战&#xff0c;以及开发者的应对策略。 一、AI在软件开发流程中的优势 提高开发效率 AI大模型能够自动生成高质量的代码…

《重学Java设计模式》之 原型模式

原型模式主要解决的问题就是创建重复对象&#xff0c;而这部分对象内容本身比较复杂&#xff0c;生成过程可能从库或者RPC接口中获取数据的耗时较长&#xff0c;因此采用克隆的方式节省时间。 案例&#xff1a;上机考试抽题&#xff0c;要求打乱题目、答案数据 工厂结构 选择题…

Java项目实战II基于Spring Boot的药店管理系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着医疗行业的快速发展和人们对健康需…

html+js+css实现拖拽式便签留言

前些日子在网上冲浪时&#xff0c;看到一个便签式留言墙&#xff0c;让人耳目一新。心想这个看着不错&#xff0c;额想要。于是便开始搜寻是否有相应开源插件&#xff0c;想将其引入自己的博客中。但是搜寻了一圈&#xff0c;都没有符合预期的,要么功能不符合。有的功能符合&am…

模型压缩相关技术概念澄清(量化/剪枝/知识蒸馏)

1.模型压缩背景 随着深度学习技术的不断发展&#xff0c;模型的规模和复杂度也随之增加。大型模型往往具有更高的精度和更强的泛化能力&#xff0c;但在实际应用中&#xff0c;模型的大小却成为了一个制约因素。模型体积过大会导致存储、传输和推理速度等方面的瓶颈&#xff0…

Linux入门:环境变量与进程地址空间

一. 环境变量 1. 概念 1️⃣基本概念&#xff1a; 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#x…