ROCm项目中的LLM推理框架实践指南

ROCm项目中的LLM推理框架实践指南

ROCm AMD ROCm™ Software - GitHub Home ROCm 项目地址: https://gitcode.com/gh_mirrors/ro/ROCm

概述

在人工智能领域,大型语言模型(LLM)的推理部署是一个关键环节。AMD ROCm平台为LLM推理提供了强大的硬件加速支持,特别是针对AMD Instinct系列处理器进行了深度优化。本文将详细介绍如何在ROCm平台上使用两种主流的LLM推理框架:vLLM和Hugging Face TGI。

vLLM推理框架

核心优势

vLLM凭借其创新的PagedAttention算法在LLM推理领域脱颖而出。该算法通过动态分页机制显著降低了内存消耗并提高了吞吐量。传统方法需要为模型的最大输出token长度预留GPU高带宽内存(HBM),而vLLM则根据实际解码长度动态分配内存,这种机制在以下场景特别有效:

  • 多个请求共享相同的键值内容
  • 大范围束搜索(beam search)
  • 并行处理多个请求

此外,vLLM还集成了多种现代LLM加速和量化算法,包括:

  • Flash Attention
  • HIP和CUDA图
  • 张量并行多GPU支持
  • GPTQ和AWQ量化
  • Token推测技术

安装与部署

1. 构建Docker镜像
git clone https://github.com/vllm-project/vllm.git
cd vllm
docker build -f Dockerfile.rocm -t vllm-rocm .
单处理器系统部署
  1. 启动容器:
docker run -it \
   --network=host \
   --group-add=video \
   --ipc=host \
   --cap-add=SYS_PTRACE \
   --security-opt seccomp=unconfined \
   --device /dev/kfd \
   --device /dev/dri \
   -v <模型路径>:/app/model \
   vllm-rocm \
   bash
  1. 启动API服务:
python -m vllm.entrypoints.api_server --model /app/model --dtype float16 --port 8000 &
  1. 测试请求:
curl http://localhost:8000/generate -H "Content-Type: application/json" -d '{"prompt": "什么是AMD Instinct?", "max_tokens": 80, "temperature": 0.0 }'
多处理器系统部署
  1. 启动容器(同上)

  2. 使用张量并行启动服务(以2个GPU为例):

python -m vllm.entrypoints.api_server --model /app/model --dtype float16 -tp 2 --port 8000 &
  1. 多实例部署示例(使用不同端口和GPU):
ROCR_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.api_server --model /data/llama-2-7b-chat-hf --dtype float16 –tp 2 --port 8000 &
ROCR_VISIBLE_DEVICES=2,3 python -m vllm.entrypoints.api_server --model /data/llama-2-7b-chat-hf --dtype float16 –tp 2--port 8001 &

性能优化建议

对于MI300X处理器,ROCm提供了预构建的优化Docker镜像,包含:

  • ROCm运行时
  • vLLM框架
  • PyTorch
  • 调优配置文件

Hugging Face TGI框架

核心特性

Text Generation Inference(TGI)是Hugging Face推出的LLM服务框架,支持多种高性能加速算法:

  • Flash Attention和Paged Attention
  • CUDA/HIP图
  • 张量并行多GPU支持
  • GPTQ和AWQ量化
  • Token推测技术

安装与部署

1. 启动TGI容器
docker run --name tgi --rm -it --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
--device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 256g
--net host -v $PWD:/data
--entrypoint "/bin/bash"
--env HUGGINGFACE_HUB_CACHE=/data
ghcr.io/huggingface/text-generation-inference:latest-rocm
单处理器部署
  1. 启动服务:
export ROCM_USE_FLASH_ATTN_V2_TRITON=True
text-generation-launcher --model-id NousResearch/Meta-Llama-3-70B --dtype float16 --port 8000 &
  1. 测试请求:
curl http://localhost:8000/generate_stream -X POST -d '{"inputs":"什么是AMD Instinct?","parameters":{"max_new_tokens":20}}' -H 'Content-Type: application/json'
多处理器部署
  1. 启动服务(以4个GPU为例):
export ROCM_USE_FLASH_ATTN_V2_TRITON=True
text-generation-launcher --model-id NousResearch/Meta-Llama-3-8B --dtype float16 --port 8000 --num-shard 4 &

总结

ROCm平台为LLM推理提供了强大的支持,无论是使用vLLM还是TGI框架,都能充分发挥AMD处理器的性能优势。开发者可以根据具体需求选择合适的框架和部署方式:

  • vLLM适合需要高效内存管理和高吞吐量的场景
  • TGI提供更全面的服务和基准测试工具

对于MI300X等高性能处理器,建议使用ROCm提供的优化镜像以获得最佳性能。

ROCm AMD ROCm™ Software - GitHub Home ROCm 项目地址: https://gitcode.com/gh_mirrors/ro/ROCm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆希静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值