更新时间:2024-08-17 GMT+08:00
分享

推理场景介绍

方案概览

本方案介绍了在ModelArts Lite DevServer上使用昇腾计算资源开展常见开源大模型Llama、Qwen、ChatGLM、Yi、Baichuan等推理部署的详细过程。本方案利用适配昇腾平台的大模型推理服务框架vLLM和华为自研昇腾Snt9B硬件,为用户提供推理部署方案,帮助用户使能大模型业务。

约束限制

  • 本方案目前仅适用于部分企业客户。
  • 本文档适配昇腾云ModelArts 6.3.905版本,请参考软件配套版本获取配套版本的软件包,请严格遵照版本配套关系使用本文档。
  • 资源规格推荐使用“西南-贵阳一”Region上的DevServer和昇腾Snt9B资源。
  • 推理部署使用的服务框架是vLLM。vLLM支持v0.3.2。
  • 支持FP16和BF16数据类型推理。

资源规格要求

本文档中的模型运行环境是ModelArts Lite的DevServer。推荐使用“西南-贵阳一”Region上的资源和Ascend Snt9B。

如果使用DevServer资源,请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。

当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据

软件配套版本

本方案支持的软件配套版本和依赖包获取地址如表1所示。

表1 软件配套版本和获取地址

软件名称

说明

下载地址

AscendCloud-3rdLLM-6.3.905-xxx.zip

说明:

软件包名称中的xxx表示时间戳。

包含了本教程中使用到的vLLM 0.3.2推理部署代码和推理评测代码。代码包具体说明请参见模型软件包结构说明

6.3.905版本获取路径:Support-E(推荐)

说明:

如果没有下载权限,请联系您所在企业的华为方技术支持下载获取。

AscendCloud-OPP-6.3.905-xxx.zip

推理依赖的算子包。

镜像版本

本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。

表2 基础容器镜像地址

配套软件版本

镜像用途

镜像地址

Cann版本

6.3.905版本

基础镜像

swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240528150158-b521cc0

cann_8.0.rc2

不同软件版本对应的基础镜像地址不同,请严格按照软件版本和镜像配套关系获取基础镜像。

支持的模型列表和权重文件

本方案支持vLLM的v0.3.2版本。不同vLLM版本支持的模型列表有差异,具体如表3所示。

表3 支持的模型列表和权重获取地址

序号

模型名称

支持vLLM v0.3.2

开源权重获取地址

1

llama-7b

https://huggingface.co/huggyllama/llama-7b

2

llama-13b

https://huggingface.co/huggyllama/llama-13b

3

llama-65b

https://huggingface.co/huggyllama/llama-65b

4

llama2-7b

https://huggingface.co/meta-llama/Llama-2-7b-chat-hf

5

llama2-13b

https://huggingface.co/meta-llama/Llama-2-13b-chat-hf

6

llama2-70b

https://huggingface.co/meta-llama/Llama-2-70b-hf

https://huggingface.co/meta-llama/Llama-2-70b-chat-hf (推荐)

7

llama3-8b

https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct

8

llama3-70b

https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct

9

yi-6b

https://huggingface.co/01-ai/Yi-6B-Chat

10

yi-9b

https://huggingface.co/01-ai/Yi-9B

11

yi-34b

https://huggingface.co/01-ai/Yi-34B-Chat

12

deepseek-llm-7b

https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat

13

deepseek-coder-instruct-33b

https://huggingface.co/deepseek-ai/deepseek-coder-33b-instruct

14

deepseek-llm-67b

https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat

15

qwen-7b

https://huggingface.co/Qwen/Qwen-7B-Chat

16

qwen-14b

https://huggingface.co/Qwen/Qwen-14B-Chat

17

qwen-72b

https://huggingface.co/Qwen/Qwen-72B-Chat

18

qwen1.5-0.5b

https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat

19

qwen1.5-7b

https://huggingface.co/Qwen/Qwen1.5-7B-Chat

20

qwen1.5-1.8b

https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat

21

qwen1.5-14b

https://huggingface.co/Qwen/Qwen1.5-14B-Chat

22

qwen1.5-32b

https://huggingface.co/Qwen/Qwen1.5-32B/tree/main

23

qwen1.5-72b

https://huggingface.co/Qwen/Qwen1.5-72B-Chat

24

qwen1.5-110b

https://huggingface.co/Qwen/Qwen1.5-110B-Chat

25

baichuan2-7b

https://huggingface.co/baichuan-inc/Baichuan2-7B-Chat

26

baichuan2-13b

https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat

27

chatglm2-6b

https://huggingface.co/THUDM/chatglm2-6b

28

chatglm3-6b

https://huggingface.co/THUDM/chatglm3-6b

29

gemma-2b

https://huggingface.co/google/gemma-2b

30

gemma-7b

https://huggingface.co/google/gemma-7b

31

mistral-7b

https://huggingface.co/mistralai/Mistral-7B-v0.1

模型软件包结构说明

本教程需要使用到的AscendCloud-3rdLLM-xxx.zip软件包中的关键文件介绍如下。
├──llm_tools           #推理工具包
   ├──llm_evaluation  #推理评测代码包
     ├──benchmark_eval   # 精度评测
          ├── config  
                ├── config.json  # 请求的参数,根据实际启动的服务来调整
                ├── mmlu_subject_mapping.json  # 数据集配置
                ├── ...
          ├── evaluators
                ├── evaluator.py # 数据集数据预处理方法集
                ├── model.py  # 发送请求的模块,在这里修改请求响应。目前支持vllm.openai,atb的tgi模板
                ├── ...
          ├── eval_test.py  # 启动脚本,建立线程池发送请求,并汇总结果
          ├── service_predict.py  # 发送请求的服务。支持vllm的openai,atb的tgi模板
          ├── ...
     ├──benchmark_tools  #性能评测
          ├── benchmark.py    # 可以基于默认的参数跑完静态benchmark和动态benchmark
          ├── benchmark_parallel.py  # 评测静态性能脚本
          ├── benchmark_serving.py   # 评测动态性能脚本
          ├── benchmark_utils.py     # 抽离的工具集
          ├── generate_datasets.py    # 生成自定义数据集的脚本
          ├── requirements.txt       # 第三方依赖
          ├── ...
├──llm_inference  #推理代码
          ├── ascend_vllm_adapter  #昇腾vLLM使用的算子模块
          ├── ascend.txt   #基于开源vLLM适配过NPU的patch脚本
          ├── autosmoothquant_ascend.txt   #基于开源autosmoothquant适配过NPU的patch脚本
          ├── build.sh     #推理构建脚本
          ├── requirements.txt       # 第三方依赖

相关文档

和本文档配套的模型训练文档请参考《主流开源大模型基于DevServer适配PyTorch NPU训练指导》

相关文档