Skip to content

Latest commit

 

History

History
262 lines (209 loc) · 14.7 KB

README_ja.md

File metadata and controls

262 lines (209 loc) · 14.7 KB

最新ニュース 🎉

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] OpenAOELMDeployサービングサービスとシームレスに統合されました
  • [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 QuantAWQ、およびAutomatic Prefix Cachingを同時に使用することをサポートします。

パフォーマンス

LMDeploy TurboMindエンジンは卓越した推論能力を持ち、さまざまな規模のモデルで、vLLMの1.36〜1.85倍のリクエストを毎秒処理します。静的推論能力の面では、TurboMind 4ビットモデルの推論速度(out token/s)はFP16/BF16推論をはるかに上回ります。小さなバッチでは、2.4倍に向上します。

v0 1 0-benchmark

詳細な推論ベンチマークについては、以下のリンクを参照してください:

  • A100
  • 4090
  • 3090
  • 2080

サポートされているモデル

LLMs VLMs
  • Llama (7B - 65B)
  • Llama2 (7B - 70B)
  • Llama3 (8B, 70B)
  • Llama3.1 (8B, 70B)
  • Llama3.2 (1B, 3B)
  • 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)
  • Phi-3.5-mini (3.8B)
  • Phi-3.5-MoE (16x3.8B)
  • MiniCPM3 (4B)
  • 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)
  • Mono-InternVL (2B)
  • ChemVLM (8B-26B)
  • MiniGeminiLlama (7B)
  • CogVLM-Chat (17B)
  • CogVLM2-Chat (19B)
  • MiniCPM-Llama3-V-2_5
  • MiniCPM-V-2_6
  • Phi-3-vision (4.2B)
  • Phi-3.5-vision (4.2B)
  • GLM-4V (9B)
  • Llama3.2-vision (11B, 90B)
  • Molmo (7B-D,72B)

LMDeployは、TurboMindおよびPyTorchの2つの推論エンジンを開発しました。それぞれ異なる焦点を持っています。前者は推論性能の究極の最適化を目指し、後者は完全にPythonで開発されており、開発者の障壁を下げることを目指しています。

サポートされているモデルの種類や推論データタイプに違いがあります。各エンジンの能力についてはこの表を参照し、実際のニーズに最適なものを選択してください。

クイックスタート Open In Colab

インストール

クリーンな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ライセンスの下でリリースされています。