AI开发平台MODELARTS-环境准备

时间:2024-01-26 16:03:12

环境准备

  1. 开通裸金属服务器资源(请见DevServer资源开通),并在在裸金属服务器上搭建迁移环境请见裸金属服务器环境配置指导
  2. 启动华为云预置镜像环境,本案例使用的贵阳一的镜像环境。

    #shell
    docker run --privileged --name chatglm-test --cap-add=SYS_PTRACE -e ASCEND_VISIBLE_DEVI CES =0-7 -u=0 swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_1_11_ascend:pytorch_1.11.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b-20231107190844-50a1a83  bash

    此处“-e ASCEND_VISIBLE_DEVICES” 用于指定容器中启动的NPU device,0-7表示从0-7号卡,请按照实际NPU卡情况修改。

  3. 安装相关依赖库。

    ChatGLM-6B是完全基于Python开发的模型,训练之前需要事先安装与之依赖的Python库。其中部分依赖库可以使用pip工具安装,执行如下脚本:

    #shell
    pip install rouge_chinese nltk jieba sentencepiece datasets==2.12.0 fsspec==2022.11.0 transformers==4.29.2 deepspeed==0.9.2

    与昇腾NPU适配的依赖库有torch_npu,多卡训练也需要deepspeed_npu,本文适配的版本如下:deepspeed_npu(0.1),torch_npu(1.11)。其中torch_npu 在镜像环境中已经预置安装,deepspeed_npu 安装配置详见 deepspeed_npu

    此外, transformers 执行需要高版本的scikit-learn、acclerate,详见常见问题5常见问题6。此处执行升级命令:

    #shell
    pip install scikit-learn accelerate --upgrade

    transformers库的training_args.py有部分操作是适配的cuda设备,详见常见问题7,本文使用昇腾ModelZoo的适配版本脚本替换(下载链接)。

  4. 下载ChatGLM-6B源代码、模型权重与数据集到容器环境。

    • 源代码、模型权重使用的清华官方在Github和Hugging Face开源的版本,源代码适配的main分支,权重当前使用 1d240ba 固定分支。其它分支版本理论上也可以进行迁移工作,不过注意可能由于权重不同原因最后训练结果也不太一致,此处建议您使用固定分支进行迁移。
    • 数据集Firefly为本文用于多卡训练使用的数据集,数据集ADGEN为ChatGLM-6B ptuning训练适配的数据集,如果您运行环境为单卡环境下载数据集ADGEN。

support.huaweicloud.com/bestpractice-modelarts/modelarts_10_4001.html