SGLang Transformers バックエンド統合

SGLang は Hugging Face の transformers ライブラリをバックエンドとして統合し、ユーザーが任意の transformers 互換モデルを高性能な推論機能で実行できるようにしました。この統合により、transformers エコシステムの柔軟性と、プロダクション環境が求める高スループット・低レイテンシという要件とのギャップが埋められます。

SGLang を通じた高性能推論

SGLang は効率性を重視して設計されており、RadixAttention(メモリ効率の高い注意機構)などの機能を活用して、特に負荷が高い状況下でより高速かつリソース効率の良い推論を提供します。標準の transformers ライブラリは実験や小規模タスク、学習向けに最適化されていますが、SGLang は大量処理シナリオ向けの専用エンジンを提供します。

SGLang は複数のデプロイモードを提供します:

  • Offline Engine: sgl.Engine を使用して直接生成を行います。
  • Server Mode: sglang.launch_server でサーバーを起動し、API 経由でリクエストを処理します。
  • OpenAI-Compatible API: 外部サービスの代替としてドロップインで利用できる API を提供します。

Transformers バックエンド統合

transformers バックエンドにより、SGLang がネイティブにサポートしていないモデルに対して自動的に transformers ライブラリへフォールバックできます。これにより、以下のような即時的なメリットが得られます:

  • 即時アクセス: transformers ライブラリに新たに追加されたモデルをすぐに実行できます。
  • カスタムモデルのサポート: transformers と互換性のある Hugging Face Hub 上のモデルをデプロイ可能です。
  • エンジニアリング負荷の削減: すべての新しいモデルアーキテクチャに対してネイティブな SGLang 実装を待つ必要がなくなります。

この統合により、transformers エコシステムの汎用性を損なうことなく、より広範なモデルに対して RadixAttention を活用した最適化デプロイが可能になります。

使用方法と互換性

transformers バックエンドを使用するには、エンジン初期化時に impl パラメータを明示的に設定します:

llm = sgl.Engine(model_path="meta-llama/Llama-3.2-1B-Instruct", impl="transformers")

impl="transformers" の指定は任意です。モデルがネイティブにサポートされていない場合、SGLang は自動的に transformers 実装に切り替わります。

互換性要件

任意の Hugging Face Hub 上のモデルで、以下の条件を満たすものは互換性があります:

  1. transformers ライブラリで動作すること。
  2. 注意機構が正しく実装されていること。
  3. カスタムモデルの場合、ロード時に trust_remote_code=True が設定されていること。

例として、Kyutai Team の Helium モデル(kyutai/helium-1-preview-2b)は現時点では SGLang にネイティブサポートがありませんが、transformers バックエンドを使用して実行できます:

python3 -m sglang.launch_server \
  --model-path kyutai/helium-1-preview-2b \
  --impl transformers \
  --host 0.0.0.0 \
  --port 30000

今後のロードマップ

以下の領域で統合の改善が継続的に行われています:

  • パフォーマンス最適化: transformers バックエンドモデルとネイティブ SGLang 統合モデル間の性能差を縮小します。
  • LoRA サポート: Low-Rank Adaptation のサポートを追加します。
  • VLM 統合: Vision-Language Model(VLM)への対応を拡張し、利用ケースを広げます。

Sources