ggg_0963/Meta-Llama-3.1-8B
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Meta-Llama-3.1-8B 在 vLLM-Ascend 0.18.0rc1 #+NPU 上的部署

1. 简介

本文档记录 LLM-Research/Meta-Llama-3.1-8B(预训练基础版,8B 参数)在 vLLM-Ascend 0.18.0rc1 环境下的快速部署与验证结果。

Meta Llama 3.1 8B 是 Meta 发布的多语言大语言模型,采用优化的 Transformer 架构,支持 GQA(分组查询注意力机制),上下文长度达 128K,词汇量为 128K,精度为 BF16。该模型在昇腾 NPU 上可通过 vLLM-Ascend 进行原生推理,其架构 LlamaForCausalLM 已得到 vLLM-Ascend 的完整支持,无需额外适配即可运行。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/LLM-Research/Meta-Llama-3.1-8B
  • Docker 镜像(vLLM-Ascend 0.18.0rc1):quay.io/ascend/vllm-ascend:v0.18.0rc1

参考文档:

  • https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/tutorials/models/Qwen3.5-27B.html

2. 验证环境

组件版本
vllm-ascend0.18.0rc1
vllm0.18.0+empty
transformers4.57.6
torch-npu2.9.0.post1+gitee7ba04
CANN8.5.1
SOCascend910_9391
  • NPU:1 逻辑卡(Ascend910,64GB HBM)
  • 模型路径:/opt/atomgit/Meta-Llama-3.1-8B
  • 服务端口:8000

3. 模型配置

{
  "architectures": ["LlamaForCausalLM"],
  "hidden_size": 4096,
  "intermediate_size": 14336,
  "num_attention_heads": 32,
  "num_hidden_layers": 32,
  "num_key_value_heads": 8,
  "head_dim": 128,
  "max_position_embeddings": 131072,
  "rope_theta": 500000.0,
  "vocab_size": 128256,
  "torch_dtype": "bfloat16",
  "tie_word_embeddings": false
}

4. 服务启动

启动前可先检查端口:

ss -lntp | grep ':8000 ' || true

已验证通过的启动命令:

export ASCEND_VISIBLE_DEVICES=0,1
export ASCEND_RT_VISIBLE_DEVICES=0,1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export TASK_QUEUE_ENABLE=1
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=1

vllm serve /opt/atomgit/Meta-Llama-3.1-8B \
  --host 0.0.0.0 \
  --port 8000 \
  --tensor-parallel-size 1 \
  --seed 1024 \
  --served-model-name meta-llama-3.1-8b \
  --max-model-len 4096 \
  --max-num-seqs 16 \
  --gpu-memory-utilization 0.90 \
  --trust-remote-code \
  --dtype bfloat16

说明:

  • 8B 模型单卡(TP=1)即可运行,约占用 16GB HBM
  • max-model-len 可根据需要调整,模型支持最大 128K 上下文
  • ASCEND_VISIBLE_DEVICES 需设置为逻辑设备编号(从 0 开始),而非物理芯片 ID

5. Smoke 验证

基础检查:

curl -sf http://127.0.0.1:8000/v1/models

推理测试:

curl -sf http://127.0.0.1:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama-3.1-8b",
    "prompt": "The capital of France is",
    "max_tokens": 32,
    "temperature": 0
  }'

验证结果:

  • /v1/models 返回 200,模型 meta-llama-3.1-8b 已加载
  • /v1/completions 返回 200,输出 a city of many faces. It is a city of history, a city of culture, a city of art, a city of fashion, a city of food

6. 精度评测

使用 MMLU 5-shot 对模型进行精度评测,对比官方基准。

评测命令

python scripts/eval_accuracy.py --api http://127.0.0.1:8000 --model_name meta-llama-3.1-8b --baseline 66.7 --output scripts/accuracy_results.json

评测配置

参数值
数据集MMLU
评测方式5-shot
样本总数14,042
科目数57
Temperature0

评测结果

指标NPU 结果官方基准(GPU)差异
Macro Avg Accuracy66.30%66.7%-0.40%
Micro Avg Accuracy65.40%--

部分科目详情

科目正确/总数准确率
abstract_algebra30/10030.0%
anatomy85/13563.0%
astronomy109/15271.7%
business_ethics67/10067.0%
computer_security82/10082.0%
high_school_geography165/19883.3%
high_school_government_and_politics173/19389.6%
high_school_psychology465/54585.3%
high_school_us_history170/20483.3%
international_law102/12184.3%
management85/10382.5%
marketing189/23480.8%
miscellaneous621/78379.3%
professional_medicine246/27290.4%
sociology178/20188.6%
us_foreign_policy90/10090.0%
world_religions144/17184.2%

结论:NPU 上 MMLU 5-shot Macro Avg 为 66.30%,与官方 GPU 基准 66.7% 差异 -0.40%,小于 1% 精度要求阈值,验证通过。

7. 性能参考

测试条件:128 input / 128 output / concurrency=4,20 requests。

指标数值
duration14.40 s
request_throughput1.389 req/s
output_throughput177.75 tok/s
total_token_throughput295.79 tok/s
mean_latency_ms2879.12 ms
median_latency_ms2878.85 ms
p99_latency_ms2909.23 ms
mean_tpot_ms22.49 ms/token

8. 注意事项

  1. 设备编号:ASCEND_VISIBLE_DEVICES 需使用从 0 开始的逻辑设备编号。如系统显示物理 Chip ID 为 4/5,实际需设置为 0,1。使用错误的设备编号会导致 aclInit 错误(error code 107001)。

  2. 模型架构兼容:LlamaForCausalLM 已被 vLLM-Ascend 0.18.0 原生支持,无需额外适配代码或算子替换。

  3. 显存占用:8B BF16 模型约占用 16GB HBM,Ascend910 单卡(64GB)有充足余量。可通过 --gpu-memory-utilization 控制预分配比例。

  4. 此为基础版模型:本验证使用的是预训练基础版(非 Instruct 版),输出为续写模式。如需对话场景,建议使用 meta-llama/Llama-3.1-8B-Instruct。