predibase/lorax
Multi-LoRA inference server that scales to 1000s of fine-tuned LLMs
解決する課題
LoRAX(LoRA eXchange)は、数千ものファインチューニングされた大規模言語モデル(LLM)を単一 GPU 上でホストできるようにし、提供コストと複雑さを低減します。ベースモデルの各ファインチューニング版ごとに別々の GPU を割り当てる必要がなくなるため、従来は非常に高価だった運用が可能になります。
仕組み
LoRAX は共有ベースモデルを使用し、リクエストごとにタスク固有の LoRA アダプタを動的にロードします。高性能を維持するために以下の最適化技術を採用しています:
- ダイナミックアダプタロード: HuggingFace、Predibase、またはローカルファイルシステムからのアダプタをリアルタイムでロードし、他のリクエストをブロックしません。
- ヘテロジニアス連続バッチング: 異なるアダプタへのリクエストを同一バッチに詰め込み、スループットとレイテンシを安定させます。
- アダプタ交換スケジューリング: 非同期システムがアダプタを事前取得し、GPU と CPU メモリ間でオフロードしてスループットを最適化します。
- 最適化推論: テンソル並列、量子化、Flash‑Attention、Paged Attention、SGMV などの専用 CUDA カーネルを活用し、高効率を実現します。
対象ユーザー
パフォーマンスを犠牲にせず、GPU メモリ使用量を大幅に削減しながら、スケールアウトして複数のファインチューニング済み LLM をデプロイ・提供したい開発者や機械学習エンジニア向けです。
ハイライト
- 大規模スケーラビリティ: 単一 GPU で数千のファインチューニングモデルを提供。
- OpenAI 互換: OpenAI 互換 API を通じたマルチターンチャットをサポート。
- 本番環境対応: Docker イメージ、Kubernetes 用 Helm チャート、分散トレーシング用 Open Telemetry を含む。
- 柔軟なモデルサポート: Llama、Mistral、Qwen アーキテクチャに対応し、PEFT と Ludwig で学習されたアダプタをサポート。