Transformers documentation

SGLang

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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 のモデルを直接使用するように指示されます。

  1. PreTrainedConfig.from_pretrained() loads the model’s config.json from the Hub or your Hugging Face cache.
  2. AutoModel.from_config() は、config に基づいてモデルクラスを解決します。
  3. 読み込み中に、_attn_implementation は "sglang" に設定されます。これにより、アテンションの呼び出しが SGLang の RadixAttention カーネルを介してルーティングされます。
  4. SGLangの並列線形クラスは、テンソル並列性をサポートするために線形層を置き換えます。
  5. load_weights 関数は、safetensors ファイルから重みを読み込み、モデルに設定します。

このモデルは、Transformersのモデル構造を使用しながら、SGLangのすべての最適化の恩恵を受けることができます。

対応するモデルには、SGLang がアテンションの実行を制御できるように _supports_attention_backend=True が必要です。詳細については、推論用の対応モデルバックエンドの構築ガイドを参照してください。

リソース

  • SGLang docsには、Transformers をバックエンドとして使用する際の、より多くの使用例やヒントが記載されています。
  • Transformers backend integration in SGLang というブログ記事では、この統合によって何が実現できるかを説明しています。
Update on GitHub