SGLang(エスジーラング)
Stanford大学が開発したLLM推論フレームワーク。RadixAttentionによるKVキャッシュ自動再利用と構造化生成(JSON Schema/正規表現)の高速化が特徴。vLLM比で最大6.4倍のスループット(エージェントワークフロー時)を実現する2024年登場のエンジン。
SGLang 完全ガイド 2025 — RadixAttentionと構造化生成の高速エンジン
SGLang(Structured Generation Language)はStanford大学のLianmin Zhengらが2024年初頭に公開したLLM推論フレームワーク。vLLMのPagedAttentionを超える「RadixAttention」を実装し、エージェントワークフローや構造化生成で最大6.4倍のスループット改善を実証した。2025年現在、ToolCallを多用するエージェントシステムやJSONスキーマ強制出力が必要なLLMサービスで採用が急増している。
RadixAttentionの仕組み
RadixAttentionは接尾辞木(Radix Tree)データ構造でKVキャッシュを管理する。複数のリクエストが共通するプレフィックス(システムプロンプト・Few-shot例・RAGコンテキスト)を持つ場合、そのKVキャッシュを自動的に共有・再利用する。
性能比較(llama-3-8B-Instruct, H100×1):
| ワークフロー | vLLM | SGLang | 倍率 |
|---|---|---|---|
| 基本チャット | 3,200 tok/s | 3,600 tok/s | 1.1x |
| JSON強制出力 | 800 tok/s | 4,200 tok/s | 5.3x |
| ツール呼び出しエージェント | 600 tok/s | 3,800 tok/s | 6.4x |
| RAG(100シーケンス共有) | 1,200 tok/s | 4,100 tok/s | 3.4x |
構造化生成の実装
import sglang as sgl
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
city: str
@sgl.function
def extract_person(s, text):
s += sgl.user(f"Extract from: {text}")
s += sgl.assistant(sgl.gen("result", json_schema=Person.schema()))
state = extract_person.run(text="田中太郎、35歳、東京在住")
print(state["result"]) # {"name": "田中太郎", "age": 35, "city": "東京"}
スペック
| 項目 | 詳細 |
|---|---|
| ライセンス | Apache 2.0 |
| GitHubスター | 12,000+(2025年6月) |
| サポートモデル | Llama 3.x、Mistral、DeepSeek-R1、Qwen 2.5、Gemma 2 |
| サポートGPU | NVIDIA H100/A100/L40S、AMD MI300X |
| 量子化 | FP8・AWQ・GPTQ対応 |
よくある質問(FAQ)
Q1: SGLangはvLLMの代替として本番で使えますか? A: エージェントワークフロー・JSON出力が主用途なら本番採用実績あり。汎用チャットAPIはvLLMと同等か若干高速。コミュニティ規模はvLLMが大きい。
Q2: DeepSeek-R1はSGLangで高速化できますか? A: はい。Chain-of-ThoughtトークンでRadixAttentionのキャッシュ共有が効き、多数同時リクエスト時に特に有効。
Q3: SGLangのインストール方法は?
A: pip install sglang[all]でインストール。python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instructでサーバー起動。8000番ポートでOpenAI互換API提供。
まとめ
- RadixAttention: KVキャッシュの接尾辞木管理でRAG/エージェントを最大6.4倍高速化
- 構造化生成: JSON Schema/正規表現制約のネイティブ実装でRejection Sampling不要
- 用途: ToolCall多用エージェント・JSON強制出力・RAGワークフロー
- 2025年急成長でvLLMと並ぶ本番サービングの選択肢に