[OSS紹介#74] LMDeploy:LLMの圧縮とデプロイを効率化する新ツールの紹介

この記事について

この記事では、オープンソースソフトウェア(OSS)の中でも特に注目される「LMDeploy」を紹介します。このツールは、開発者が大規模言語モデル(LLM)を効率的に圧縮、展開、提供するための強力なキットとして設計されています。

最近のディープラーニングや自然言語処理の進展に伴い、大規模言語モデルの需要は急増しています。しかし、高性能なモデルは動作に必要なリソースが膨大であり、開発者や研究者にとってはコストの面で大きな課題となります。そこでLMDeployは、性能を損なうことなく、リソースの利用を最適化するためのソリューションを提供します。

このブログ記事では、LMDeployの主な機能やメリット、具体的な使用例などを詳しく解説することで、開発者がこのツールを活用する意義を探ります。LMDeployを利用することで、モデルの展開や運用がより簡易かつ効率的になり、開発者は本来の業務に集中できる環境が整います。ぜひ、次の章でその詳細をご覧ください。

リンク:https://github.com/InternLM/lmdeploy


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. LMDeployの機能

LMDeployは、LLM(大規模言語モデル)の圧縮、デプロイ、提供を目的としたツールキットであり、以下のコア機能を提供します。

1.1 効率的な推論

LMDeployは、持続バッチやブロックKVキャッシュ、動的スプリット&フューズ、テンソル並列処理、高性能CUDAカーネルなどの重要な機能を導入することで、vLLMに対して最大1.8倍のリクエストスループットを実現します。

1.2 効果的な量子化

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

1.3 簡単な配信サーバー

リクエスト配信サービスを活用することで、複数のマシンやカードにわたるマルチモデルサービスの簡単かつ効率的なデプロイを実現します。

1.4 インタラクティブな推論モード

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

1.5 優れた互換性

KVキャッシュ量子化、AWQ、オートマチックプレフィックスキャッシングなどの機能を同時に使用できます。

2. セットアップ手順

LMDeployのインストールは、推奨される方法としてpipを使用し、conda環境を利用することが推奨されています(Python 3.8 – 3.12)。以下の手順に従って環境をセットアップします。

conda環境の作成とアクティブ化は以下のコマンドで行います。

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

次に、LMDeployをインストールします。

pip install lmdeploy

LMDeployのデフォルトのプリビルドパッケージは、CUDA 12でコンパイルされています。CUDA 11以上のプラットフォームにおけるインストール方法やソースからビルドする手順については、インストールガイドを参照してください。また、LMDeployを使用するには、CUDAが正しくインストールされていることを確認してください。

3. 簡単な使い方

LMDeployを使用するための基本的な手順は以下の通りです。まず、オフラインバッチ推論の例を示します。

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

デフォルトでは、LMDeployはHuggingFaceからモデルをダウンロードします。もしModelScopeからのモデルを使用したい場合は、以下のコマンドでModelScopeをインストールし、環境変数を設定してください。

pip install modelscope
export LMDEPLOY_USE_MODELSCOPE=True

また、openMind Hubからのモデルを使用する場合は、次のようにします。

pip install openmind_hub
export LMDEPLOY_USE_OPENMIND_HUB=True

推論パイプラインに関する詳細は、こちらを参照してください。

4. 結論

LMDeployは、LLMのデプロイと提供を効率的に行うための強力なツールキットです。効率的な推論や量子化機能、簡単なサーバーデプロイメントを提供し、開発者にとって非常に便利な環境を整えています。特に、複数のモデルを使ったサービスを簡単に展開できる点は、多様なアプリケーションに対して大きな利点をもたらします。LMDeployを活用することで、LLMのポテンシャルを最大限に引き出すことができます。このツールを使って、性能向上やデプロイの簡略化を実現しましょう。