基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。

一、测试环境准备
1.1硬件信息
ECS 云主机配置: 32核心 128G内存 400G SSD硬盘
GPU加速卡:NVIDIA A30 * 8
半精度:165 TFLOPS
显存:24G

1.2 系统软件环境要求
要求:根据NVIDIA官方给出的驱动版本安装对应的CUDA及对应软件包环境。参考如下图1:
操作系统: Ubuntu-22.04
Kernel: 6.5.0-27
Python 3.11
gcc版本:12.3
NVIDIA驱动版本:NVIDIA-Linux-x86_64-550.54.15
CUDA 版本:cuda_12.4.0_550.54.15
Pytorch:2.4.0
image.png
图1:CUDA与NVIDIA驱动对应版本
image.png
图2: NVIDIA-Dirvier 550.54.15
image.png
图3: 驱动支持的NVIDIA GPU卡型号
image.png
图4:NVIDIA-550.54.15驱动支持的Linux操作系统版本
1.3 安装 NVIDIA 驱动、CUDA及Pytorch

驱动安装命令:

chmod +x NVIDIA-Linux-x86_64-550.54.15.run
sudo ./NVIDIA-Linux-x86_64-550.54.15.run -no-x-check -no-nouveau-check -no-opengl-files

-no-x-check: 安装时关闭X服务;
-no-nouveau-check: 安装时禁用nouveau;
-no-opengl-files: 只安装驱动文件,不安装OpenGL文件。

image.png

CUDA安装命令:

wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.4.0_550.54.15_linux.run
# sudo sh cuda_12.4.0_550.54.15_linux.run
# nvcc -V     ##查看 CUDA版本

image.png
image.png
image.png
注意: pytorch 需要与 cuda python 版本对应,如下图6:
image.png

1.4 查看GPU摘要信息
image.png

二、大模型之-Qwen1.5-72B-chat部署
本次我们主要基于通义千问72B大模型进行性能基准测试,包括模型下载、环境设置、使用 vLLM框架进行推理的方法,以及本地部署参数及常见问题,特别是关于显存管理和API测试的详细说明。
2.1 Qwen介绍
(1) 模型细节
通义千问-72B(Qwen-72B)是阿里云研发的通义千问大模型系列的720亿参数规模的模型。Qwen-72B是基于Transformer的大语言模型, 在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在Qwen-72B的基础上,我们使用对齐机制打造了基于大语言模型的AI助手Qwen-72B-Chat。本仓库为Qwen-72B-Chat的仓库。
(2)通义千问-72B(Qwen-72B)主要有以下特点:

  1. 大规模高质量训练语料:使用超过3万亿tokens的数据进行预训练,包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。通过大量对比实验对预训练语料分布进行了优化。
  2. 强大的性能:Qwen-72B在多个中英文下游评测任务上(涵盖常识推理、代码、数学、翻译等),效果显著超越现有的开源模型。具体评测结果请详见下文。
  3. 覆盖更全面的词表:相比目前以中英词表为主的开源模型,Qwen-72B使用了约15万大小的词表。该词表对多语言更加友好,方便用户在不扩展词表的情况下对部分语种进行能力增强和扩展。
  4. 更长的上下文支持:Qwen-72B支持32k的上下文长度。
    系统指令跟随:Qwen-72B-Chat可以通过调整系统指令,实现角色扮演,语言风格迁移,任务设定,和行为设定等能力。

2.2 Qwen72B模型部署环境和硬件要求
(1)硬件环境要求:

  • 运行BF16或FP16模型需要多卡至少144GB显存
  • 运行Int4模型至少需要48GB显存
  • 支持的显卡:
    • Tesla A100 40GB/ 80GB
    • Tesla A800 40GB/80GB
    • Tesla H100 80GB
    • Tesla H800 80GB
    • Tesla L40 48GB
    • Tesla A40 48GB
    • Tesla A30 24GB
    • Tesla A10 24G
    • Tesla A16 64G
    • RTX 6000 Ada 48G
    • RTX A6000 48G
    • RTX A5500 24G
    • RTX A5000 24G
    • RTX 8000 48G
      (2)软件环境:
      python 3.8及以上版本
      pytorch 1.12及以上版本,推荐2.0及以上版本
      建议使用CUDA 11.4及以上(GPU用户、flash-attention用户等需考虑此选项)
      vLLM(Virtualized Language Learning Model)是一种用于自然语言处理(NLP)的模型架构或框架,旨在提高大规模语言模型(如GPT等)的性能和效率。vLLM安装版本0.6.2 。

2.3 下载大模型(魔塔)
qwen/Qwen1.5-72B-Chat为模型的ID,当前国内主要可以在魔搭社区和HuggingFace下载。
魔塔: https://modelscope.cn/models/qwen/Qwen-72B/summary
HuggingFace: https://huggingface.co/Qwen/Qwen1.5-72B-Chat

这里,我们通过魔塔工具命令进行模型下载:

# 安装 modeslcope命令
pip install modelscope

# 使用 modelscope下载整个模型
mkdir Qweb-download-cache
modelscope download --model 'Qwen/Qwen1.5-72B-Chat' --cache_dir './Qweb-download-cache' --local_dir './Qweb-download-cache'

## 参数选项###
--model 'Qwen/Qwen1.5-72B-Chat'    ##指定下载的模型;
--cache_dir './Qweb-download-cache'   ##指定下载的cache_dir,模型文件将被下载到cache_dir/Qwen/Qwen1.5-72B-Chat;
--local_dir '/data/llm-test'            ##指定下载的模型存放目录,模型文件将被下载到./local_dir/下;

#下载模型
modelscope download --model 'Qwen/Qwen1.5-72B-Chat' --local_dir '/data/llm-test/Qwen-download'

image.png
模型总大小 135GB

2.5 使用 vLLM 本地部署 Qwen1.5-72B-Chat

(1)官方部署方式

python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen1.5-7B-Chat

(2)本地化部署命令 (踩坑测试)

#备注:8卡A30 ,cuda12.4
python -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9 --max-model-len 29856  --model Qwen1.5-72B-Chat --tensor-parallel-size 8

参数说明:

  • --host 0.0.0.0 # 模型运行监听IP地址
  • --port 18000 # 监听端口
  • --gpu-memory-utilization 0.9 # 占用GPU 内存比例;
  • --max-model-len 29856 # 上下文长度
  • --model Qwen1.5-72B-Chat # 指定文件位置
  • --tensor-parallel-size 8 # 指定8张卡运行大模型

(3)常见问题:

在模型推理过程中,最容易出现 OOM内存溢出问题,可以尝试修改两个参数。第一个参数是--max-model-len,我们提供的默认最大位置嵌入 (max_position_embedding) 为 32768, 因此服务时的最大长度也是这个值;这样会导致更高的内存需要。
因此,将此值适当的减小,通常有助于解决 OOM 问题。 第二个参数是 --gpu-memory-utilization。 默认情况下,该值是0.9 ,我们可以将其调高以应对 OOM 问题。 这也是为什么 LLM (大语言模型)服务总是占用大量内存的原因。

问题例1:The model's max seq len (29856) is larger than the maximum number of tokens that can be stored in KV cache (3936). Try increasing gpu_memory_utilization or decreasing max_model_len when initializing the engine., Traceback (most recent call last):

原因分析:
出现该问题的原因主要是因为模型的最大序列长度(29856)超出了 KV 缓存所能支持的最大令牌数(3936)。在推理过程中,KV 缓存用于存储中间计算结果,以加速模型推理,但其容量有限。当输入的序列长度超过该限制时,就会导致报错。因此,确保模型的输入长度在 KV 缓存的范围内是关键。

解决方案:

  • 设置合理的 --max-model-len:建议将其设置为 3936 或更低,以避免 KV 缓存错误。
  • 调整 --gpu-memory-utilization:可以设置为较低值,例如 0.8,以确保在推理过程中有足够的显存余量。
  • 使用合适的张量并行度:确保 --tensor-parallel-size 设置为 8,这样可以充分利用所有 GPU。
  • 安装 vllm-flash-attn

优化后的推理部署命令:

python  -m vllm.entrypoints.openai.api_server  \
--host 0.0.0.0 \
--port 8000 \
--gpu-memory-utilization 0.9 \
--max-model-len 1024 \
--model Qwen1.5-72B-Chat \ 
--tensor-parallel-size 8

部署成功:
image.png
image.png

查看 GPU 运行显存、功耗、进程等概况信息:
image.png

三、大模型API测试

3.1 API提问测试
(1)API提问测试

curl --location --request POST 'http://127.0.0.1:8000/v1/chat/completions' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{
   
  "model": "Qwen1.5-72B-Chat",
  "messages": [
    {
   
      "role": "user",
      "content": "帮我写一个PPT大纲,要10个章节,每个章节有3个小标题,PPT的主题是《AI的应用与发展》"
    }
  ]
}'

(2)测试结果:
服务端测试响应:

image.png

客户端回答结果:

image.png

(3)JSON格式化输出结果:

{
   
    "id": "chat-622a4bd175154ba69d94af454db21144",
    "object": "chat.completion",
    "created": 1728452929,
    "model": "Qwen1.5-72B-Chat",
    "choices": [
        {
   
            "index": 0,
            "message": {
   
                "role": "assistant",
                "content": "一、引言\n1.1 什么是AI(人工智能)\n1.2 AI的历史发展\n1.3 AI在现代生活中的重要性\n\n二、AI的基础技术\n2.1 机器学习\n2.1.1 监督学习\n2.1.2 无监督学习\n2.1.3 强化学习\n2.2 人工智能算法\n2.2.1 决策树\n2.2.2 神经网络\n2.2.3 支持向量机\n2.3 大数据与云计算在AI中的作用\n2.3.1 大数据的定义与应用\n2.3.2 云计算的原理与功能\n2.3.3 大数据与云计算的结合\n\n三、AI在工业领域的应用\n3.1 智能制造\n3.1.1 自动化生产线\n3.1.2 预测性维护\n3.1.3 质量控制\n3.2 工业机器人\n3.2.1 机器人在生产线上的角色\n3.2.2 服务机器人\n3.2.3 未来发展趋势\n\n四、AI在医疗领域的应用\n4.1 诊断辅助\n4.1.1 影像识别\n4.1.2 病理分析\n4.1.3 个性化医疗\n4.2 患者管理\n4.2.1 健康监测\n4.2.2 远程医疗\n4.2.3 患者咨询服务\n\n五、AI在教育领域的应用\n5.1 智能教学\n5.1.1 个性化学习路径\n5.1.2 人工智能教师\n5.1.3 在线评估系统\n5.2 教育管理\n5.2.1 学生行为分析\n5.2.2 资源推荐\n5.2.3 教学资源的智能化\n\n六、AI在交通领域的应用\n6.1 自动驾驶\n6.1.1 无人驾驶汽车\n6.1.2 无人机配送\n6.1.3 智能交通管理\n6.2 交通预测与规划\n6.2.1 交通流量预测\n6.2.2 交通路线优化\n6.2.3 共享出行服务\n\n七、AI在金融领域的应用\n7.1 风险评估\n7.1.1 信用评级\n7.1.2 诈骗检测\n7.1.3 投资策略\n7.2 金融服务\n7.2.1 个性化理财\n7.2.2 自动化交易\n7.2.3 无人银行\n\n八、AI在娱乐领域的应用\n8.1 个性化推荐\n8.1.1 视频推荐\n8.1.2 音乐推荐\n8.1.3 游戏AI\n8.2 虚拟现实与增强现实\n8.2.1 VR/AR技术\n8.2.2 内容创造\n8.2.3 互动体验\n\n九、AI的伦理与挑战\n9.1 隐私保护\n9.1.1 数据安全\n9.1.2 用户隐私\n9.2 工作岗位影响\n9.2.1 自动化失业\n9.2.2 职业转型\n9.3 AI决策的透明度与公平性\n\n十、AI的未来展望\n10.1 AI技术的持续创新\n10.1.1 量子计算\n10.1.2 量子人工智能\n10.2 AI的社会影响\n10.2.1 社会结构变化\n10.2.2 全球化趋势\n10.3 人与AI的共生\n10.3.1 人机合作\n10.3.2 AI伦理法规建设\n10.3.3 AI教育与培训的必要性",
                "tool_calls": []
            },
            "logprobs": null,
            "finish_reason": "stop",
            "stop_reason": null
        }
    ],
    "usage": {
   
        "prompt_tokens": 48,
        "total_tokens": 917,
        "completion_tokens": 869
    },
    "prompt_logprobs": null
}

image.png

API测试结果分析:

INFO 10-09 13:48:49 logger.py:36] Received request chat-622a4bd175154ba69d94af454db21144: prompt: '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n<|im_start|>user\n帮我写一个PPT大纲,要10个章节,每个章节有3个小标题,PPT的主题是《AI的应用与发展》<|im_end|>\n<|im_start|>assistant\n', params: SamplingParams(n=1, best_of=1, presence_penalty=0.0, frequency_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=1.0, top_k=-1, min_p=0.0, seed=None, use_beam_search=False, length_penalty=1.0, early_stopping=False, stop=[], stop_token_ids=[], include_stop_str_in_output=False, ignore_eos=False, max_tokens=976, min_tokens=0, logprobs=None, prompt_logprobs=None, skip_special_tokens=True, spaces_between_special_tokens=True, truncate_prompt_tokens=None), prompt_token_ids: [151644, 8948, 198, 2610, 525, 264, 10950, 17847, 13, 151645, 198, 151644, 872, 198, 108965, 61443, 46944, 47, 2828, 116472, 3837, 30534, 16, 15, 18947, 113066, 3837, 103991, 113066, 18830, 18, 110026, 60396, 3837, 47, 2828, 109151, 20412, 26940, 15469, 106736, 111636, 25067, 151645, 198, 151644, 77091, 198], lora_request: None, prompt_adapter_request: None.
INFO 10-09 13:48:49 engine.py:288] Added request chat-622a4bd175154ba69d94af454db21144.
INFO 10-09 13:48:50 metrics.py:351] Avg prompt throughput: 9.6 tokens/s, Avg generation throughput: 2.2 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.8%, CPU KV cache usage: 0.0%.
INFO 10-09 13:48:55 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 2.5%, CPU KV cache usage: 0.0%.
INFO 10-09 13:49:00 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 4.1%, CPU KV cache usage: 0.0%.
INFO 10-09 13:49:05 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 5.8%, CPU KV cache usage: 0.0%.
INFO 10-09 13:49:10 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 7.4%, CPU KV cache usage: 0.0%.
INFO 10-09 13:49:15 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 9.1%, CPU KV cache usage: 0.0%.
INFO 10-09 13:49:20 metrics.py:351] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 27.3 tokens/s, Running: 1 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 10.9%, CPU KV cache usage: 0.0%.

根据上述Qwen-72B-chat大模型推理部署测试结果,可以从以下几个指标分析系统的性能和效率:

  1. Prompt吞吐量:Avg prompt throughput 9.6 tokens/s,表明在输入初期有一定的prompt处理速度;
  2. 生成吞吐量(Throughput):Avg generation throughput 27.3,表示系统生成响应的速度为每秒生成27.3个token;
  3. KV缓存使用率:在推理过程中,GPU KV缓存的使用率逐渐增加,从0.8%上升到10.9%。这表明随着推理过程的进行,模型需要在GPU中存储更多的中间状态数据,但增长率稳定且控制在低水平,说明缓存管理较为高效。
  4. 请求处理状态:
    • Running requests: 只有1个请求在处理(Running: 1 reqs);
    • Pending:没有带处理的状态(Pending: 0 reqs);
    • Swapped requests:被交换出去的请求(Swapped: 0 reqs);

测试结果统计
image.png

(4)显存占用情况:
显存使用情况,可用通过nvidia-smi 工具搜集GPU加速卡概况信息中查看,情况见下图:
(1)测试前:8张GPU卡显存使用均为0MB;
(2)测试中:8张GPU卡平均显存使用为 21441.25MB;

image.png

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
3月前
|
人工智能 运维 Serverless
0 代码,一键部署 Qwen3
依托于阿里云函数计算 FC 算力,Serverless + AI 开发平台 FunctionAI 现已提供模型服务、应用模版两种部署方式辅助您部署 Qwen3 系列模型。完成模型部署后,您即可与模型进行对话体验;或以 API 形式进行调用,接入 AI 应用中,欢迎您立即体验。
|
4月前
|
人工智能 并行计算 持续交付
如何使用龙蜥衍生版KOS,2步实现大模型训练环境部署
大幅降低了用户开发和应用大模型的技术门槛。
|
4月前
|
人工智能 弹性计算 自然语言处理
从0到1部署大模型,计算巢模型市场让小白秒变专家
阿里云计算巢模型市场依托阿里云弹性计算资源,支持私有化部署,集成通义千问、通义万象、Stable Diffusion等领先AI模型,覆盖大语言模型、文生图、多模态、文生视频等场景。模型部署在用户云账号下,30分钟极速上线,保障数据安全与权限自主控制,适用于企业级私有部署及快速原型验证场景。
|
4月前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
692 10
|
4月前
|
存储 文字识别 自然语言处理
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
本文深入探讨了通义大模型在文档自动化处理中的应用,重点解决传统OCR识别精度低、效率瓶颈等问题。通过多模态编码与跨模态融合技术,通义大模型实现了高精度的文本检测与版面分析。文章详细介绍了OCR集成流程、批量处理优化策略及实战案例,展示了动态批处理和分布式架构带来的性能提升。实验结果表明,优化后系统处理速度可达210页/分钟,准确率达96.8%,单文档延迟降至0.3秒,为文档处理领域提供了高效解决方案。
514 0
|
27天前
|
缓存 API 调度
70_大模型服务部署技术对比:从框架到推理引擎
在2025年的大模型生态中,高效的服务部署技术已成为连接模型能力与实际应用的关键桥梁。随着大模型参数规模的不断扩大和应用场景的日益复杂,如何在有限的硬件资源下实现高性能、低延迟的推理服务,成为了所有大模型应用开发者面临的核心挑战。
|
27天前
|
监控 安全 数据安全/隐私保护
55_大模型部署:从云端到边缘的全场景实践
随着大型语言模型(LLM)技术的飞速发展,从实验室走向产业化应用已成为必然趋势。2025年,大模型部署不再局限于传统的云端集中式架构,而是向云端-边缘协同的分布式部署模式演进。这种转变不仅解决了纯云端部署在延迟、隐私和成本方面的痛点,还为大模型在各行业的广泛应用开辟了新的可能性。本文将深入剖析大模型部署的核心技术、架构设计、工程实践及最新进展,为企业和开发者提供从云端到边缘的全场景部署指南。
|
27天前
|
人工智能 监控 安全
06_LLM安全与伦理:部署大模型的防护指南
随着大型语言模型(LLM)在各行业的广泛应用,其安全风险和伦理问题日益凸显。2025年,全球LLM市场规模已超过6400亿美元,年复合增长率达30.4%,但与之相伴的是安全威胁的复杂化和伦理挑战的多元化