RTP-LLM: 阿里巴巴的高性能大语言模型推理引擎
在人工智能和大语言模型(LLM)快速发展的今天,高效的模型推理成为了一个关键挑战。阿里巴巴基础模型推理团队开发的RTP-LLM项目应运而生,旨在解决这一难题。本文将深入探讨RTP-LLM的特性、应用场景以及它如何推动大语言模型在实际生产环境中的应用。
RTP-LLM简介
RTP-LLM是阿里巴巴开源的一个大语言模型推理加速引擎。它不仅在阿里巴巴集团内部广泛使用,支持包括淘宝、天猫、闲鱼、菜鸟、高德、饿了么、AE和Lazada等多个业务单元的LLM服务,同时也作为havenask项目的子项目向公众开放。
核心特性
RTP-LLM的设计理念围绕高性能、灵活性和易用性展开,主要特性包括:
-
生产环境验证:RTP-LLM已在多个实际场景中得到应用,如淘宝问问、阿里巴巴国际AI平台Aidge、OpenSearch LLM智能问答版等。
-
高性能:
-
灵活性和易用性:
- 与HuggingFace模型无缝集成,支持SafeTensors、Pytorch和Megatron等多种权重格式。
- 可以使用单个模型实例部署多个LoRA服务。
- 处理多模态输入(结合图像和文本)。
- 支持多机/多GPU张量并行。
- 支持P-tuning模型。
-
先进加速技术:
- 加载修剪后的不规则模型。
- 用于多轮对话的上下文前缀缓存。
- 系统提示缓存。
- 推测解码。
- 使用Medusa进行高级并行化策略。
应用场景
RTP-LLM在阿里巴巴集团内外都有广泛的应用。以下是一些典型的应用场景:
-
淘宝问问:利用RTP-LLM提供智能客服和商品咨询服务。
-
阿里巴巴国际AI平台Aidge:为全球用户提供AI能力。
-
OpenSearch LLM智能问答版:增强搜索引擎的问答能力。
-
淘宝搜索长尾查询重写:利用大语言模型改善搜索体验。
这些应用充分展示了RTP-LLM在实际生产环境中的价值和潜力。
支持的模型
RTP-LLM支持多种主流的大语言模型,包括但不限于:
- Aquila和Aquila2系列
- Baichuan和Baichuan2系列
- Bloom系列
- ChatGLM系列
- Falcon系列
- GPT Neox
- GPT BigCode
- LLaMA和LLaMA-2系列
- MPT系列
- Phi系列
- Qwen系列
- InternLM系列
- Gemma系列
- Mixtral系列
此外,RTP-LLM还支持多模态模型,如LLAVA和Qwen-VL,进一步扩展了其应用范围。
使用指南
要开始使用RTP-LLM,您需要满足以下要求:
- 操作系统:Linux
- Python版本:3.10
- NVIDIA GPU:计算能力7.0或更高(如RTX20xx、RTX30xx、RTX40xx、V100、T4、A10/A30/A100、L4、H100等)
RTP-LLM提供了两种安装方式:Docker和wheel包。以下是使用Docker的简单启动示例:
cd rtp-llm/docker
# IMAGE_NAME =
# if cuda11: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda11
# if cuda12: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda12
sh ./create_container.sh <CONTAINER_NAME> <IMAGE_NAME>
sh CONTAINER_NAME/sshme.sh
cd ../
# 启动HTTP服务
TOKENIZER_PATH=/path/to/tokenizer CHECKPOINT_PATH=/path/to/model MODEL_TYPE=your_model_type FT_SERVER_TEST=1 python3 -m maga_transformer.start_server
# 向服务器发送请求
curl -XPOST http://localhost:8088 -d '{"prompt": "hello, what is your name", "generate_config": {"max_new_tokens": 1000}}'
性能优化
RTP-LLM的核心优势之一是其出色的性能。这得益于以下几个方面的优化:
-
高性能CUDA内核:利用PagedAttention、FlashAttention和FlashDecoding等技术,大幅提升计算效率。
-
量化技术:通过WeightOnly INT8和INT4量化,在保持模型性能的同时显著减少内存占用和计算开销。
-
动态批处理优化:在框架层面对动态批处理进行了细致的优化,提高了模型处理多个请求的效率。
-
GPU特化优化:针对V100等特定GPU型号进行了专门的优化,充分发挥硬件潜力。
这些优化使得RTP-LLM能够在实际生产环境中处理高并发请求,同时保持低延迟和高吞吐量。
开源社区与贡献
RTP-LLM项目的成功离不开开源社区的支持。项目主要基于FasterTransformer,并集成了来自TensorRT-LLM的一些内核实现。此外,Flash-Attention2和cutlass在性能优化过程中提供了重要帮助。
项目的连续批处理和增量解码借鉴了vllm的实现,采样部分参考了transformers,推测采样集成了Medusa的实现,多模态部分则整合了来自llava和qwen-vl的实现。
RTP-LLM团队欢迎社区贡献,无论是bug修复、新功能开发还是文档改进。有兴趣的开发者可以查看项目的Contributing指南了解更多详情。
未来展望
随着人工智能技术的不断发展,RTP-LLM也在持续进化。项目团队正在努力支持更多硬件后端,包括AMD ROCm、Intel CPU和ARM CPU。这将使RTP-LLM能够在更广泛的硬件平台上运行,为更多用户提供高性能的LLM推理服务。
此外,RTP-LLM还计划进一步优化性能,支持更多的模型架构和应用场景。随着项目的不断完善,我们可以期待看到RTP-LLM在更多领域发挥作用,推动大语言模型技术的普及和应用。
结语
RTP-LLM作为阿里巴巴开源的高性能大语言模型推理引擎,展现了强大的性能和灵活性。它不仅在阿里巴巴内部得到广泛应用,也为整个AI社区提供了宝贵的工具和经验。随着项目的不断发展和社区的积极参与,RTP-LLM有望在推动大语言模型技术的实际应用和创新方面发挥更大的作用。
无论您是AI研究人员、开发者还是对大语言模型应用感兴趣的用户,RTP-LLM都值得您深入探索和尝试。让我们共同期待RTP-LLM在未来带来更多令人兴奋的突破和应用!