Skeleton of Thought(SoT)(スケルトンオブソーツ)
LLMの回答を並列生成で高速化するフレームワーク。まず回答の骨格(箇条書き)を生成し、各項目を並列に拡張することでレイテンシを大幅削減する。
Skeleton of Thought(SoT)とは
Skeleton of Thought(SoT)は2023年にNing et al.が提案したLLM推論フレームワークで、LLMの応答レイテンシ削減に特化した設計が特徴。名前の通り「骨格(スケルトン)を作ってから肉付けする」アプローチをとる。
従来のChain of Thought(CoT)はトークンを逐次生成するため、長い回答ほど生成時間が増大する。SoTはこの問題を「骨格の並列詳細化」で解決し、GPT-4で平均2.39倍、ChatGPTで1.93倍の高速化を実証した。
2段階生成プロセス
Phase 1: スケルトン生成(Skeleton Generation)
まず応答の骨格(見出し・箇条書きのアウトライン)のみをLLMに生成させる。例: 「機械学習の学習方法について主要なポイントを5項目で」→ 1.数学基礎 2.Pythonプログラミング 3.MLライブラリ 4.実践プロジェクト 5.論文・コミュニティ参加
Phase 2: 並列詳細化(Parallel Expansion)
生成されたスケルトンの各項目を同時並列でLLMに詳細化させる。Pythonのasyncio.gather()で全項目を並行リクエストし、完了後に結果を結合する。
パフォーマンス測定結果
Ning et al.の論文での測定結果:
- GPT-4: 24.5秒 → 10.3秒(2.39倍高速化)
- GPT-3.5-turbo: 15.6秒 → 8.1秒(1.93倍高速化)
- Vicuna-33B: 43.2秒 → 23.4秒(1.85倍高速化)
品質評価でも、46/81質問でSoTが優位という結果が得られている。
適用に向く質問タイプ
SoTが特に効果的なタスク: リスト形式の回答(「〜の利点は?」)、比較・概要(「AとBの違いは?」)、教育コンテンツ(「〜を初心者向けに解説して」)。
SoTが不向きなタスク: 各ステップが前のステップに依存する連続推論、関数間の依存関係があるコード生成、前の段落の内容を参照する長文。
LLMサービング最適化との関係
SoTはSpeculative Decoding(投機的デコーディング)と組み合わせた研究も進んでいる。また、vLLMのPagedAttentionやContinuous Batchingと組み合わせることで、サーバーサイドのスループットも改善できる。API料金はトークン数に比例するため、短い並列リクエスト複数本 vs 長い逐次リクエスト一本でコスト比較が必要になる。