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 上のモデルで、以下の条件を満たすものは互換性があります:
transformersライブラリで動作すること。- 注意機構が正しく実装されていること。
- カスタムモデルの場合、ロード時に
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)への対応を拡張し、利用ケースを広げます。