一、硬件环境与依赖配置

本教程基于昇腾计算平台进行训练,具体硬件配置如下:

8卡 Ascend 910B2 NPU

内存 >= 512GB

存储 >= 1TB NVMe SSD

软件环境要求:

Python 3.10

MindSpore 2.4.10

CANN 8.0.RC3.beta

固件与驱动版本 24.1.RC3

为简化环境配置,我们提供了预配置好的 Docker 镜像:

拉取训练镜像

docker pull swr.cn-central-221.ovaijisuan.com/mindformers/llm_mindspore:latest

配置环境变量

export IMAGE=swr.cn-central-221.ovaijisuan.com/mindformers/llm_mindspore:latest export CONTAINER=llm_training

启动容器

docker run -itd -u root \ --ipc=host --net=host \ --privileged \ --device=/dev/davinci[0-7] \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/Ascend:/usr/local/Ascend \ -v /etc/ascend_install.info:/etc/ascend_install.info \ --name $CONTAINER \ $IMAGE

二、数据准备

训练需要两个核心组件:

  1. 预训练语料库(WikiText-2)

  2. Tokenizer 分词模型

创建工作目录

mkdir -p /workspace/data cd /workspace/data

下载并处理数据集

wget https://ascend-repo-modelzoo.obs.cn-east-2.myhuaweicloud.com/MindFormers/dataset/wikitext-2/wikitext-2-v1.zip
unzip wikitext-2-v1.zip

获取分词模型

wget https://huggingface.co/deepseek-ai/DeepSeek-V3/resolve/main/tokenizer.json

数据预处理

python tools/preprocess.py \--input data/wiki.train.tokens \--output data/wiki_4096 \--tokenizer tokenizer.json \--seq-length 4096 \--workers 4

三、模型配置

我们基于 1B 参数量的配置进行训练,核心配置包括:

1. 模型架构配置

model_config: hidden_size: 2048 num_layers: 3 num_heads: 8 intermediate_size: 6144

2. 混合专家系统(MoE)配置

    moe_config: expert_num: 16 first_k_dense_replace: 1

    3. 分布式训练配置

    parallel_config: data_parallel: 2 model_parallel: 2 pipeline_stage: 2 expert_parallel: 2 micro_batch_num: 4

    四、启动训练

    执行以下命令开始训练:

    cd /workspace bash scripts/train.sh \ --config configs/llm_1b.yaml \ --data_path data/wiki_4096

    训练日志将保存在 output/logs 目录下。由于启用了流水线并行,loss 值仅会在最后一张卡(worker-7)的日志中显示:

    tail -f output/logs/worker_7.log

    模型 checkpoint 会定期保存在 output/ckpts 目录。

    五、注意事项

    1. 确保系统内存充足,推荐预留50%以上空闲内存

    2. 定期检查显存占用情况,避免 OOM

    3. 如遇到命令行换行符问题,可尝试去除反斜杠后在单行执行

    4. 训练初期 loss 波动较大属于正常现象,建议训练超过1000步再评估效果

    六、参考资源

    MindSpore 官方文档

    预训练模型仓库

    详细配置说明

    Logo

    鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

    更多推荐