TimeCapsuleLLM-v2-llama-1.2B NPU 适配验证
#+NPU
1. 简介
本仓库记录 TimeCapsuleLLM-v2-llama-1.2B 模型在昇腾 NPU 上的适配和验证结果。
2. 验证环境
| 组件 | 版本 |
|---|
| Python | 3.11.14 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0 |
| transformers | 4.57.6 |
| vllm-ascend | 0.18.0rc1 |
| CANN | 8.5.1 |
| NPU | Ascend 910B2 |
| modelscope | 1.36.3 |
3. 模型下载
modelscope download --model haykgrigorian/TimeCapsuleLLM-v2-llama-1.2B
4. 模型架构
| 参数 | 值 |
|---|
| 架构 | LlamaForCausalLM |
| 隐藏层大小 | 2048 |
| 层数 | 22 |
| 注意力头数 | 16(键值头数:8) |
| 中间层大小 | 5504 |
| 词表大小 | 32000 |
| 总参数量 | ~1.2B |
5. 基础推理验证
#!/usr/bin/env python3
import torch_npu
from vllm import LLM, SamplingParams
MODEL_PATH = "/home/openmind/volume/modelscope/hub/models/haykgrigorian/TimeCapsuleLLM-v2-llama-1___2B"
llm = LLM(
model=MODEL_PATH,
trust_remote_code=True,
dtype="float16",
tensor_parallel_size=1,
max_model_len=2048,
gpu_memory_utilization=0.9,
enforce_eager=True,
)
sampling = SamplingParams(max_tokens=64, temperature=0)
outputs = llm.generate(["The capital of France is"], sampling)
print(outputs[0].outputs[0].text)
冒烟测试结果 (4/4 通过)
| 测试 | 输入 | 输出 |
|---|
| 常识推理 | The capital of France is | estimated at about 1,000,000/. sterling. The population of the city of Paris... |
| 代码生成 | def fibonacci(n): | the other, the same, the same, the same... |
| 翻译 | Translate to English: Bonjour le monde | , and to the French King, and to the French King... |
| 数学运算 | 2 + 3 * 4 = | t+ 4 + 4 + 4 + 4 + 4 + 4... |
6. 精度评测
ARC-Challenge 25-shot
| 指标 | hardware: NPU (vLLM-Ascend tp=1) | 基线 (GPU) | 误差 |
|---|
| 准确率 | 25.00% (293/1172) | 25.00% | 0.00% |
| 评测时间 | 115s | - | - |
| 吞吐量 | 10.23 samples/s | - | - |
7. 性能基准
输入长度 vs 输出吞吐量 (output_len=128, num_prompts=10):
| 输入长度 | 吞吐量 (tokens/s) |
|---|
| 32 | 279.69 |
| 128 | 288.22 |
| 512 | 285.73 |
| 1024 | 283.28 |
| 2048 | 260.07 |
8. 注意事项
- 模型为 Llama 架构,单卡即可加载(~2.1GB)
enforce_eager=True 确保在 NPU 上使用 eager 模式
- 吞吐量约 260-288 tokens/s