rtp-llm 项目简介
项目背景
rtp-llm 是由阿里巴巴的基础模型推理团队开发的大型语言模型(LLM)推理加速引擎。它被广泛应用于阿里巴巴集团内的多个业务领域,如淘宝、天猫、闲鱼、菜鸟、阿里地图、饿了么、全球速卖通以及Lazada等。rtp-llm 项目属于 havenask 的子项目。
项目新闻
- 2024年6月更新:发布全新的 rtp-llm 版本,采用 C++ 重构的调度和批处理框架,具备完整的 GPU 内存管理和分配跟踪功能,并引入新的设备后端。
- 2024年6月目标:正在与硬件制造商紧密合作,计划支持多个硬件后端,包括 AMD ROCm、Intel CPU 和 ARM CPU,敬请期待。
主要特点
经过生产验证
rtp-llm 已在众多大型语言模型应用场景中使用,包括但不限于:
- 淘宝问问
- 阿里巴巴国际 AI 平台 Aidge
- OpenSearch LLM 智能问答版
- 基于大型语言模型的淘宝搜索长尾查询重写
高性能
- 利用高性能 CUDA 核心,如 PagedAttention、FlashAttention、FlashDecoding 等
- 实现 WeightOnly INT8 量化,并在加载时自动量化;支持 WeightOnly INT4 量化
- 自适应 KVCache 量化
- 在框架层面优化动态批处理开销
- 针对 V100 GPU 进行专门优化
灵活易用
- 与 HuggingFace 模型无缝集成,支持多种权重格式如 SafeTensors、Pytorch 和 Megatron
- 单个模型实例支持多个 LoRA 服务部署
- 处理多模态输入(图像与文本结合)
- 支持多机/多 GPU 张量并行
- 支持 P-tuning 模型
先进的加速技术
- 支持裁剪后的不规则模型加载
- 多轮对话的上下文前缀缓存
- 系统提示缓存
- 推测性解码
- 高级并行化策略的 Medusa
如何使用
系统要求
- 操作系统:Linux
- Python 版本:3.10
- NVIDIA GPU:计算能力 7.0 或更高(如 RTX20xx、RTX30xx、RTX40xx、V100、T4、A10/A30/A100、L4、H100 等)
启动示例
使用 Docker
cd rtp-llm/docker
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}}'
使用 WHL
cd rtp-llm
pip3 install -r ./open_source/deps/requirements_torch_gpu.txt
pip3 install maga_transformer-0.1.9+cuda118-cp310-cp310-manylinux1_x86_64.whl
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}}'
常见问题
- libcufft.so 问题:检查 CUDA 和 rtp-llm 版本是否匹配。
- libth_transformer.so 问题:确认当前路径不是 rtp-llm,以避免使用相对路径包。
- Bazel 构建超时:更改 pip 镜像或手动安装依赖。
- Curl 错误:更新 tiktoken 至 0.7.0。
支持的模型列表
大型语言模型(LLM)
- Aquila 和 Aquila2
- Baichuan 和 Baichuan2
- Bloom
- ChatGlm
- Falcon
- GptNeox
- GPT BigCode
- LLaMA 和 LLaMA-2
- MPT
- Phi
- Qwen
- InternLM
- Gemma
- Mixtral
大型语言模型 + 多模态
- LLAVA
- Qwen-VL
联系我们
- 钉钉交流群
- 微信交流群