TGI Multi-LoRA: 1回デプロイで30モデルを提供

Hugging Face は Text Generation Inference (TGI) において Multi‑LoRA サービングを導入し、単一のベースモデルから動的に複数の専門化されたファインチューニングアダプタを提供できるようにしました。このアプローチにより、タスクごとのモデルを個別にデプロイする必要がなくなり、VRAM のオーバーヘッドと運用コストを大幅に削減できます。

専門化モデルの必要性

小規模で専門化されたモデルをファインチューニングすることは、汎用の大規模モデルを使用するよりも特定タスクでの性能が向上することが多いです。Hugging Face が引用する研究によれば、Mistral-7B-v0.1 をベースにしたタスク固有の LoRA は、特定のタスクで GPT‑4 を上回ることがあります。

性能面だけでなく、専門化モデルは組織に対して以下のような利点を提供します:

  • 適応性: 単一のベースモデル(例: Mistral や Llama)から、多様な下流タスク向けの多数の専門化モデルを構築できます。
  • 独立性: 各チームがデータ準備、評価、更新サイクルを独立して管理できます。
  • プライバシー: 専門化モデルにより、トレーニングデータの分離やプライバシー要件に基づくアクセス制御が容易になります。

技術的基盤: Low-Rank Adaptation (LoRA)

LoRA(Low‑Rank Adaptation)は、全パラメータを再学習せずに大規模事前学習モデルを効率的にファインチューニングする手法です。元の重みは凍結し、2 つの小さな行列(A と B)だけを学習します。

これらのアダプタは、フルモデルに比べて約 1% のストレージとメモリオーバーヘッドしか増加させません。例えば predibase/magicoder アダプタは 13.6 MB で、mistralai/Mistral-7B-v0.1 ベースモデル(14.48 GB)の 1/1000 未満のサイズです。30 個のアダプタを RAM にロードしても、VRAM の増加はおおよそ 3% にとどまります。

Multi-LoRA サービングの仕組み

Multi‑LoRA サービングにより、単一の TGI デプロイがリクエストに応じて適切な LoRA アダプタを動的に選択できます。各ユーザーリクエストは入力テキストと特定の adapter_id を含みます。TGI はこの ID を用いて該当リクエスト用のアダプタを選択し、1 つのベースモデルでヘテロジニアスなバッチを処理します。

デプロイ要件

Multi‑LoRA サービングを実装するには、以下の条件を満たす必要があります:

  • TGI バージョン: v2.1.1 以降。
  • ベースモデル: 互換性のあるベースモデル(例: mistralai/Mistral-7B-v0.1)。
  • 設定: LORA_ADAPTERS 環境変数にカンマ区切りでアダプタ ID のリストを設定する(例: LORA_ADAPTERS=predibase/customer_support,predibase/magicoder)。

APIによる利用

エンドポイントに問い合わせる際は、リクエストパラメータに adapter_id を指定する必要があります。

cURL の例:

curl 127.0.0.1:3000/generate \
    -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "inputs": "Hello who are you?",
  "parameters": {
    "max_new_tokens": 40,
    "adapter_id": "predibase/customer_support"
  }
}'

運用とコストへの影響

コスト効率

Multi‑LoRA サービングは、提供するアダプタ数に関わらずトークンあたりのコストが一定です。これは、複数のフルモデルを個別にデプロイする必要がなくなるためです。対照的に、各ファインチューニングモデルごとに専用デプロイを行うと、コストはモデル数に比例して増加します。

スケーリングと使用パターン

複数モデルを 1 つのデプロイに統合することで GPU 利用率が安定します。個別の専門化モデルは使用が断続的またはバースト的になることがありますが、複数アダプタの合計需要はより平滑化され、スケーリングが容易になり GPU 効率が向上します。

ベースモデルの更新

LoRA のトレーニングは比較的低コストで、Predibase はアダプタ 1 つあたり約 $8.00 と報告しています。そのため、Mistral v0.3 や Llama 3 など、より効率的な新バージョンがリリースされた際にベースモデルを更新しやすくなります。このプロセスには、バージョン管理されたデータセットとトレーニング設定を保持し、新しいベース上でアダプタを迅速に再トレーニングできる体制が必要です。

謝辞

TGI の Multi‑LoRA 実装は、Punica、LoRAX、S‑LoRA チームが開発した最適化カーネルとフレームワークを活用し、効率的な推論を実現しています。

Sources