华为昇腾300T A2训练、微调Qwen过程,带保姆式命令,麒麟操作系统+鲲鹏CPU
在 华为昇腾 Atlas 300T A2 训练卡 + 鲲鹏 CPU + 麒麟 V10 SP1 操作系统 环境下,从零开始训练/微调 Qwen-1.8B 小模型 的完整保姆级操作指南。所有命令均基于官方 CANN 8.0+ 和 PyTorch Ascend 生态,适配国产信创栈。
✅ 环境前提确认
项目
| 要求
| 服务器
| 华为 TaiShan 2280(鲲鹏 920)或 Atlas 800T A2
| NPU
| Atlas 300T A2(Ascend 910B) ×1 或多卡
| OS
| 麒麟 V10 SP1(内核 ≥ 4.19.90-17.ky10.aarch64)
| 用户
| 已创建 HwHiAiUser(参考 [2])
|
Bash
# 检查内核版本(必须匹配)
uname -r
# 示例输出:4.19.90-17.ky10.aarch64
# 检查NPU状态
npu-smi info
# 应显示 Ascend 910B 卡状态为 "OK"
若未安装驱动,请先按 [2] 安装 CANN 8.0+(含驱动、固件、Toolkit)。
第一步:创建专用用户并配置环境
bash
# 创建运行用户(若未创建)
sudo groupadd HwHiAiUser
sudo useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
# 切换到该用户
su – HwHiAiUser
第二步:安装 Python 与依赖(麒麟 ARM 版)
bash
# 安装系统依赖(麒麟使用 yum)
sudo yum install -y gcc gcc-c++ make cmake zlib-devel openssl-devel sqlite-devel \
libffi-devel unzip pciutils net-tools blas-devel openblas-devel gfortran
# 安装 Python 3.9(麒麟源自带)
sudo yum install -y python39 python39-pip
# 设置软链接
sudo ln -sf /usr/bin/python3.9 /usr/bin/python3
sudo ln -sf /usr/bin/pip3.9 /usr/bin/pip3
# 升级 pip 并安装基础包
pip3 install --upgrade pip
pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil \
protobuf scipy requests absl-py
第三步:安装 CANN 8.0+(已预装可跳过)
假设 CANN 已安装在 /usr/local/Ascend,版本 ≥ 8.0.RC1。
bash
# 配置环境变量(建议写入 ~/.bashrc)
echo 'export ASCEND_HOME=/usr/local/Ascend' >> ~/.bashrc
echo 'export PATH=$ASCEND_HOME/ascend-toolkit/latest/bin PATH' >> ~/.bashrc
echo 'export PYTHONPATH=$ASCEND_HOME/ascend-toolkit/latest/python/site-packages PYTHONPATH' >> ~/.bashrc
source ~/.bashrc
# 验证 CANN
python3 -c "import acl; print('CANN OK')"
第四步:安装 PyTorch Ascend(关键!)
bash
# 安装 torch_npu(适配 CANN 8.0 + 麒麟 ARM)
pip3 install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torch_npu==2.1.0.post1 --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 验证 NPU 可见性
python3 -c "
import torch
import torch_npu
print('NPU count:', torch.npu.device_count())
print('Current device:', torch.npu.current_device())
"
# 应输出:NPU count: 1(或多卡数量)
⚠️ 注意:必须使用 torch_npu 2.1.0+,旧版不支持 Qwen 的 RoPE 算子。
第五步:下载 Qwen-1.8B 模型(使用 ModelScope)
bash
# 安装 modelscope
pip3 install modelscope
# 创建目录
mkdir -p ~/qwen-workspace/{models,data,output}
# 下载模型(国内高速)
python3 -c "
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen-1_8B-Chat', cache_dir='./qwen-workspace/models')
print(f'Model saved to: {model_dir}')
"
模型路径示例:/home/HwHiAiUser/qwen-workspace/models/qwen/Qwen-1_8B-Chat
第六步:准备微调数据集(以 Alpaca 格式为例)
bash
# 创建训练数据(JSONL 格式)
cat > ~/qwen-workspace/data/train.jsonl |