NVIDIA Dynamoにおけるストリーミングトークンとツール:マルチターンエージェントハーネスサポートの深化


ADVERTISEMENT

エージェント推論の課題とNVIDIA Dynamoの役割

最新のAIエージェントワークフロー、特にコーディングエージェントのような高価値なシナリオでは、推論性能とユーザーエクスペリエンス(UX)が極めて重要となります。従来のLLM推論システムは、エージェントの特性である長期にわたるセッション、頻繁なツール呼び出し、動的な推論プロセスに完全には対応できていませんでした。特に、KVキャッシュの効率的な管理、プロアクティブなスケジューリング、および複雑なマルチターンインタラクションの構造化された処理において課題を抱えていました。NVIDIA Dynamoは、これらの課題に対処するために設計された、高スループットかつ低遅延の推論フレームワークです。Dynamoは、推論エンジンに依存しない設計(TRT-LLM、vLLM、SGLangなどに対応)を特徴とし、エージェントネイティブな推論を可能にするために、フロントエンドAPI、ルーター、KVキャッシュ管理の3つの主要レイヤーで最適化を施しています。

Dynamoの「オーケストレーター」レイヤーは、ルーティング、スケジューリング、キャッシュ管理を担当し、エージェントのワークフローを効率的に駆動します。また、リクエストのプリフィルフェーズとデコードフェーズを分離することでGPUスループットを最大化し、KVキャッシュの再計算を回避するためのルーティングを行い、低遅延のNIXLライブラリを用いたデータ転送を加速します。 これにより、特にシステムプロンプトやマルチターンアシスタントなど、同じリクエストが頻繁に実行されるエージェントワークフローにおいて、顕著なメリットをもたらします。

ストリーミングトークンとツール呼び出しの機構

エージェントの応答性を高めるためには、最終的なテキスト応答を待つのではなく、ターンが展開されるにつれて推論セグメント、ツール呼び出しイベント、およびリクエストメタデータがストリーミングで返されることが不可欠です。 NVIDIA Dynamoは、この要件を満たすために、推論とツール呼び出しのパースを効率的に処理するメカニズムを導入しています。エージェントのやり取りは、推論と1つ以上のツール呼び出しが交互に行われ、その後のユーザーターンで対応するツール結果がモデルコンテキストに返されるという構造化された形式を維持する必要があります。

Dynamoは、この複雑なインタラクションに対応し、正しくセグメント化されたAPI結果を生成するために、推論エンジンに責任を負わせています。具体的には、アタッチされたハーネスが応答を消費する前に、ツール呼び出しのパースと推論のパースを並行して行う必要があります。 このための重要な改善点として、プロトコル、パーサー、トークナイザーの各レイヤーが dynamo-protocolsdynamo-parsersdynamo-tokenizers のようなスタンドアロンのクレートとしてバージョン管理されています。これにより、開発チームはDynamoの内部をコピーすることなく、ハーネスに面するサービングパスを構築またはカスタマイズすることが可能となり、AutoResearch のようなより長期実行型のシステムへの橋渡しにもなります。

マルチターンエージェントハーネスの高度なサポート

マルチターンエージェントワークフローでは、KVキャッシュの効率的な再利用と、エージェントの意図を推論システムに伝えることが性能向上の鍵となります。Dynamoは、以下の主要な機能を通じて、これらの側面を強化しています。

1. プロンプトの安定性とKVキャッシュの再利用: KVキャッシュの再利用は、エージェント推論の最適化において中心的な目標です。しかし、一部のAPI(例:AnthropicのClaude Code)では、セッションごとに変化するヘッダーが含まれることがあり、これがKVキャッシュを「汚染」し、安定した指示やツール定義が再利用されなくなる問題がありました。 Dynamoは、--strip-anthropic-preamble のようなメカニズムを導入することで、トークン化前に不安定なヘッダーを削除し、安定したプロンプトがトークンゼロから始まるように修正しました。 この機械的に小さな変更は、KVキャッシュの再利用を復元し、運用上非常に重要です。

2. エージェントヒントによるワークロード認識型推論: 従来のランタイムは、エージェントハーネスからの「次に何が起こるか」というシグナル(例:「Plan」ステップが完了し、「Execute」ステップが続く)を使用せず、受動的に動作していました。Dynamoは「agentic hints」(nvext.agent_hintsとしてリクエストボディに付加されるメタデータ)を公開し、フロントエンドAPI、ルーター、バックエンドスケジューリングレイヤーでこれらを利用します。 これらのヒントには、リクエストの優先度や予想される出力シーケンス長(トークン数)などが含まれます。 ルーターはこれらのヒントを用いてキューの順序付けやワーカーの選択を行い、バックエンドは優先度ベースのスケジューリングやキャッシュの退去に活用します。 これにより、Dynamoは一般的な「その場しのぎ」の最適化ではなく、ワークロードを認識した推論を可能にし、プロアクティブなプリフェッチ、ピン留め、スケジューリングを実現します。

開発者・エンジニア視点での考察

  1. Dynamoのモジュラー設計と、dynamo-protocolsdynamo-parsersdynamo-tokenizersといったクレートの分離は、エージェントフレームワーク開発者にとって大きなメリットです。これにより、推論バックエンドの深い知識なしに、自身のカスタムハーネスやエージェントフレームワークを、Dynamoの高効率なインフラストラクチャに効率的に構築・統合できます。

  2. エージェントヒント(nvext.agent_hints)の活用は、単なるAPI呼び出し以上の意味を持ちます。これにより、ルーティング、スケジューリング、KVキャッシュ管理といった下位レイヤーがエージェントの意図を理解し、ワークロード固有の最適化が可能になります。開発者は、エージェントの動作特性(例:長考フェーズ、ツール呼び出し)をDynamoに明示的に伝えることで、より効率的で応答性の高いエージェントシステムを設計できます。

  3. KVキャッシュの再利用を最大化するためのプロンプト安定化(例:--strip-anthropic-preambleによる不安定なヘッダーの除去)は、特にマルチターンエージェントにおいて推論コストを大幅に削減し、本番環境での運用効率を高めるための極めて重要な考慮事項です。エージェント開発者は、自身が利用するモデルやハーネスがプロンプトの安定性を確保しているか、あるいはDynamoのような基盤がその問題を解決しているかを深く理解する必要があります。

Source / 元記事

この記事について

著者
AIBloom AI編集部
初回公開
最終更新

この記事は、公開されているニュース、論文、公式発表、RSSフィードなどをもとに、AIが要約・補足調査・考察を行って作成しています。

元記事の完全な翻訳・逐語的な要約ではなく、AIによる背景説明や開発者向けの考察を含みます。

重要な技術仕様・価格・提供状況などは、必ず元記事または公式情報をご確認ください。

About AIBloom

ADVERTISEMENT