惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
The Cloudflare Blog
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
C
Check Point Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
V
V2EX
F
Fortinet All Blogs
B
Blog
大猫的无限游戏
大猫的无限游戏
N
Netflix TechBlog - Medium
B
Blog RSS Feed
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - 肥仔鱼Liam

天数智芯--天垓150S 华为泰山鲲鹏服务器实测 Cloud Data AI Manager 是一个用于管理、监控和操作企业级数据湖和大数据解决方案的全面平台。 1天支持智普 GLM-5.2:华为昇腾 910B双机推理保姆级教程(命令操作) 华为HUAWEI昇腾910B下千问Qwen3.6-27B的推理加速实践 Hadoop(CDH6、CDP7)在Qwen3.7大模型训练中的作用,(含部署、运行操作步骤) 【华为昇腾910B】在AI大模型推理速度与GPU显卡选择 (华为昇腾Ascend、鲲鹏Kunpeng)今天紧缩投资环境下计算软件企业的困境和应对策略 AI看图能力可能是“演出来的”:它在没看图时,也能答对80% GPUStack 在华为昇腾 800I A2 服务器上的保姆级部署指南 OpenClaw(养龙虾) +关于Hadoop hive的Skills(Cloudera CDH、CDP) 2026年OpenClaw(养龙虾)+ 钉钉对接:保姆级全链路操作指南 OpenClaw + 企业微信对接:2026年保姆级全链路操作指南 “AI+消费”:第四届北京人工智能产业创新发展大会----深度融合与场景重塑--全景洞察 中国信通院人工智能报告审查项目(AI大模型)专题汇报 智谱GLM-5 1 day适配华为昇腾(国产),744B模型单机高效推理,全量保姆配置过程 AI大模型时代:谁在摧毁2025年中国的企业软件产业?白嫖,开源,外包,招标,数科,AI... AI语言大模型时代 Cloudera CDP(华为CMP 鲲鹏版)对自有知识的保 张文宏:拒绝把ai引入医院病历系统 Cloudera CDH5、CDH6、CDP7现状及替代方案(附下载) 基于Hadoop生态构建的企业级大数据平台的排行榜 国内Cloudera CDH、CDP、Hadoop大数据平台的排行榜 Iceberg 在hadoop大数据数据湖领域这么火 AI手机的“简单替换陷阱”与Hadoop、Cloudera CDP 7大数据底座的关系探析 Hadoop 实战:从Hive、Impala(Cloudera CDH、CDP)海量数据到 AI 决策的落地方法 从海量数据到 AI 决策的落地方法 Hadoop大数据在2025-2026年和AI智能问数平台的规划与实践
华为昇腾300T A2训练、微调Qwen过程,带保姆式命令,麒麟操作...
肥仔鱼Liam · 2026-02-05 · via 博客园 - 肥仔鱼Liam

华为昇腾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 <<EOF

{"instruction": "用Python写一个快速排序", "input": "", "output": "def quicksort(arr): ..."}

{"instruction": "解释量子纠缠", "input": "", "output": "量子纠缠是..."}

EOF

实际使用时替换为你的业务数据,格式需与 transformers 兼容。

第七步:编写微调脚本(LoRA 微调,节省显存)

python

# 文件:~/qwen-workspace/finetune_qwen.py

import os

import torch

import torch_npu  # 必须导入以激活NPU后端

from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer

from peft import LoraConfig, get_peft_model

from datasets import Dataset

# === 关键:限制线程避免OpenBLAS冲突(麒麟ARM常见问题)===

os.environ["OPENBLAS_NUM_THREADS"] = "1"

os.environ["OMP_NUM_THREADS"] = "1"

MODEL_PATH = "./qwen-workspace/models/qwen/Qwen-1_8B-Chat"

DEVICE = "npu:0"

# 加载 tokenizer 和 model

tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(

    MODEL_PATH,

    torch_dtype=torch.float16,  # 昇腾不支持 bfloat16

    trust_remote_code=True,

    device_map=DEVICE

)

# 添加 LoRA

peft_config = LoraConfig(

    r=8,

    lora_alpha=16,

    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],

    lora_dropout=0.05,

    bias="none",

    task_type="CAUSAL_LM"

)

model = get_peft_model(model, peft_config)

model.print_trainable_parameters()  # 应显示 ~1% 参数可训练

# 准备数据集

def tokenize_function(examples):

    texts = [f"{inst}\n{inp}\n{out}" for inst, inp, out in zip(

        examples['instruction'], examples['input'], examples['output'])]

    return tokenizer(texts, truncation=True, padding="max_length", max_length=512)

# 从 JSONL 加载

from datasets import load_dataset

dataset = load_dataset('json', data_files='./qwen-workspace/data/train.jsonl')['train']

tokenized_dataset = dataset.map(tokenize_function, batched=True, remove_columns=dataset.column_names)

# 训练参数

training_args = TrainingArguments(

    output_dir="./qwen-workspace/output",

    per_device_train_batch_size=2,      # 根据显存调整(300T A2 32GB HBM)

    gradient_accumulation_steps=4,

    learning_rate=2e-4,

    num_train_epochs=3,

    logging_steps=10,

    save_strategy="epoch",

    fp16=True,                          # 必须开启 FP16

    ddp_find_unused_parameters=False,

    report_to="none"

)

# 启动训练

trainer = Trainer(

    model=model,

    args=training_args,

    train_dataset=tokenized_dataset,

)

trainer.train()

# 保存适配器

model.save_pretrained("./qwen-workspace/output/final_lora")

第八步:执行微调(带关键参数)

bash

cd ~/qwen-workspace

# 启动训练(注意:必须指定 npu 设备)

python3 finetune_qwen.py

# 若遇显存不足,降低 batch_size 或启用梯度检查点

# 在 model 初始化后添加:

# model.gradient_checkpointing_enable()

显存参考(Qwen-1.8B + LoRA):

  • batch_size=2 → 显存占用 ≈ 24GB(300T A2 32GB 可行)
  • 若仍 OOM,设 per_device_train_batch_size=1 + gradient_accumulation_steps=8

第九步:推理验证微调结果

python

# 文件:~/qwen-workspace/infer.py

import torch

import torch_npu

from transformers import AutoTokenizer, AutoModelForCausalLM

from peft import PeftModel

tokenizer = AutoTokenizer.from_pretrained("./qwen-workspace/models/qwen/Qwen-1_8B-Chat", trust_remote_code=True)

base_model = AutoModelForCausalLM.from_pretrained(

    "./qwen-workspace/models/qwen/Qwen-1_8B-Chat",

    torch_dtype=torch.float16,

    trust_remote_code=True,

    device_map="npu:0"

)

model = PeftModel.from_pretrained(base_model, "./qwen-workspace/output/final_lora")

prompt = "用Python写一个快速排序"

inputs = tokenizer(prompt, return_tensors="pt").to("npu:0")

outputs = model.generate(**inputs, max_new_tokens=200)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

运行:

bash

python3 infer.py

🔧 常见问题解决(麒麟 + 鲲鹏专属)

1. “libgomp.so.1: cannot allocate memory”

bash

# 原因:OpenMP 内存池过大

export OMP_NUM_THREADS=1

export KMP_AFFINITY=disabled

2. npu-smi 显示卡但 torch.npu 不识别

bash

# 检查驱动版本

cat /usr/local/Ascend/driver/version.info

# 必须 ≥ CANN 8.0.RC1(对应驱动 24.1.rc1+)

3. ModelScope 下载慢

bash

# 使用国内镜像

export HF_ENDPOINT=https://hf-mirror.com

# 或直接从魔搭社区网页下载 ZIP 解压

总结:关键命令清单

步骤

命令

环境检查

npu-smi info、uname -r

安装 torch_npu

pip3 install torch==2.1.0 torch_npu==2.1.0.post1

下载模型

snapshot_download('qwen/Qwen-1_8B-Chat', ...)

启动训练

python3 finetune_qwen.py(确保 fp16=True + device_map="npu:0")

推理验证

PeftModel.from_pretrained(...) + model.generate()

💡 提示:完整项目模板可参考 LLaMA-Factory 升腾版(适配 CANN 8.0+)。

https://github.com/hiyouga/LlamaFactory/tree/main/docker/docker-npu?spm=5176.28103460.0.0.38f97d83fD2h0U

通过以上步骤,你可在 纯国产信创环境(麒麟+鲲鹏+昇腾) 中成功微调 Qwen 小模型,满足合规与业务需求。