检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
DataParallel进行单机多卡训练的优缺点 代码简单:仅需修改一行代码。 通信瓶颈 :负责reducer的GPU更新模型参数后分发到不同的GPU,因此有较大的通信开销。 GPU负载不均衡:负责reducer的GPU需要负责汇总输出、计算损失和更新权重,因此显存和使用率相比其他GPU都会更高。
准备数据 本教程使用到的训练数据集是Alpaca数据集。您也可以自行准备数据集。 数据集下载 本教程使用Alpaca数据集,数据集的介绍及下载链接如下。 Alpaca数据集是由OpenAI的text-davinci-003引擎生成的包含52k条指令和演示的数据集。这些指令数据可以
准备权重 获取对应模型的权重文件,获取链接参考表1。 权重文件下载有如下几种方式,但不仅限于以下方式: 方法一:网页下载:通过单击表格中权重文件获取地址的访问链接,即可在模型主页的Files and Version中下载文件。 方法二:huggingface-cli:huggingface-cli是
准备镜像 镜像方案说明 ECS获取和上传基础镜像 ECS中构建新镜像(可选) 父主题: 准备工作
准备资源 创建专属资源池 本文档中的模型运行环境是ModelArts Standard,用户需要购买专属资源池,具体步骤请参考创建资源池。 资源规格要求: 计算规格:用户可参考表1。 硬盘空间:至少200GB。 昇腾资源规格: Ascend: 1*ascend-snt9b表示昇腾单卡。
准备Notebook(可选) 本步骤为可选操作。ModelArts Notebook云上云下,无缝协同,更多关于ModelArts Notebook的详细资料请查看开发环境介绍。 本案例中,如果用户有自定义开发的需要,比如查看和编辑代码、数据预处理、权重转换等操作,可通过Note
表示代码根据OBS存储方式运行。 MODEL_NAME llama2-70b 对应模型名称。请根据实际修改。 FINETUNING_TYPE lora 表示表示训练策略。可选择值: full:全参微调 lora:lora微调 CODE_DIR /home/ma-user/AscendFactory 【可选】工作目录
中的1*节点 & 4*Ascend表示单机4卡,以此类推。 表1 不同模型推荐的参数与NPU卡数设置 序号 支持模型 支持模型参数量 训练策略类型 文本序列长度(SEQ_LEN) 并行参数设置 micro batch size (MBS) 规格与节点数 1 llama2 llama2-7b
镜像方案说明 准备大模型训练适用的容器镜像,包括获取镜像地址,了解镜像中包含的各类固件版本,配置Standard物理机环境操作。 基础镜像地址 本教程中用到的训练的基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础容器镜像地址 镜像用途 镜像地址 配套版本 基础镜像 swr
训练tokenizer文件说明 在训练开始前,需要针对模型的tokenizer文件进行修改,不同模型的tokenizer文件修改内容如下,您可对tokenizer文件进行编辑。 LLama2模型 在当前的软件版本中,由于transformers的版本过高(transformers==4
ECS获取和上传基础镜像 Step1 创建ECS 下文中介绍如何在ECS中构建一个训练镜像,请参考ECS文档购买一个Linux弹性云服务器。完成网络配置、高级配置等步骤,可根据默认选择,或进行自定义。创建完成后,单击“远程登录”,后续安装Docker等操作均在该ECS上进行。 注
显存溢出错误 在训练过程中,常见显存溢出报错,示例如下: RuntimeError: NPU out of memory. Tried to allocate 1.04 GiB (NPU 4; 60.97 GiB total capacity; 56.45 GiB already
网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 图1 网卡名称错误 export GLOO_SOCKET_IFNAME=enp67s0f5
ECS中构建新镜像(可选) 通过ECS获取和上传基础镜像获取基础镜像后,可通过ECS运行Dockerfile文件,在镜像的基础上构建新镜像。 Step1 构建新ModelArts Standard训练镜像 获取模型软件包,并上传到ECS的目录下(可自定义路径),获取地址参考表1。
执行训练任务(推荐) 新的训练方式将统一管理训练日志、训练结果和训练配置,使用yaml配置文件方便用户根据自己实际需求进行修改。推荐用户使用该方式进行训练。 权重文件支持以下组合方式,用户根据自己实际要求选择: 训练stage 不加载权重 增量训练:加载权重,不加载优化器(默认开启)
断点续训和故障快恢说明 相同点 断点续训(Checkpointing)和故障快恢都是指训练中断后可从训练中一定间隔(${save-interval})保存的模型(包括模型参数、优化器状态、训练迭代次数等)继续训练恢复,而不需要从头开始。 不同点 断点续训:可指定加载训练过程中生成
服务,请配置合理的“部署超时时间”,避免尚未启动完成被认为超时而导致部署失败。 添加环境变量 部署服务时,增加如下环境变量,会将负载均衡的请求亲和策略配置为集群亲和,避免未就绪的服务实例影响预测成功率。 MODELARTS_SERVICE_TRAFFIC_POLICY: cluster
导入模型账号为子账号,主账号没有给子账号赋予模型相关权限。 权限说明请参见:策略及授权项说明; 处理方法 确认是账号欠费冻结,补交对应欠费,等待账号解冻即可; 如果是导入模型没有对应的工作权限,可以参考创建自定义策略对相应账号赋予导入模型相关权限。 父主题: 模型管理
依赖和委托 功能依赖 功能依赖策略项 您在使用ModelArts的过程中,需要和其他云服务交互,比如需要在提交训练作业时选择指定数据集OBS路径和日志存储OBS路径。因此管理员在为用户配置细粒度授权策略时,需要同时配置依赖的权限项,用户才能使用完整的功能。 如果您使用根用户(与账
主GPU(逻辑序号为0)收集各GPU的输出,汇总后计算损失 分发损失,各GPU各自反向传播梯度 主GPU收集梯度并更新参数,将更新后的模型参数分发到各GPU 具体流程图如下: 图1 单机多卡数据并行训练 代码改造点 模型分发:DataParallel(model) 完整代码由于代码变动较少,此处进行简略介绍。