活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      一体化计算加速平台·异构计算

      一体化计算加速平台·异构计算

        • 产品动态
        • 产品介绍
        • 产品定义
        • 产品优势
        • 功能特性
        • 应用场景
        • 术语解释
        • 规格
        • 使用限制
        • 计费说明
        • 与其他服务的关系
        • 快速入门
        • 准备工作
        • 主账号使用流程
        • 子账号使用流程
        • 用户指南
        • 权限管理
        • 资源
        • 资源组
        • 新建资源组
        • 资源组列表
        • 资源组详情
        • 删除资源组
        • 续订资源组
        • 节点
        • 新增节点
        • 纳管节点
        • 节点列表
        • 节点详情
        • 节点解绑
        • 节点移除
        • 节点远程登录
        • 节点批量管理
        • 节点标签管理
        • 队列
        • 创建队列
        • 管理队列
        • 自定义脚本
        • 新建脚本
        • 脚本列表
        • 运行脚本
        • 脚本执行记录
        • 数据准备
        • 创建存储挂载
        • 管理存储挂载
        • 创建k8s共享存储
        • 管理k8s共享存储
        • 一键检测
        • 服务器检测
        • RDMA网络性能检测
        • 通讯库性能检测
        • 检测历史
        • 工作空间
        • 工作空间管理
        • 数据集
        • 镜像仓库
        • 预置镜像
        • 自定义镜像
        • 训练
        • 创建自定义训练任务
        • 管理自定义训练任务
        • 查看自定义训练任务详情
        • 查看训练任务日志
        • 训练任务监控
        • 训练任务生命周期
        • 管理训练容器环境变量
        • 监控审计
        • 资源监控
        • HPFS监控
        • RoCE监控
        • IB网络监控
        • AI加速
        • CTCCL优化套件
        • CTCCL介绍
        • 安装、升级CTCCL库
        • 启动CTCCL容器
        • 使用CTCCL容器
        • 附:CTCCL环境变量
        • CTFlashCkpt加速包
        • CTFlashCkpt介绍
        • 安装 CTFlashCkpt
        • 使用 CTFlashCkpt
        • CT-LLM-Inference超长序列生成软件包
        • CT-LLM-Inference介绍
        • CT-LLM-Inference安装与使用
        • 组件说明
        • 组件说明
        • 最佳实践
        • 如何上传数据到ZOS存储
        • 如何上传数据到HPFS存储并使用
        • 如何上传镜像到一体化计算加速平台·异构计算的私有镜像仓库
        • 使用自定义镜像提交训练的最佳实践- 昇腾+Pytorch
        • 断点续训练
        • 常见问题
        • 资源类
        • 数据类
        • 训练类
        • 计费类
        • 其他
        • 相关协议
        • 产品服务协议
        • 服务等级协议
        • API参考
        • API概览
        • 概述
        • 终端节点
        • 状态码
        • 概览
        • 如何调用API
        • 认证鉴权
        • 构造请求
        • API
        • 2023-08-25
        • 镜像详情
        • 镜像列表
        • 镜像仓库列表
        • 获取节点标签
        • 设置节点标签
        • 获取用户所有资源组信息
        • 获取队列信息列表
        • 删除节点标签
        • 区域列表(下拉列表)
        • 历史监控指标查询
        • 纳管节点
        • 节点解绑资源组
        • 获取资源组使用信息
        • 查询监控数据统计值(平均值)
        • 历史监控数据查询
        • 节点列表
        • 查询监控数据统计值(加和值)
          无相关产品

          本页目录

          帮助中心一体化计算加速平台·异构计算最佳实践使用自定义镜像提交训练的最佳实践- 昇腾+Pytorch
          使用自定义镜像提交训练的最佳实践- 昇腾+Pytorch
          更新时间 2025-01-14 17:23:44
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-01-14 17:23:44
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文为您介绍昇腾Pytorch框架的最佳实践。
          说明

          一体化计算机加速平台·异构计算主账号拥有所有功能的操作权限,子账号仅可在被授权的工作空间内操作。

          创建和使用一体化计算加速平台·异构计算之前,需要先注册天翼云门户的账号。如果已拥有天翼云的账号,可登录后直接使用一体化计算加速平台·异构计算。

          准备工作

          创建扩展资源组

          资源组是运行所需要的资源组合,资源组内可以有不同规格的节点。根据自己的需求选择创建“标准资源组”或者“扩展资源组”。本文主要介绍依赖扩展资源组进行训练。

          在左侧导航栏选择“资源>资源组”,进入“扩展资源组”页面,点击“创建资源组”按钮,选择“扩展资源组”。具体创建步骤参见创建资源组。

          数据上传

          创建存储挂载

          说明

          1.存储挂载和k8s共享存储的区别:

          存储挂载是将HPFS/ZOS挂载到物理机上;k8s共享存储用于提交训练任务时挂载到Pod容器上。

          2.大规模训练时推荐使用HPFS高性能存储。

          在左侧导航栏选择“数据准备>存储挂载”进入存储挂载列表页面,点击“创建存储挂载”按钮。

          根据实际情况填写相关信息,将ZOS挂载到绑定了eip的物理机节点上,然后点击创建。具体操作参见创建存储挂载。

          上传数据到HPFS/ZOS

          登录已挂载HPFS/ZOS、并且绑定了EIP可访问公网的物理机节点,下载并拷贝数据到HPFS/ZOS目录。具体步骤参见如何上传数据到HPFS存储并使用或如何上传数据到ZOS存储。

          可使用以下示例数据,并与下文模型训练-镜像上传中的示例镜像配套使用。

          #下载
          wget https://huabei-2.zos.ctyun.cn/huabei2-cwai-images/ascend/hdk24.1.rc2/ModelLink-1.0.RC2.zip
          
          #校验文件md5sum
          md5sum ModelLink-1.0.RC2.zip
          #ea46cd5dd7924ca8acbcc61d34a47d62  ModelLink-1.0.RC2.zip
          
          #拷贝到hpfs存储(假设hpfs挂载路径为/mnt/cwai/hpfs)
          cp ModelLink-1.0.RC2.zip /mnt/cwai/hpfs
          
          #解压
          cd /mnt/cwai/hpfs
          unzip ModelLink-1.0.RC2.zip
          

          创建k8s共享存储

          说明

          1.存储挂载和k8s共享存储的区别:

          存储挂载是将HPFS/ZOS挂载到物理机上;k8s共享存储用于提交训练任务时挂载到Pod容器上。

          2.大规模训练时推荐使用HPFS高性能存储。

          在左侧导航栏选择“数据准备>k8s共享存储”,点击“创建k8s共享存储”按钮。填写自定义名称,选择需要挂载的资源组,选择存储类型和开通的存储实例。具体操作参见创建k8s共享存储。

          注意

          此处创建的k8s共享存储是和资源组绑定的,如果有多个资源组,可以共享同一个HPFS/ZOS实例,但需要分别创建k8s共享存储。

          创建队列

          队列是资源组内部分资源配额的集合,一个资源组可创建多个队列。在运行训练任务时,通过将任务绑定到队列进行资源的排队和使用申请。

          点击左侧导航栏选择“资源>队列”,点击“创建队列”按钮,创建训练使用的队列。具体创建步骤参见创建队列。

          创建工作空间

          工作空间可实现项目资源隔离、多项目分开工作。工作空间的创建需要在队列创建操作之后。

          1. 在左侧导航栏选择“工作空间”进入工作空间列表页面,点击“创建工作空间”按钮。
          2. 完成“基础信息”和“关联资源”配置,点击“创建”即可完成工作空间。其中关联资源列表仅显示未关联其他工作空间的队列,若无队列资源可选择,可创建新队列或将目标队列与其他工作空间解绑后即可选择。
          3. 在工作空间列表可查看已创建的工作空间。具体请参见工作空间管理。

          模型训练

          镜像上传

          一体化计算加速平台·异构计算中镜像用于提供开发所需的环境。镜像仓库中提供预置镜像和自定义镜像两种能力。预置镜像即平台预先设置的完整镜像,可以在创建自定义训练时直接使用。自定义镜像即可上传本地自有镜像,上传完成后可在创建自定义训练任务时选择并使用。

          进入对应工作空间后,在左侧导航栏选择“镜像仓库>镜像列表”进入“自定义镜像”页面。在“自定义镜像”页面中点击“上传镜像”按钮进入上传镜像页面。

          在“上传镜像”页面单击“查看网络配置方法”可查看自定义镜像上传方法,也可通过最佳实践了解如何上传镜像到一体化计算加速平台·异构计算的私有镜像仓库。

          可使用以下示例的Llama2-7b镜像,并与上文准备工作-数据上传中的示例数据配套使用。

          获取实例的llama2-7b镜像文件

          #下载
          wget https://huabei-2.zos.ctyun.cn/huabei2-cwai-images/ascend/hdk24.1.rc2/ascend_modellink_1.0.rc2_cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64.zip
          
          #校验文件md5sum
          md5sum ascend_modellink_1.0.rc2_cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64.zip
          #20b766a13bc58c5414a44abd626938b3  ascend_modellink_1.0.rc2_cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64.zip
          #解压
          unzip ascend_modellink_1.0.rc2_cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64.zip
          
          #加载
          docker load -i ascend_modellink_1.0.rc2_cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64
          
          #docker images输出如下(校验IMAGE ID是否为220f023c7fe6):
          REPOSITORY                 TAG                                                                               IMAGE ID       CREATED         SIZE
          ascend_modellink_1.0.rc2  cann8.0.RC2-torch2.1.0-conda24.7.1-vscode4.12.0-ubuntu22.04-ssh-deactivate-arm64   220f023c7fe6   10 days ago     16.5GB
          

          示例镜像中conda环境py38_torch210的pip list列表见文末附录1,可以基于该镜像自行新建所需的conda环境,构建完成后上传到一体化计算加速平台·异构计算自定义镜像仓库中。

          提交训练任务

          创建自定义训练任务实现一键运行任务,且支持同一任务多次运行。

          1. 进入工作空间后在左侧导航栏选择“训练>自定义训练”进入训练任务列表页面,点击“新建训练任务”按钮。

          2. 在“新建训练任务”页面,配置训练任务参数信息,然后点击“保存任务”。具体参数说明可参见创建自定义训练任务。

            1. “镜像来源”选择上传的自定义镜像。

            2. “存储”选择“+HPFS共享存储”或“+ZOS共享存储”,挂载目录选择上述步骤创建的k8s共享存储,成功后会将目录挂载到容器内目录(默认为/data)。注:此处可选择的HPFS/ZOS共享存储名称范围是已选所属队列的资源组下的k8s共享存储。

            3. (单机多卡预训练)在启动命令栏中填入启动训练任务的执行命令。llama2-7b模型单机预训练脚本pretrain_llama2_7b_ptd_single_node.sh详见文末附录2。

              /bin/bash
              -c
              cd /data/ModelLink-1.0.RC2 && source activate py38_torch210 && chmod +x ./examples/llama2/pretrain_llama2_7b_ptd_single_node.sh && NNODES=1 TP=1 PP=2 GBS=256 MBS=1 TRAIN_STEPS=500 SAVE_INTERVAL=300 ./examples/llama2/pretrain_llama2_7b_ptd_single_node.sh
              
            4. (多机多卡预训练)在启动命令栏中填入启动训练任务的执行命令。llama2-7b多机预训练脚本pretrain_llama2_7b_ptd_multi_nodes.sh详见文末附录3。

              /bin/bash
              -c
              cd/data/ModelLink-1.0.RC2&&sourceactivatepy38_torch210&&chmod+x./examples/llama2/pretrain_llama2_7b_ptd_multi_nodes.sh&&NNODES=2TP=1PP=2GBS=512MBS=1TRAIN_STEPS=500SAVE_INTERVAL=300./examples/llama2/pretrain_llama2_7b_ptd_multi_nodes.sh
              
            5. “永久保存日志”开关开启后选择ZOS共享存储名称和路径可将训练日志永久保存至ZOS共享存储。注:此处可选择的ZOS共享存储名称范围是已选所属队列的资源组下的k8s共享存储。

            6. 确认所配置参数,点击“保存任务”。

          3. 保存创建的训练任务后,需在训练任务列表页面点击“运行”操作。支持多次运行。

            1. 点击“运行”后,训练任务开始调度资源、拉取容器镜像、下载代码目录、执行启动命令等动作。首次运行时耗时较长,请耐心等待,第二次及以后运行时无需再次拉取镜像。
            2. b.如果队列内资源不足会进入“排队中”状态等待资源分配。
          4. 运行后在训练任务列表页面点击任务名称,进入训练任务详情页查看运行的详细信息。单击运行情况的ID,可跳转详情页面查看本次运行的实例列表、TimeLine、监控、日志等信息。

            1. 训练任务资源监控查看可参见训练任务监控。
            2. 日志信息查看可参见查看训练任务日志。

          附录1 示例镜像conda环境py38_torch210安装列表

          # conda activate py38_torch210
          # pip list
          Package                       Version     Editable project location
          ----------------------------- ----------- -------------------------
          accelerate                    1.0.1
          aiohappyeyeballs              2.4.3
          aiohttp                       3.10.10
          aiosignal                     1.3.1
          apex                          0.1+ascend
          async-timeout                 4.0.3
          attrs                         24.2.0
          certifi                       2024.8.30
          charset-normalizer            3.4.0
          datasets                      3.1.0
          decorator                     5.1.1
          dill                          0.3.8
          einops                        0.8.0
          exceptiongroup                1.2.2
          filelock                      3.16.1
          frozenlist                    1.5.0
          fsspec                        2024.9.0
          huggingface-hub               0.26.2
          idna                          3.10
          iniconfig                     2.0.0
          Jinja2                        3.1.4
          MarkupSafe                    2.1.5
          mindspeed                     0.0.1       /root/MindSpeed
          mpmath                        1.3.0
          multidict                     6.1.0
          multiprocess                  0.70.16
          networkx                      3.1
          ninja                         1.11.1.1
          numpy                         1.24.4
          packaging                     24.1
          pandas                        2.0.3
          peft                          0.7.1
          pillow                        10.4.0
          pip                           24.2
          pluggy                        1.5.0
          propcache                     0.2.0
          protobuf                      5.28.3
          psutil                        6.1.0
          pyarrow                       17.0.0
          pybind11                      2.13.6
          pytest                        8.3.3
          python-dateutil               2.9.0.post0
          pytz                          2024.2
          PyYAML                        6.0.2
          regex                         2024.11.6
          requests                      2.32.3
          safetensors                   0.4.5
          scipy                         1.10.1
          sentencepiece                 0.2.0
          setuptools                    75.1.0
          six                           1.16.0
          sympy                         1.13.3
          tiktoken                      0.7.0
          tokenizers                    0.15.2
          tomli                         2.0.2
          

          附录2 单机训练脚本

          ModelLink-1.0.RC2/examples/llama2/pretrain_llama2_7b_ptd_single_node.sh

          #!/bin/bash
          
          export CUDA_DEVICE_MAX_CONNECTIONS=1
          export NPU_ASD_ENABLE=0
          export HCCL_CONNECT_TIMEOUT=1200
          export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
          export MULTI_STREAM_MEMORY_REUSE=1
          source /usr/local/Ascend/ascend-toolkit/set_env.sh
          
          #从平台页面环境变量传入
          NNODES=$(echo $NNODES)
          TP=$TP
          PP=$PP
          MBS=$MBS
          GBS=$GBS
          TRAIN_STEPS=$TRAIN_STEPS
          SAVE_INTERVAL=$SAVE_INTERVAL
          
          GPUS_PER_NODE=8
          MASTER_ADDR=localhost
          MASTER_PORT=6000
          NODE_RANK=0
          WORLD_SIZE=$(($GPUS_PER_NODE*$NNODES))
          
          CKPT_SAVE_DIR="./ckpt/ckpt-llama2-7b-tp${TP}pp${PP}-${NNODES}nodes"
          DATA_PATH="./dataset/llama-2-7b-hf/alpaca_text_document"
          TOKENIZER_MODEL="./model_from_hf/llama-2-7b-hf/tokenizer.model"
          #CKPT_LOAD_DIR="your model ckpt path"
          
          LOG_DIR="./logs/cwai-pretrain-llama2-7b-tp${TP}pp${PP}-${NNODES}nodes-log"
          
          mkdir -p $LOG_DIR
          mkdir -p $CKPT_SAVE_DIR
          
          DISTRIBUTED_ARGS="
              --nproc_per_node $GPUS_PER_NODE \
              --nnodes $NNODES \
              --node_rank $NODE_RANK \
              --master_addr $MASTER_ADDR \
              --master_port $MASTER_PORT
          "
          
          GPT_ARGS="
              --tensor-model-parallel-size ${TP} \
              --pipeline-model-parallel-size ${PP} \
              --sequence-parallel \
              --num-layers 32 \
              --hidden-size 4096 \
              --ffn-hidden-size 11008 \
              --num-attention-heads 32 \
              --tokenizer-type Llama2Tokenizer \
              --tokenizer-model ${TOKENIZER_MODEL} \
              --seq-length 4096 \
              --max-position-embeddings 4096 \
              --micro-batch-size $MBS \
              --global-batch-size $GBS \
              --make-vocab-size-divisible-by 1 \
              --lr 1.25e-6 \
              --train-iters $TRAIN_STEPS \
              --lr-decay-style cosine \
              --untie-embeddings-and-output-weights \
              --disable-bias-linear \
              --attention-dropout 0.0 \
              --init-method-std 0.01 \
              --hidden-dropout 0.0 \
              --position-embedding-type rope \
              --normalization RMSNorm \
              --use-fused-rmsnorm \
              --swiglu \
              --use-flash-attn \
              --no-masked-softmax-fusion \
              --attention-softmax-in-fp32 \
              --min-lr 1.25e-7 \
              --weight-decay 1e-1 \
              --lr-warmup-fraction 0.01 \
              --clip-grad 1.0 \
              --adam-beta1 0.9 \
              --initial-loss-scale 65536 \
              --adam-beta2 0.95 \
              --no-gradient-accumulation-fusion \
              --no-load-optim \
              --no-load-rng \
              --use-distributed-optimizer \
              --use-fused-swiglu \
              --use-fused-rotary-pos-emb \
              --overlap-grad-reduce \
              --bf16 \
              --log-throughput
          "
          
          DATA_ARGS="
              --data-path $DATA_PATH \
              --split 100,0,0
          "
          
          OUTPUT_ARGS="
              --log-interval 1 \
              --save-interval $SAVE_INTERVAL \
              --eval-interval 10000 \
              --eval-iters 0 \
          "
          
          # Include "--load $CKPT_LOAD_DIR" in the torchrun command when performing continual Pre-training.
          torchrun $DISTRIBUTED_ARGS pretrain_gpt.py \
              $GPT_ARGS \
              $DATA_ARGS \
              $OUTPUT_ARGS \
              --distributed-backend nccl \
              --save $CKPT_SAVE_DIR \
              2>&1 | tee ${LOG_DIR}/pretrain_llama2_7b_tp${TP}pp${PP}_${NNODES}_nodes_${NODE_RANK}_${TRAIN_STEPS}iters.log
          

          附录3 多机训练脚本

          ModelLink-1.0.RC2/examples/llama2/pretrain_llama2_7b_ptd_multi_nodes.sh

          #!/bin/bash
          
          export CUDA_DEVICE_MAX_CONNECTIONS=1
          export NPU_ASD_ENABLE=0
          export HCCL_CONNECT_TIMEOUT=1200
          export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
          export MULTI_STREAM_MEMORY_REUSE=1
          source /usr/local/Ascend/ascend-toolkit/set_env.sh
          
          #从平台页面环境变量传入
          NNODES=$(echo $NNODES)
          TP=$TP
          PP=$PP
          MBS=$MBS
          GBS=$GBS
          TRAIN_STEPS=$TRAIN_STEPS
          SAVE_INTERVAL=$SAVE_INTERVAL
          
          # k8s pytorchJob自动生成分布式训练相关环境变量
          NODE_RANK=$(echo $RANK)
          MASTER_ADDR=$(echo $MASTER_ADDR)
          MASTER_PORT=$(echo $MASTER_PORT)
          GPUS_PER_NODE=8
          WORLD_SIZE=$(($GPUS_PER_NODE*$NNODES))
          
          CKPT_SAVE_DIR="./ckpt/ckpt-llama2-7b-tp${TP}pp${PP}-${NNODES}nodes"
          DATA_PATH="./dataset/llama-2-7b-hf/alpaca_text_document"
          TOKENIZER_MODEL="./model_from_hf/llama-2-7b-hf/tokenizer.model"
          #CKPT_LOAD_DIR="your model ckpt path"
          
          LOG_DIR="./logs/cwai-pretrain-llama2-7b-tp${TP}pp${PP}-${NNODES}nodes-log"
          
          mkdir -p $LOG_DIR
          mkdir -p $CKPT_SAVE_DIR
          
          DISTRIBUTED_ARGS="
              --nproc_per_node $GPUS_PER_NODE \
              --nnodes $NNODES \
              --node_rank $NODE_RANK \
              --master_addr $MASTER_ADDR \
              --master_port $MASTER_PORT
          "
          
          GPT_ARGS="
              --tensor-model-parallel-size ${TP} \
              --pipeline-model-parallel-size ${PP} \
              --sequence-parallel \
              --num-layers 32 \
              --hidden-size 4096 \
              --ffn-hidden-size 11008 \
              --num-attention-heads 32 \
              --tokenizer-type Llama2Tokenizer \
              --tokenizer-model ${TOKENIZER_MODEL} \
              --seq-length 4096 \
              --max-position-embeddings 4096 \
              --micro-batch-size ${MBS} \
              --global-batch-size ${GBS} \
              --make-vocab-size-divisible-by 1 \
              --lr 1.25e-6 \
              --train-iters $TRAIN_STEPS \
              --lr-decay-style cosine \
              --untie-embeddings-and-output-weights \
              --disable-bias-linear \
              --attention-dropout 0.0 \
              --init-method-std 0.01 \
              --hidden-dropout 0.0 \
              --position-embedding-type rope \
              --normalization RMSNorm \
              --use-fused-rmsnorm \
              --swiglu \
              --use-flash-attn \
              --no-masked-softmax-fusion \
              --attention-softmax-in-fp32 \
              --min-lr 1.25e-7 \
              --weight-decay 1e-1 \
              --lr-warmup-fraction 0.01 \
              --clip-grad 1.0 \
              --adam-beta1 0.9 \
              --initial-loss-scale 65536 \
              --adam-beta2 0.95 \
              --no-gradient-accumulation-fusion \
              --no-load-optim \
              --no-load-rng \
              --use-distributed-optimizer \
              --use-fused-swiglu \
              --use-fused-rotary-pos-emb \
              --overlap-grad-reduce \
              --bf16 \
              --log-throughput
          "
          
          DATA_ARGS="
              --data-path $DATA_PATH \
              --split 100,0,0
          "
          
          OUTPUT_ARGS="
              --log-interval 1 \
              --save-interval $SAVE_INTERVAL \
              --eval-interval 10000 \
              --eval-iters 0 \
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  如何上传镜像到一体化计算加速平台·异构计算的私有镜像仓库
          下一篇 :  断点续训练
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明