本文档记录 microsoft/phi-2(2.7B)在 vLLM-Ascend 0.18.0rc1 环境的快速部署与验证结果。
Phi-2 是 Microsoft Phi 系列中最大的模型,基于 2.7B 参数 Transformer 架构,在代码和自然语言数据上训练,具有更强的推理和代码生成能力。
相关获取地址:
| 组件 | 版本 |
|---|---|
vllm-ascend | 0.18.0rc1 |
vllm | 0.18.0+empty |
transformers | 4.57.6 |
torch-npu | 2.9.0.post1+gitee7ba04 |
1 张 Ascend910B4/opt/atomgit/.cache/modelscope/hub/models/microsoft/phi-28002| 属性 | 值 |
|---|---|
| 参数量 | 2.7B |
| 层数 | 32 |
| 隐藏维度 | 2560 |
| 注意力头 | 32 (MHA) |
| KV 头 | 32 |
| 最大序列长度 | 2048 |
| 词表大小 | 51200 |
| 精度 | float16 |
启动前可先检查端口:
ss -lntp | grep ':8002 ' || true已验证通过的启动命令:
export ASCEND_RT_VISIBLE_DEVICES=0
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export TASK_QUEUE_ENABLE=1
vllm serve /opt/atomgit/.cache/modelscope/hub/models/microsoft/phi-2 \
--host 0.0.0.0 \
--port 8002 \
--tensor-parallel-size 1 \
--seed 42 \
--served-model-name phi-2 \
--max-num-seqs 64 \
--max-model-len 2048 \
--trust-remote-code \
--gpu-memory-utilization 0.90 \
--dtype float16 \
--no-enable-prefix-caching基础检查:
curl -sf http://127.0.0.1:8002/v1/models
curl -sf http://127.0.0.1:8002/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "phi-2",
"prompt": "Write a quicksort in Python:",
"max_tokens": 64,
"temperature": 0.0
}'验证结果:
/v1/models 返回 200/v1/completions 返回 200测试条件:基于 torch_npu + transformers 直接推理,输入 9 tokens / 输出 64 tokens,连续 2 次取平均。
| 指标 | 数值 |
|---|---|
throughput | 20.4 tok/s |
latency (64 tok) | 3.14 s |
latency (128 tok) | 6.34 s |
NPU 峰值内存 | 5.26 GiB |
| 输入长度 | 输出长度 | 吞吐量 (tok/s) | 延迟 (s) |
|---|---|---|---|
| 9 | 32 | 20.3 | 1.58 |
| 9 | 64 | 20.4 | 3.14 |
| 9 | 128 | 20.2 | 6.34 |
| 140 | 128 | 18.8* | 0.11* |
*phi-2 长 prompt 场景下首轮生成 token 数较低,该数据点仅供参考。
使用 check_accuracy.py 对 NPU 和 CPU 做逐 token logits 对比,覆盖 5 个测试 prompt。
| 指标 | 数值 | 阈值 | 状态 |
|---|---|---|---|
| Top-1 准确率 | 100.00% | >= 99% | PASS |
| 平均余弦相似度 | 0.99999 | >= 0.99 | PASS |
| 平均 KL 散度 | 0.000009 | < 0.01 | PASS |
| 最大 logit 差 | ~0.03 | - | - |
Phi-2 在 NPU 上的输出与 CPU 基线高度一致。Top-1 预测 100% 匹配,余弦相似度接近 1.0。最大 logit 差偏大的样本("Machine learning is" prompt: 最大差 0.10)属于个别异常 token,整体 KL 散度仍远低于阈值。