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 で学習されたアダプタをサポート。