当前位置: 首页 > article >正文

基于昇腾MindSpeed训练加速库玩转智谱GLM-4-0414模型

智谱GLM-4-0414模型提供32B和9B两种参数规模,涵盖基础、推理和沉思等多种模型类型,均基于 MIT 许可协议开放。其中,推理模型 GLM-Z1-32B-0414 性能卓越,与 DeepSeek-R1 等领先模型相当,实测推理速度达每秒200个Tokens。此前,魔乐社区已推出支持昇思MindSpore和昇腾MindIE的版本。如今,昇腾MindSpeed训练加速库开箱即用的版本也已上线,共包含6个模型,欢迎开发者们下载体验!

🔗魔乐社区模型下载链接:

https://modelers.cn/models/Models_Ecosystem/GLM-Z1-Rumination-32B-0414

https://modelers.cn/models/Models_Ecosystem/GLM-Z1-9B-0414

https://modelers.cn/models/Models_Ecosystem/GLM-Z1-32B-0414

https://modelers.cn/models/Models_Ecosystem/GLM-4-9B-0414

https://modelers.cn/models/Models_Ecosystem/GLM-4-32B-Base-0414

https://modelers.cn/models/Models_Ecosystem/GLM-4-32B-0414

不多说,直接进入实践环节。接下来,我们将基于昇腾MindSpeed训练加速库部署 GLM-Z1-9B-0414 模型,并进行训练和推理操作。

NO.1 环境配置

1.1 硬件要求

GLM-Z1-9B-0414的参考硬件配置如下, 本文将以A2 单机8卡训练和推理为例进行介绍:

类型

硬件

配置

全参训练

NPU

8 x Ascend NPUs

1.2 MindSpeed-LLM仓库部署

MindSpeed-LLM的主要依赖配套如下表,安装步骤参考安装指导:

https://gitee.com/ascend/MindSpeed-LLM/blob/master/docs/features/install_guide.md 

依赖软件

版本

CANN Toolkit(开发套件)

商发版本

CANN Kernel(算子包)

CANN NNAL(Ascend Transformer Boost加速库)

Python

>=3.10

PyTorch

2.5.1

torch_npu插件

2.5.1

apex

商发版本

仓库拉取

git clone https://gitee.com/ascend/MindSpeed-LLM.gitgit clone https://github.com/NVIDIA/Megatron-LM.gitcd Megatron-LMgit checkout core_r0.8.0cp -r megatron ../MindSpeed-LLM/cd ..cd MindSpeed-LLMmkdir logsmkdir datasetmkdir ckpt

环境搭建​​​​​​​

# python3.10conda create -n test python=3.10conda activate test # 安装 torch 和 torch_npu,注意要选择对应python版本、x86或arm的torch、torch_npu及apex包pip install torch-2.5.1-cp310-cp310m-manylinux2014_aarch64.whlpip install torch_npu-2.5.1*-cp310-cp310m-linux_aarch64.whl # apex for Ascend 参考 https://gitee.com/ascend/apex# 建议从原仓编译安装 # 安装加速库git clone https://gitee.com/ascend/MindSpeed.gitcd MindSpeed# checkout commit from MindSpeed core_r0.8.0git checkout 2c085cc9pip install -r requirements.txtpip3 install -e .cd ../MindSpeed-LLM  # 安装其余依赖库pip install -r requirements.txt

NO.2 权重/数据准备

2.1 权重转换

权重下载

从魔乐社区或者HuggingFace下载权重和配置文件。

魔乐下载链接(享国内加速下载):https://modelers.cn/models/zhipuai/GLM-Z1-9B-0414

权重转换

MindSpeed-LLM提供脚本将权重转换为mcore权重,用于训练、推理、评估等任务:

https://gitee.com/lliilil/MindSpeed-LLM/blob/master/tests/0day/glm-z1-9b-0414/ckpt_convert_glm4_z1_9b_0414_hf2mcore.sh

使用方法如下,请根据实际需要的TP/PP等切分策略和权重路径修改权重转换脚本。​​​​​​​

cd MindSpeed-LLMbash tests/0day/glm-z1-9b-0414/ckpt_convert_glm4_z1_9b_0414_hf2mcore.sh

2.2 数据预处理

MindSpeed-LLM提供脚本进行数据集处理:

https://gitee.com/lliilil/MindSpeed-LLM/blob/master/tests/0day/glm-z1-9b-0414/data_convert_glm4_z1_9b_0414_pretrain.sh 

使用方法如下,请根据实际需要修改以下参数​​​​​​​

cd MindSpeed-LLMbash tests/0day/glm-z1-9b-0414/data_convert_glm4_z1_9b_0414_pretrain.sh

参数名

含义

--input

数据集路径

--tokenizer-name-or-path

模型tokenizer目录

--output-prefix

数据集处理完的输出路径及前缀名

NO.3 训练​​​​​​​

cd MindSpeed-LLMbash tests/0day/glm-z1-9b-0414/pretrain_glm4_z1_9b_0414_8k_ptd.sh

用户需要根据实际情况修改脚本中以下变量

变量名

含义

MASTER_ADDR

多机情况下主节点IP

NODE_RANK

多机下,各机对应节点序号0-8

CKPT_SAVE_DIR

训练中权重保存路径

DATA_PATH

数据预处理后的数据路径

TOKENIZER_PATH

tokenizer目录

CKPT_LOAD_DIR

权重转换保存的权重路径,为初始加载的权重,如无初始权重则随机初始化

NO.4 推理​​​​​​​

cd MindSpeed-LLMbash tests/0day/glm-z1-9b-0414/generate_glm4_z1_9b_0414_ptd.sh

用户需要根据实际情况修改脚本中以下变量

变量名

含义

MASTER_ADDR

多机情况下主节点IP

NODE_RANK

多机下,各机对应节点序号0-8

CHECKPOINT

训练保存的权重路径

TOKENIZER_PATH

tokenizer目录

NO.5 评估​​​​​​​

cd MindSpeed-LLMbash tests/0day/glm-z1-9b-0414/evaluate_glm4_z1_9b_0414_ptd.sh

用户需要根据实际情况修改脚本中以下变量

变量名

含义

MASTER_ADDR

多机情况下主节点IP

NODE_RANK

多机下,各机对应节点序号0-8

CKPT_SAVE_DIR

训练中权重保存路径

DATA_PATH

数据预处理后的数据路径

TOKENIZER_PATH

tokenizer目录

CKPT_LOAD_DIR

权重转换保存的权重路径,为初始加载的权重,如无初始权重则随机初始化

欢迎体验


欢迎大家下载体验GLM-4-0414,也欢迎广大开发者在模型评论区留言交流!

http://www.lryc.cn/news/2394773.html

相关文章:

  • 【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南
  • Spring Boot微服务架构(九):设计哲学是什么?
  • GRCh38版本染色体位置转换GRCh37(hg19)
  • TC/BC/OC P2P/E2E有啥区别?-PTP协议基础概念介绍
  • 解决微信小程序中 Flex 布局下 margin-right 不生效的问题
  • Kafka数据怎么保障不丢失
  • 使用HTTPS进行传输加密
  • AI书签管理工具开发全记录(八):Ai创建书签功能实现
  • X-plore v4.43.05 强大的安卓文件管理器-MOD解锁高级版 手机平板/电视TV通用
  • 使用多Agent进行海报生成的技术方案及评估套件-P2P、paper2poster
  • Redis--缓存工具封装
  • python:在 PyMOL 中如何查看和使用内置示例文件?
  • SpringCloud——Docker
  • 机器学习:欠拟合、过拟合、正则化
  • 运用集合知识做斗地主案例
  • 《HelloGitHub》第 110 期
  • 使用 Shell 脚本实现 Spring Boot 项目自动化部署到 Docker(Ubuntu 服务器)
  • day023-网络基础与OSI七层模型
  • SpringAI系列4: Tool Calling 工具调用 【感觉这版本有bug】
  • 机器人--里程计
  • 设计模式——原型设计模式(创建型)
  • react库:class-variance-authority
  • 通过mqtt 点灯
  • 随笔笔记记录5.28
  • 大数据-273 Spark MLib - 基础介绍 机器学习算法 决策树 分类原则 分类原理 基尼系数 熵
  • 基于 Spring Boot + Vue 的墙绘产品展示交易平台设计与实现【含源码+文档】
  • 【机器学习】支持向量机
  • ONLYOFFICE深度解锁系列.4-OnlyOffice客户端原理-真的不支持多端同步
  • LLMTIME: 不用微调!如何用大模型玩转时间序列预测?
  • 2.从0开始搭建vue项目(node.js,vue3,Ts,ES6)