[論文レビュー] Parrot: Efficient Serving of LLM-based Applications with Semantic Variable
Parrotは、セマンティック変数を導入して、アプリケーションレベルの情報をpublic LLMサービスへ公開し、エンドツーエンド最適化を可能にし、LLMベースのアプリケーションで最大約11.7xのスピードアップまたは12xのスループットを実現します。
The rise of large language models (LLMs) has enabled LLM-based applications (a.k.a. AI agents or co-pilots), a new software paradigm that combines the strength of LLM and conventional software. Diverse LLM applications from different tenants could design complex workflows using multiple LLM requests to accomplish one task. However, they have to use the over-simplified request-level API provided by today's public LLM services, losing essential application-level information. Public LLM services have to blindly optimize individual LLM requests, leading to sub-optimal end-to-end performance of LLM applications. This paper introduces Parrot, an LLM service system that focuses on the end-to-end experience of LLM-based applications. Parrot proposes Semantic Variable, a unified abstraction to expose application-level knowledge to public LLM services. A Semantic Variable annotates an input/output variable in the prompt of a request, and creates the data pipeline when connecting multiple LLM requests, providing a natural way to program LLM applications. Exposing Semantic Variables to the public LLM service allows it to perform conventional data flow analysis to uncover the correlation across multiple LLM requests. This correlation opens a brand-new optimization space for the end-to-end performance of LLM-based applications. Extensive evaluations demonstrate that Parrot can achieve up to an order-of-magnitude improvement for popular and practical use cases of LLM applications.
研究の動機と目的
- LLMベースのアプリケーションにおけるペ per-request 指標を超えたエンドツーエンド最適化の必要性を動機付ける。
- セマンティック変数をLLMサービスにアプリケーション構造を公開する統一的な抽象化として導入する。
- アプリケーションレベルの知識がデータフロー解析とリクエスト間の共同最適化を可能にすることを示す。
- エンドツーエンドの待機時間を削減しスループットを向上させるスケジューリングとキャッシュ最適化を紹介する。
提案手法
- セマンティック変数を、複数のLLMリクエストをつなぐ意味論的目的を持つプロンプト内のテキスト領域として定義する。
- LLMアプリケーションをセマンティック変数の有向非巡回グラフ(DAG)として表現し、データ依存関係を明らかにし分析を可能にする。
- 相互リクエスト解析のためのグラフベースの実行エンジンと、GetProducer、GetConsumers、PrefixHashといったプリミティブを実装する。
- パフォーマンス目標でリクエストをグルーピングし、プロンプトプリフィックス共有を最大化するアプリケーション中心のスケジューラを開発する。
- GPU効率の良いアテンションカーネルと共有プリフィックス最適化を設計して冗長な計算を削減する。
- Fill、Generate、FreeContextのユニバーサルエンジン抽象を提供し、様々なLLMエンジンを組み込む。

実験結果
リサーチクエスチョン
- RQ1アプリケーションレベルの情報を公開LLMサービスへ公開することで、エンドツーエンドのパフォーマンスをどのように改善できるか?
- RQ2データフローとプロンプト構造の分析を複数のLLMリクエストにわたって実現するために、どのような抽象化(セマンティック変数)が有効か?
- RQ3スケジューリングとKV-prefix共有をどのように活用して、LLMベースのワークフローの遅延とスループットを最適化できるか?
- RQ4Parrotのセマンティック変数ベースの最適化を適用した現実世界のLLMアプリケーションで、エンドツーエンドのどの程度の高速化が達成されるか?
主な発見
- Parrotは最先端のソリューションと比較して最大11.7xのスピードアップ、または12xのスループット向上を達成できる。
- セマンティック変数はリクエスト間の依存関係や共通点を明らかにするジャストインタイムのリクエスト間解析を可能にする。
- アプリケーション中心のスケジューリングとタスクグルーピングは、マップ/リデュース型ワークフロー全体で待ち時間とスループットのバランスを最適化することでエンドツーエンドの待機時間を削減する。
- プリフィックスベースのプロンプトプリフィックス共有と最適化されたアテンションカーネルは、冗長な計算とメモリトラフィックを削減する。
- 本番環境およびオープンソースのLLMアプリケーションに対する実証評価は、エンドツーエンドの性能向上を実証的に示す。

より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。