Home
Login

LMDeployは、大規模言語モデルを圧縮、デプロイ、およびサービス提供するためのツールキットです。

Apache-2.0Python 6.6kInternLM Last Updated: 2025-06-19

LMDeploy プロジェクト詳細

プロジェクト概要

LMDeploy は、大規模言語モデルを圧縮、デプロイ、およびサービス提供するためのツールキットであり、MMRazor と MMDeploy チームによって開発されました。このプロジェクトは、大規模言語モデル (LLM) および視覚-言語モデル (VLM) に、効率的な推論、デプロイ、およびサービスソリューションを提供することに焦点を当てています。

主要な特徴

1. 効率的な推論 (Efficient Inference)

LMDeploy のリクエストスループットは vLLM より 1.8 倍高く、持続的バッチ処理 (continuous batching)、チャンク化された KV キャッシュ、動的分割融合、テンソル並列処理、高性能 CUDA カーネルなどの主要な機能が導入されています。

2. 効果的な量子化 (Effective Quantization)

LMDeploy は重み量子化と k/v 量子化をサポートしており、4 ビット推論の性能は FP16 より 2.4 倍高く、量子化品質は OpenCompass によって評価され確認されています。

3. 簡単な分散サービス (Effortless Distribution Server)

リクエスト分散サービスを利用することで、LMDeploy は複数のマシンと複数のカードに、簡単かつ効率的にマルチモデルサービスをデプロイできます。

4. インタラクティブ推論モード (Interactive Inference Mode)

複数ターンの対話プロセス中に注意の k/v をキャッシュすることで、エンジンは対話履歴を記憶し、履歴セッションの繰り返し処理を回避します。

5. 優れた互換性 (Excellent Compatibility)

LMDeploy は、KV Cache 量子化、AWQ、および自動プレフィックスキャッシュの同時使用をサポートしています。

デュアルエンジンアーキテクチャ

LMDeploy は 2 つの推論エンジンを開発しました。

TurboMind エンジン

  • 焦点: 推論性能の究極の最適化を追求
  • 特徴: 高度に最適化された C++/CUDA 実装、本番環境向けに設計

PyTorch エンジン

  • 焦点: 純粋な Python 開発、開発者の参入障壁を低減
  • 特徴: 新しい機能や技術を迅速に実験しやすく、拡張とカスタマイズが容易

2 つのエンジンは、サポートするモデルタイプと推論データタイプが異なり、ユーザーは実際のニーズに応じて適切なエンジンを選択できます。

サポートするモデル

LMDeploy は幅広いモデルタイプをサポートしています。

大規模言語モデル (LLMs)

  • InternLM シリーズ (InternLM、InternLM2、InternLM2.5、InternLM3)
  • Llama シリーズ (Llama2、Llama3、Llama3.1)
  • Qwen シリーズ (Qwen1.5、Qwen1.5-MOE など)
  • Baichuan2 シリーズ
  • Mistral、Mixtral
  • DeepSeek シリーズ
  • Gemma
  • Code Llama
  • より多くのモデルが継続的に追加されています

視覚-言語モデル (VLMs)

  • InternVL シリーズ
  • InternLM-XComposer シリーズ
  • LLaVA シリーズ
  • CogVLM シリーズ
  • Mini-InternVL
  • DeepSeek-VL
  • より多くのマルチモーダルモデル

インストール方法

迅速なインストール

conda 環境で pip を使用してインストールすることをお勧めします (Python 3.8-3.12 をサポート):

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

注意事項

  • デフォルトの事前構築済みパッケージは CUDA 12 に基づいてコンパイルされています (v0.3.0 バージョン以降)
  • CUDA 11+ プラットフォームのインストールをサポート
  • ソースコードからの構築をサポート

迅速な使用例

基本的な推論

import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
    response = pipe(["Hi, pls intro yourself", "Shanghai is"])
    print(response)

マルチモーダル推論

from lmdeploy import pipeline
from lmdeploy.vl import load_image

pipe = pipeline('OpenGVLab/InternVL2-8B')
image = load_image('path/to/image.jpg')
response = pipe(('描述这张图片', image))
print(response)

モデルソースのサポート

LMDeploy は複数のモデルライブラリをサポートしています。

  1. HuggingFace (デフォルト)
  2. ModelScope: 環境変数 LMDEPLOY_USE_MODELSCOPE=True を設定
  3. openMind Hub: 環境変数 LMDEPLOY_USE_OPENMIND_HUB=True を設定

アプリケーションシナリオ

  1. 本番環境へのデプロイ: 高スループットの LLM サービス
  2. 研究開発実験: 新しいモデルとアルゴリズムの迅速な検証
  3. リソース制約のある環境: 量子化技術によるリソース要件の削減
  4. マルチモーダルアプリケーション: 視覚-言語モデルの効率的な推論
  5. エッジデバイス: NVIDIA Jetson などのプラットフォームをサポート

エコシステム統合

LMDeploy は複数のオープンソースプロジェクトと深く統合されています。

  • OpenAOE: LMDeploy サービスとのシームレスな統合
  • Swift: デフォルトの VLM 推論アクセラレータとして
  • BentoML: デプロイのサンプルプロジェクトを提供
  • Jetson プラットフォーム: 専用のエッジデバイスアダプテーション

まとめ

LMDeploy は、強力で高性能な大規模言語モデルのデプロイツールキットであり、研究開発実験から本番デプロイまで、さまざまなシナリオに適しています。そのデュアルエンジンアーキテクチャ、高度な量子化技術、および幅広いモデルサポートにより、AI アプリケーション開発者にとって重要なツール選択肢となっています。究極のパフォーマンスを追求する本番環境でも、迅速なイテレーションが必要な研究開発シナリオでも、LMDeploy は適切なソリューションを提供できます。