如果你之前一直用NVIDIA的卡,第一次接触910B可能会觉得"怎么跟CUDA不一样"。别担心,其实大部分流程是相通的,只是有些概念换了名字。

第一步:确认NPU驱动正常

npu-smi info

# 正常输出类似:
# +-----------------------------------------------------------------------------+
# | npu-smi 23.0.0                  Version: 23.0.0                            |
# | NPU   Name       Health     Power(W)    Temp(C)           Hugepages-Usage  |
# | 0     910B       OK         150         45                0    %            |
# +-----------------------------------------------------------------------------+

第二步:安装PyTorch昇腾版

pip install torch==2.1.0
pip install torch-npu==2.1.0.post3

# 验证
python -c "import torch; import torch_npu; print(torch_npu.npu.is_available())"
# 输出:True

第三步:微调Qwen2-7B

下面是在910B上微调Qwen2-7B的完整代码,直接复制就能跑:

from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer
from datasets import load_dataset
import torch
import torch_npu

model_name = "Qwen/Qwen2-7B"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_name, trust_remote_code=True, torch_dtype=torch.float16
)

# 放到NPU上
device = torch.device("npu:0")
model = model.to(device)

# 加载数据
dataset = load_dataset("json", data_files="train_data.json")
def tokenize_function(examples):
    return tokenizer(examples["text"], truncation=True, max_length=512)
tokenized_dataset = dataset.map(tokenize_function, batched=True)

# 训练参数
training_args = TrainingArguments(
    output_dir="./qwen2-910b-output",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=8,
    learning_rate=2e-5,
    fp16=True,
    logging_steps=50,
    save_steps=500,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_dataset["train"],
)
trainer.train()

跑DeepSeek的注意事项

  • 建议用华为官方适配的昇腾版DeepSeek,性能最好
  • DeepSeek依赖的FlashAttention需要替换为昇腾版FusedAttention
  • MoE架构在910B上运行良好,8卡并行可以高效分配专家网络

遇到问题怎么办?

OOM(显存不足):减小batch_size,开启gradient_checkpointing,或者用LoRA代替全参数微调。

训练速度慢:检查是否开启了fp16混合精度,确认数据加载没有成为瓶颈,多卡时检查HCCS通信是否正常。

某些算子不支持:查阅CANN文档的算子支持列表,或用支持的算子组合实现替代方案。极智算提供7×24技术支持。

想在910B上跑大模型?

极智算预装CANN+PyTorch+MindSpore环境,开箱即用,省去环境搭建时间

立即开通910B实例 →