Skip to content

Latest commit

 

History

History
247 lines (195 loc) · 11.9 KB

README_zh-CN.md

File metadata and controls

247 lines (195 loc) · 11.9 KB

最新进展 🎉

2024
  • [2024/08] 🔥🔥 LMDeploy现已集成至 modelscope/swift,成为 VLMs 推理的默认加速引擎
  • [2024/07] 🎉🎉 支持 Llama3.1 8B 和 70B 模型,以及工具调用功能
  • [2024/07] 支持 InternVL2 全系列模型,InternLM-XComposer2.5 模型和 InternLM2.5 的 function call 功能
  • [2024/06] PyTorch engine 支持了 DeepSeek-V2 和若干 VLM 模型推理, 比如 CogVLM2,Mini-InternVL,LlaVA-Next
  • [2024/05] 在多 GPU 上部署 VLM 模型时,支持把视觉部分的模型均分到多卡上
  • [2024/05] 支持InternVL v1.5, LLaVa, InternLMXComposer2 等 VLMs 模型的 4bit 权重量化和推理
  • [2024/04] 支持 Llama3 和 InternVL v1.1, v1.2,MiniGemini,InternLM-XComposer2 等 VLM 模型
  • [2024/04] TurboMind 支持 kv cache int4/int8 在线量化和推理,适用已支持的所有型号显卡。详情请参考这里
  • [2024/04] TurboMind 引擎升级,优化 GQA 推理。internlm2-20b 推理速度达 16+ RPS,约是 vLLM 的 1.8 倍
  • [2024/04] 支持 Qwen1.5-MOE 和 dbrx.
  • [2024/03] 支持 DeepSeek-VL 的离线推理 pipeline 和推理服务
  • [2024/03] 支持视觉-语言模型(VLM)的离线推理 pipeline 和推理服务
  • [2024/02] 支持 Qwen 1.5、Gemma、Mistral、Mixtral、Deepseek-MOE 等模型
  • [2024/01] OpenAOE 发布,支持无缝接入LMDeploy Serving Service
  • [2024/01] 支持多模型、多机、多卡推理服务。使用方法请参考此处
  • [2024/01] 增加 PyTorch 推理引擎,作为 TurboMind 引擎的补充。帮助降低开发门槛,和快速实验新特性、新技术
2023
  • [2023/12] Turbomind 支持多模态输入
  • [2023/11] Turbomind 支持直接读取 Huggingface 模型。点击这里查看使用方法
  • [2023/11] TurboMind 重磅升级。包括:Paged Attention、更快的且不受序列最大长度限制的 attention kernel、2+倍快的 KV8 kernels、Split-K decoding (Flash Decoding) 和 支持 sm_75 架构的 W4A16
  • [2023/09] TurboMind 支持 Qwen-14B
  • [2023/09] TurboMind 支持 InternLM-20B 模型
  • [2023/09] TurboMind 支持 Code Llama 所有功能:代码续写、填空、对话、Python专项。点击这里阅读部署方法
  • [2023/09] TurboMind 支持 Baichuan2-7B
  • [2023/08] TurboMind 支持 flash-attention2
  • [2023/08] TurboMind 支持 Qwen-7B,动态NTK-RoPE缩放,动态logN缩放
  • [2023/08] TurboMind 支持 Windows (tp=1)
  • [2023/08] TurboMind 支持 4-bit 推理,速度是 FP16 的 2.4 倍,是目前最快的开源实现。部署方式请看这里
  • [2023/08] LMDeploy 开通了 HuggingFace Hub ,提供开箱即用的 4-bit 模型
  • [2023/08] LMDeploy 支持使用 AWQ 算法进行 4-bit 量化
  • [2023/07] TurboMind 支持使用 GQA 的 Llama-2 70B 模型
  • [2023/07] TurboMind 支持 Llama-2 7B/13B 模型
  • [2023/07] TurboMind 支持 InternLM 的 Tensor Parallel 推理
______________________________________________________________________

简介

LMDeploy 由 MMDeployMMRazor 团队联合开发,是涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。 这个强大的工具箱提供以下核心功能:

  • 高效的推理:LMDeploy 开发了 Persistent Batch(即 Continuous Batch),Blocked K/V Cache,动态拆分和融合,张量并行,高效的计算 kernel等重要特性。推理性能是 vLLM 的 1.8 倍

  • 可靠的量化:LMDeploy 支持权重量化和 k/v 量化。4bit 模型推理效率是 FP16 下的 2.4 倍。量化模型的可靠性已通过 OpenCompass 评测得到充分验证。

  • 便捷的服务:通过请求分发服务,LMDeploy 支持多模型在多机、多卡上的推理服务。

  • 有状态推理:通过缓存多轮对话过程中 attention 的 k/v,记住对话历史,从而避免重复处理历史会话。显著提升长文本多轮对话场景中的效率。

  • 卓越的兼容性: LMDeploy 支持 KV Cache 量化, AWQAutomatic Prefix Caching 同时使用。

性能

LMDeploy TurboMind 引擎拥有卓越的推理能力,在各种规模的模型上,每秒处理的请求数是 vLLM 的 1.36 ~ 1.85 倍。在静态推理能力方面,TurboMind 4bit 模型推理速度(out token/s)远高于 FP16/BF16 推理。在小 batch 时,提高到 2.4 倍。

v0 1 0-benchmark

更多设备、更多计算精度、更多setting下的的推理 benchmark,请参考以下链接:

  • A100
  • 4090
  • 3090
  • 2080

支持的模型

LLMs VLMs
  • Llama (7B - 65B)
  • Llama2 (7B - 70B)
  • Llama3 (8B, 70B)
  • Llama3.1 (8B, 70B)
  • InternLM (7B - 20B)
  • InternLM2 (7B - 20B)
  • InternLM2.5 (7B)
  • Qwen (1.8B - 72B)
  • Qwen1.5 (0.5B - 110B)
  • Qwen1.5 - MoE (0.5B - 72B)
  • Qwen2 (0.5B - 72B)
  • Baichuan (7B)
  • Baichuan2 (7B-13B)
  • Code Llama (7B - 34B)
  • ChatGLM2 (6B)
  • GLM4 (9B)
  • CodeGeeX4 (9B)
  • Falcon (7B - 180B)
  • YI (6B-34B)
  • Mistral (7B)
  • DeepSeek-MoE (16B)
  • DeepSeek-V2 (16B, 236B)
  • Mixtral (8x7B, 8x22B)
  • Gemma (2B - 7B)
  • Dbrx (132B)
  • StarCoder2 (3B - 15B)
  • Phi-3-mini (3.8B)
  • LLaVA(1.5,1.6) (7B-34B)
  • InternLM-XComposer2 (7B, 4khd-7B)
  • InternLM-XComposer2.5 (7B)
  • Qwen-VL (7B)
  • DeepSeek-VL (7B)
  • InternVL-Chat (v1.1-v1.5)
  • InternVL2 (1B-76B)
  • MiniGeminiLlama (7B)
  • CogVLM-Chat (17B)
  • CogVLM2-Chat (19B)
  • MiniCPM-Llama3-V-2_5
  • Phi-3-vision (4.2B)
  • GLM-4V (9B)

LMDeploy 支持 2 种推理引擎: TurboMindPyTorch,它们侧重不同。前者追求推理性能的极致优化,后者纯用python开发,着重降低开发者的门槛。

它们在支持的模型类别、计算精度方面有所差别。用户可参考这里, 查阅每个推理引擎的能力,并根据实际需求选择合适的。

快速开始 Open In Colab

安装

我们推荐在一个干净的conda环境下(python3.8 - 3.12),安装 lmdeploy:

conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy

自 v0.3.0 起,LMDeploy 预编译包默认基于 CUDA 12 编译。如果需要在 CUDA 11+ 下安装 LMDeploy,或者源码安装 LMDeploy,请参考安装文档

离线批处理

import lmdeploy
pipe = lmdeploy.pipeline("internlm/internlm2-chat-7b")
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)

Note

LMDeploy 默认从 HuggingFace 上面下载模型,如果要从 ModelScope 上面下载模型,请通过命令 pip install modelscope 安装ModelScope,并设置环境变量:

export LMDEPLOY_USE_MODELSCOPE=True

关于 pipeline 的更多推理参数说明,请参考这里

用户教程

请阅读快速上手章节,了解 LMDeploy 的基本用法。

为了帮助用户更进一步了解 LMDeploy,我们准备了用户指南和进阶指南,请阅读我们的文档

社区项目

  • 使用LMDeploy在英伟达Jetson系列板卡部署大模型:LMDeploy-Jetson
  • 使用 LMDeploy 和 BentoML 部署大模型的示例项目:BentoLMDeploy

贡献指南

我们感谢所有的贡献者为改进和提升 LMDeploy 所作出的努力。请参考贡献指南来了解参与项目贡献的相关指引。

致谢

引用

@misc{2023lmdeploy,
    title={LMDeploy: A Toolkit for Compressing, Deploying, and Serving LLM},
    author={LMDeploy Contributors},
    howpublished = {\url{https://github.com/InternLM/lmdeploy}},
    year={2023}
}

开源许可证

该项目采用 Apache 2.0 开源许可证