Transformers documentation
SGLang
はじめに
ベースクラス
モデル
プリプロセッサ
推論
Pipeline API
Generate API
最適化
モデルとチャットする
サービング
トレーニング
ハードウェア
量子化
エコシステム統合
リソース
API
SGLang
SGLang は、大規模言語モデル(LLM)向けの低レイテンシかつ高スループットな推論エンジンです。エージェント型ワークフローを構築するためのフロントエンド言語も含まれています。
model_impl="transformers" を設定すると、Transformers のモデリングバックエンドを読み込むことができます。
import sglang as sgl
llm = sgl.Engine("meta-llama/Llama-3.2-1B-Instruct", model_impl="transformers")
print(llm.generate(["The capital of France is"], {"max_new_tokens": 20})[0])オンラインサービングでは、sglang.launch_server コマンドに --model-impl transformers を渡します。
python3 -m sglang.launch_server \ --model-path meta-llama/Llama-3.2-1B-Instruct \ --model-impl transformers \ --host 0.0.0.0 \ --port 30000
Transformers の統合
model_impl="transformers" を設定すると、SGLang はネイティブなモデルマッチングをスキップし、Transformers のモデルを直接使用するように指示されます。
- PreTrainedConfig.from_pretrained() loads the model’s
config.jsonfrom the Hub or your Hugging Face cache. - AutoModel.from_config() は、config に基づいてモデルクラスを解決します。
- 読み込み中に、
_attn_implementationは"sglang"に設定されます。これにより、アテンションの呼び出しが SGLang の RadixAttention カーネルを介してルーティングされます。 - SGLangの並列線形クラスは、テンソル並列性をサポートするために線形層を置き換えます。
- load_weights 関数は、safetensors ファイルから重みを読み込み、モデルに設定します。
このモデルは、Transformersのモデル構造を使用しながら、SGLangのすべての最適化の恩恵を受けることができます。
対応するモデルには、SGLang がアテンションの実行を制御できるように
_supports_attention_backend=Trueが必要です。詳細については、推論用の対応モデルバックエンドの構築ガイドを参照してください。
リソース
- SGLang docsには、Transformers をバックエンドとして使用する際の、より多くの使用例やヒントが記載されています。
- Transformers backend integration in SGLang というブログ記事では、この統合によって何が実現できるかを説明しています。