2024
- [2024/08] 🔥🔥 LMDeployはmodelscope/swiftに統合され、VLMs推論のデフォルトアクセラレータとなりました
- [2024/07] 🎉🎉 Llama3.1 8B、70Bおよびそのツールコールをサポート
- [2024/07] InternVL2全シリーズモデル、InternLM-XComposer2.5およびInternLM2.5のファンクションコールをサポート
- [2024/06] PyTorchエンジンはDeepSeek-V2およびいくつかのVLMs、例えばCogVLM2、Mini-InternVL、LlaVA-Nextをサポート
- [2024/05] 複数のGPUでVLMsをデプロイする際にビジョンモデルをバランスさせる
- [2024/05] InternVL v1.5、LLaVa、InternLMXComposer2などのVLMsで4ビットの重みのみの量子化と推論をサポート
- [2024/04] Llama3およびInternVL v1.1、v1.2、MiniGemini、InternLMXComposer2などのVLMモデルをサポート
- [2024/04] TurboMindはすべてのサポートされているデバイスでのオンラインint8/int4 KVキャッシュ量子化と推論を追加しました。詳細なガイドはこちらを参照してください
- [2024/04] TurboMindの最新アップグレードによりGQAが強化され、internlm2-20bモデルの推論が16+ RPSに達し、vLLMの約1.8倍の速さになりました
- [2024/04] Qwen1.5-MOEおよびdbrxをサポート
- [2024/03] DeepSeek-VLのオフライン推論パイプラインとサービングをサポート
- [2024/03] VLMのオフライン推論パイプラインとサービングをサポート
- [2024/02] Qwen 1.5、Gemma、Mistral、Mixtral、Deepseek-MOEなどをサポート
- [2024/01] OpenAOEがLMDeployサービングサービスとシームレスに統合されました
- [2024/01] 複数モデル、複数マシン、複数カードの推論サービスをサポート。使用方法はこちらを参照してください
- [2024/01] PyTorch推論エンジンをサポートし、完全にPythonで開発されており、開発者の障壁を下げ、新機能や技術の迅速な実験を可能にします
2023
- [2023/12] Turbomindはマルチモーダル入力をサポート
- [2023/11] Turbomindはhfモデルの直接読み込みをサポート。詳細はこちらをクリックしてください
- [2023/11] TurboMindの主要なアップグレード、包括的なPaged Attention、シーケンス長制限のない高速なアテンションカーネル、2倍速いKV8カーネル、Split-Kデコーディング(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ビット推論をサポートし、FP16の2.4倍の速さで、最速のオープンソース実装です。詳細な情報はこちらのガイドを確認してください
- [2023/08] LMDeployはHuggingFace Hubで提供され、すぐに使用できる4ビットモデルを提供します
- [2023/08] LMDeployはAWQアルゴリズムを使用した4ビット量子化をサポート
- [2023/07] TurboMindはGQAを使用したLlama-2 70Bをサポート
- [2023/07] TurboMindはLlama-2 7B/13Bをサポート
- [2023/07] TurboMindはInternLMのテンソル並列推論をサポート
LMDeployは、MMRazorおよびMMDeployチームによって開発された、LLMの圧縮、デプロイ、およびサービングのためのツールキットです。以下の主要な機能を備えています:
-
効率的な推論:LMDeployは、persistent batch(連続バッチ)、ブロック化されたKVキャッシュ、動的分割と融合、テンソル並列、高性能なCUDAカーネルなどの主要な機能を導入し、vLLMよりも最大1.8倍のリクエストスループットを提供します。
-
効果的な量子化:LMDeployは、重みのみおよびk/vの量子化をサポートし、4ビットの推論性能はFP16の2.4倍です。量子化の品質はOpenCompassの評価を通じて確認されています。
-
簡単な分散サーバー:リクエスト分散サービスを活用することで、LMDeployは複数のマシンおよびカードにわたるマルチモデルサービスのデプロイを容易にします。
-
インタラクティブな推論モード:マルチラウンドの対話プロセス中にアテンションのk/vをキャッシュすることで、エンジンは対話履歴を記憶し、履歴セッションの繰り返し処理を回避します。
-
優れた互換性:LMDeployは、KV Cache Quant、AWQ、およびAutomatic Prefix Cachingを同時に使用することをサポートします。
LMDeploy TurboMindエンジンは卓越した推論能力を持ち、さまざまな規模のモデルで、vLLMの1.36〜1.85倍のリクエストを毎秒処理します。静的推論能力の面では、TurboMind 4ビットモデルの推論速度(out token/s)はFP16/BF16推論をはるかに上回ります。小さなバッチでは、2.4倍に向上します。
詳細な推論ベンチマークについては、以下のリンクを参照してください:
- A100
- 4090
- 3090
- 2080
LLMs | VLMs |
|
|
LMDeployは、TurboMindおよびPyTorchの2つの推論エンジンを開発しました。それぞれ異なる焦点を持っています。前者は推論性能の究極の最適化を目指し、後者は完全にPythonで開発されており、開発者の障壁を下げることを目指しています。
サポートされているモデルの種類や推論データタイプに違いがあります。各エンジンの能力についてはこの表を参照し、実際のニーズに最適なものを選択してください。
クリーンなconda環境(Python 3.8 - 3.12)でlmdeployをインストールすることをお勧めします。
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
v0.3.0から、デフォルトの事前構築済みパッケージはCUDA 12でコンパイルされています。 CUDA 11+プラットフォームでのインストールに関する情報、またはソースからのビルド手順については、インストールガイドを参照してください。
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
openMind Hubからモデルを使用する場合は、pip install openmind_hub
コマンドでopenMind Hubをインストールし、環境変数を設定してください:
export LMDEPLOY_USE_OPENMIND_HUB=True
推論パイプラインに関する詳細情報はこちらを参照してください。
LMDeployの基本的な使用方法については、getting_startedセクションを参照してください。
詳細なユーザーガイドと高度なガイドについては、チュートリアルを参照してください:
- ユーザーガイド
- 高度なガイド
- LMDeployを使用してNVIDIA JetsonプラットフォームでLLMをオフラインでデプロイ:LMDeploy-Jetson
- LMDeployとBentoMLを使用してLLMをデプロイするためのサンプルプロジェクト:BentoLMDeploy
LMDeployへのすべての貢献に感謝します。貢献ガイドラインについては、CONTRIBUTING.mdを参照してください。
@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ライセンスの下でリリースされています。