weixin_72661020/kika233_homework-gpu-qa-qwen2.5-0.5b-finetuned-port
模型介绍文件和版本Pull Requests讨论分析

kika233_homework-gpu-qa-qwen2.5-0.5b-finetuned-port

1. 简介

本文档记录 kika233/homework-gpu-qa-qwen2.5-0.5b-finetuned-port 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

Qwen2.5 0.5B 文本生成模型。基于 HuggingFace transformers 框架,支持一键加载推理。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/kika233/homework-gpu-qa-qwen2.5-0.5b-finetuned-port

2. 验证环境

组件版本
torch2.1.0
torch_npu2.1.0
transformers>=4.37.0
CANN8.5.RC1
  • NPU:Ascend910B(单卡)
  • 参数规模:0.5B
  • 隐藏层维度:896
  • 注意力头数:14

3. 快速部署

3.1 环境准备

pip install transformers torch

3.2 推理代码

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

device = torch.device("npu:0" if torch.npu.is_available() else "cpu")
model_name = "kika233/homework-gpu-qa-qwen2.5-0.5b-finetuned-port"

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, trust_remote_code=True)
model = model.to(device).eval()

messages = [{"role": "user", "content": "用一句话说明什么是深度学习。"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(device)

with torch.no_grad():
    outputs = model.generate(**inputs, max_new_tokens=128, do_sample=False)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(f"输出: {response}")

4. 精度评测

NPU 与 CPU logits 数值一致性对比:

指标值
Top-1 一致性4/4
最大 Logit 差异比率1.3e-05
平均 KL 散度0.0
结论通过

5. 性能参考

指标值
硬件Ascend 910B
平均推理时间1722.85 毫秒
测试条件生成 64 个 tokens,fp16
运行次数5

6. 注意事项

  • 精度验证为 NPU 与 CPU logits 数值一致性,非模型准确率
  • 对比最后一个 token 的 logits(决定生成方向最关键的元素)
  • 加载时需设置 trust_remote_code=True
  • 部分模型的 checkpoint 路径含特殊字符,建议复制到干净路径后加载
下载使用量0