场景介绍
方案概览
本文档介绍了在ModelArts的Standard上使用昇腾计算资源开展常见开源大模型Llama、Qwen、ChatGLM、Yi、Baichuan等推理部署的详细过程,利用适配昇腾平台的大模型推理服务框架vLLM和华为自研昇腾Snt9B硬件,为用户提供推理部署方案,帮助用户使能大模型业务。
本方案目前仅适用于部分企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。
约束限制
- 本方案目前仅适用于部分企业客户。
- 本文档适配昇腾云ModelArts 6.3.911版本,请参考软件配套版本获取配套版本的软件包,请严格遵照版本配套关系使用本文档。
- 推理部署使用的服务框架是vLLM。vLLM支持v0.6.3版本。
- 仅支持FP16和BF16数据类型推理。
- 本案例仅支持在专属资源池上运行。
- 专属资源池驱动版本要求23.0.6。
- 适配的CANN版本是cann_8.0.rc3。
支持的模型列表和权重文件
本方案支持vLLM的v0.6.3版本。不同vLLM版本支持的模型列表有差异,具体如表1所示。
序号 |
模型名称 |
是否支持fp16/bf16推理 |
是否支持W4A16量化 |
是否支持W8A8量化 |
是否支持W8A16量化 |
是否支持 kv-cache-int8量化 |
开源权重获取地址 |
---|---|---|---|---|---|---|---|
1 |
llama-7b |
√ |
√ |
√ |
√ |
√ |
|
2 |
llama-13b |
√ |
√ |
√ |
√ |
√ |
|
3 |
llama-65b |
√ |
√ |
√ |
√ |
√ |
|
4 |
llama2-7b |
√ |
√ |
√ |
√ |
√ |
|
5 |
llama2-13b |
√ |
√ |
√ |
√ |
√ |
|
6 |
llama2-70b |
√ |
√ |
√ |
√ |
√ |
|
7 |
llama3-8b |
√ |
√ |
√ |
√ |
√ |
|
8 |
llama3-70b |
√ |
√ |
√ |
√ |
√ |
|
9 |
yi-6b |
√ |
√ |
√ |
√ |
√ |
|
10 |
yi-9b |
√ |
√ |
√ |
√ |
√ |
|
11 |
yi-34b |
√ |
√ |
√ |
√ |
√ |
|
12 |
deepseek-llm-7b |
√ |
x |
x |
x |
x |
|
13 |
deepseek-coder-33b-instruct |
√ |
x |
x |
x |
x |
https://huggingface.co/deepseek-ai/deepseek-coder-33b-instruct |
14 |
deepseek-llm-67b |
√ |
x |
x |
x |
x |
|
15 |
qwen-7b |
√ |
√ |
√ |
√ |
x |
|
16 |
qwen-14b |
√ |
√ |
√ |
√ |
x |
|
17 |
qwen-72b |
√ |
√ |
√ |
√ |
x |
|
18 |
qwen1.5-0.5b |
√ |
√ |
√ |
√ |
x |
|
19 |
qwen1.5-7b |
√ |
√ |
√ |
√ |
x |
|
20 |
qwen1.5-1.8b |
√ |
√ |
√ |
√ |
x |
|
21 |
qwen1.5-14b |
√ |
√ |
√ |
√ |
x |
|
22 |
qwen1.5-32b |
√ |
√ |
√ |
√ |
x |
|
23 |
qwen1.5-72b |
√ |
√ |
√ |
√ |
x |
|
24 |
qwen1.5-110b |
√ |
√ |
√ |
√ |
x |
|
25 |
qwen2-0.5b |
√ |
√ |
√ |
√ |
x |
|
26 |
qwen2-1.5b |
√ |
√ |
√ |
√ |
x |
|
27 |
qwen2-7b |
√ |
√ |
x |
√ |
x |
|
28 |
qwen2-72b |
√ |
√ |
√ |
√ |
x |
|
29 |
qwen2.5-0.5b |
√ |
√ |
√ |
√ |
x |
|
30 |
qwen2.5-1.5b |
√ |
√ |
√ |
√ |
x |
|
31 |
qwen2.5-3b |
√ |
√ |
√ |
√ |
x |
|
32 |
qwen2.5-7b |
√ |
√ |
x |
√ |
x |
|
33 |
qwen2.5-14b |
√ |
√ |
√ |
√ |
x |
|
34 |
qwen2.5-32b |
√ |
√ |
√ |
√ |
x |
|
35 |
qwen2.5-72b |
√ |
√ |
√ |
√ |
x |
|
36 |
baichuan2-7b |
√ |
x |
x |
√ |
x |
|
37 |
baichuan2-13b |
√ |
x |
x |
√ |
x |
|
38 |
gemma-2b |
√ |
x |
x |
x |
x |
|
39 |
gemma-7b |
√ |
x |
x |
x |
x |
|
40 |
chatglm2-6b |
√ |
x |
x |
x |
x |
|
41 |
chatglm3-6b |
√ |
x |
x |
x |
x |
|
42 |
glm-4-9b |
√ |
x |
x |
x |
x |
|
43 |
mistral-7b |
√ |
x |
x |
x |
x |
|
44 |
mixtral-8x7b |
√ |
x |
x |
x |
x |
|
45 |
falcon-11b |
√ |
x |
x |
x |
x |
|
46 |
qwen2-57b-a14b |
√ |
x |
x |
x |
x |
|
47 |
llama3.1-8b |
√ |
√ |
√ |
√ |
x |
https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct |
48 |
llama3.1-70b |
√ |
√ |
√ |
√ |
x |
https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct |
49 |
llama-3.1-405B |
√ |
√ |
x |
x |
x |
https://huggingface.co/hugging-quants/Meta-Llama-3.1-405B-Instruct-AWQ-INT4 |
50 |
llama-3.2-1B |
√ |
x |
x |
x |
x |
|
51 |
llama-3.2-3B |
√ |
x |
x |
x |
x |
|
52 |
llava-1.5-7b |
√ |
x |
x |
x |
x |
|
53 |
llava-1.5-13b |
√ |
x |
x |
x |
x |
|
54 |
llava-v1.6-7b |
√ |
x |
x |
x |
x |
https://huggingface.co/llava-hf/llava-v1.6-vicuna-7b-hf/tree/main |
55 |
llava-v1.6-13b |
√ |
x |
x |
x |
x |
https://huggingface.co/llava-hf/llava-v1.6-vicuna-13b-hf/tree/main |
56 |
llava-v1.6-34b |
√ |
x |
x |
x |
x |
|
57 |
internvl2-8B |
√ |
x |
x |
x |
x |
|
58 |
internvl2-26B |
√ |
x |
x |
x |
x |
|
59 |
internvl2-40B |
√ |
x |
x |
x |
x |
|
60 |
internVL2-Llama3-76B |
√ |
x |
x |
x |
x |
https://huggingface.co/OpenGVLab/InternVL2-Llama3-76B/tree/main |
61 |
MiniCPM-v2.6 |
√ |
x |
x |
x |
x |
|
62 |
deepseek-v2-236b |
x |
x |
√ |
x |
x |
|
63 |
deepseek-v2-lite-16b |
√ |
x |
√ |
x |
x |
|
64 |
qwen2-vl-2B |
√ |
x |
x |
x |
x |
|
65 |
qwen2-vl-7B |
√ |
x |
x |
x |
x |
|
66 |
qwen2-vl-72B |
√ |
x |
x |
x |
x |
|
67 |
qwen-vl |
√ |
x |
x |
x |
x |
|
68 |
qwen-vl-chat |
√ |
x |
x |
x |
x |
|
69 |
MiniCPM-v2 |
√ |
x |
x |
x |
x |
https://huggingface.co/HwwwH/MiniCPM-V-2 注意:需要修改源文件site-packages/timm/layers/pos_embed.py,在第46行上面新增一行代码,如下: posemb = posemb.contiguous() #新增 posemb = F.interpolate(posemb, size=new_size, mode=interpolation, antialias=antialias) |
各模型支持的卡数请参见附录:基于vLLM不同模型推理支持最小卡数和最大序列说明章节。
操作流程
阶段 |
任务 |
说明 |
---|---|---|
准备工作 |
准备资源 |
本教程案例是基于ModelArts Standard运行,需要购买ModelArts专属资源池。 |
准备权重 |
准备对应模型的权重文件。 |
|
准备代码 |
准备AscendCloud-6.3.911-xxx.zip。 |
|
准备镜像 |
准备推理模型适用的容器镜像。 |
|
准备Notebook |
本案例在Notebook上部署推理服务进行调试,因此需要创建Notebook。 |
|
部署推理服务 |
在Notebook调试环境中部署推理服务 |
介绍如何在Notebook中配置NPU环境,部署并启动推理服务,完成精度测试和性能测试。 如果需要部署量化模型,需在Notebook中进行模型权重转换后再部署推理服务。 |
在推理生产环境中部署推理服务 |
介绍如何在创建AI应用,部署并启动推理服务,在线预测在线服务。 |