Apple-NVIDIAが公開したReDrafterについて

# はじめに
本記事はReDrafterの紹介記事です。以下のコンテンツを含みます。
- Appleのプレスリリース
- NVIDIAのディベロッパーブログ

# NVIDIA GPUでのReDrafterを用いたLLM推論の高速化

LLM推論の高速化は、機械学習における重要な研究課題です。なぜなら、自己回帰型トークン生成は計算コストが高く、比較的遅いため、推論効率を改善することでユーザーの待機時間を短縮できるからです。Appleシリコンでの推論高速化に向けた取り組みを続ける中、業界全体で幅広く使用されているNVIDIA GPU向けのLLM推論の高速化においても大きな進展がありました。

今年初め、私たちはRecurrent Drafter（ReDrafter）を発表し、オープンソース化しました。ReDrafterは革新的な推測デコード手法であり、最先端の性能を実現しています。この手法はRNNドラフトモデルを使用し、ビームサーチと動的ツリーアテンションを組み合わせることで、オープンソースモデルでのトークン生成速度を1ステップあたり最大3.5トークンまで向上させ、従来の推測デコード手法を超える性能を達成しました。

## トークン生成速度の向上

以下の棒グラフは、NVIDIA TensorRT-LLMを用いたReDrafterと通常の自己回帰推論を比較したトークン生成速度の向上を示しています。
	•	ReDrafter: 2.7倍速
	•	自己回帰: 1倍速

図1: NVIDIA TensorRT-LLMにおけるReDrafterと自己回帰のトークン生成速度の比較

## ReDrafterをNVIDIA TensorRT-LLMでの高速化に適用

この研究は強力な結果を示しましたが、その最大の影響は、NVIDIA GPUでのLLM推論を高速化するために実際の運用環境で適用されたことです。ReDrafterをNVIDIA GPU向けに運用可能な形にするため、NVIDIAと協力し、NVIDIA TensorRT-LLM推論高速化フレームワークに統合しました。

TensorRT-LLMは、数多くのオープンソースLLMやMedusa推測デコード手法をサポートしていますが、ReDrafterのビームサーチとツリーアテンションアルゴリズムでは、従来のアプリケーションで使用されていなかったオペレーターを必要とします。この統合を実現するために、NVIDIAは新たなオペレーターの追加や既存オペレーターの公開を行い、TensorRT-LLMが高度なモデルとデコード手法に対応できる能力を大幅に向上させました。

これにより、NVIDIA GPUを使用する機械学習開発者は、TensorRT-LLMを通じてReDrafterの高速化されたトークン生成を簡単に活用し、自身のLLMアプリケーションを運用環境で実現できるようになりました。

NVIDIA GPU上で数十億パラメータのモデルを使用してベンチマークを行った結果、NVIDIA TensorRT-LLM推論高速化フレームワークとReDrafterを用いた場合、貪欲デコードで生成トークン数が1秒あたり2.7倍に高速化されました（図1参照）。この結果は、ユーザーの待機時間を大幅に短縮できる可能性があるだけでなく、使用するGPUの台数を減らし、消費電力を削減できることを示しています。

詳細については、NVIDIAデベロッパーブログの記事をご覧ください。

## まとめ

LLMは生産アプリケーションを支える技術としてますます使用されています。推論効率を改善することで、計算コストに影響を与えるとともに、ユーザーの待機時間を短縮できます。ReDrafterの革新的な推測デコード手法がNVIDIA TensorRT-LLMフレームワークに統合されたことで、開発者はNVIDIA GPU上でより高速なトークン生成の恩恵を受け、運用アプリケーションの性能を向上させることができます。

# NVIDIAのデベロッパーブログ
## ReDrafter: NVIDIA TensorRT-LLMによる革新的な推測デコード技術

Recurrent drafting（ReDrafter）は、Appleが開発しオープンソース化した、LLM推論を加速させるための新しい推測デコード手法です。この技術は現在、NVIDIAのLLM推論最適化ライブラリであるTensorRT-LLMで利用可能となり、NVIDIA GPUでのLLMのパフォーマンス向上を大きく支援します。

## NVIDIA TensorRT-LLMとは

TensorRT-LLMは、LLM推論の最適化を目的としたライブラリで、使いやすいPython APIを提供しています。このライブラリにより、LLMを定義し、NVIDIA TensorRTエンジンを構築することで、最先端の最適化を利用した効率的な推論が可能になります。主な最適化には以下が含まれます：
	•	カスタムアテンションカーネル
	•	実行中のバッチング（inflight batching）
	•	ページングされたKVキャッシング
	•	量子化（FP8、INT4 AWQ、INT8 SmoothQuant）
	•	その他多数

# 推測デコード（Speculative Decoding）とは

推測デコードは、LLM推論を加速させる技術で、複数のトークンを並列で生成します。この手法では、小型の「ドラフト」モジュールを使用して将来のトークンを予測し、それをメインモデルで検証します。この方法により、出力品質を維持しながら応答時間を大幅に短縮できます。特に低トラフィック時には、低レイテンシの推論を実現するためにリソースを効率的に活用できます。

## ReDrafterの特徴とTensorRT-LLMへの統合

ReDrafterは、再帰型ニューラルネットワーク（RNN）ベースのサンプリングを使用してトークンを生成する「ドラフティング」を採用しています。また、Medusaなどの技術で使用されていたツリー型のアテンションを組み合わせることで、複数の可能な経路からドラフトトークンを予測し、検証する精度を向上させます。この方法により、デコーダーの各反復で複数のトークンを受け入れる可能性が広がります。

NVIDIAはAppleと協力し、この技術をTensorRT-LLMに統合しました。これにより、ReDrafterはより広い開発者コミュニティに提供され、以前のMedusaと比較して新たな最適化の可能性が解放されました。

## MedusaとReDrafterの違い

Medusaでは、経路の受け入れやトークンサンプリングがTensorRT-LLMランタイム内で行われますが、この方法では将来の経路をすべて処理する必要があり、そのほとんどが最終的に破棄されるため、オーバーヘッドが発生します。一方で、ReDrafterは、次の反復でトークンを生成する前に、最適な経路のトークン検証と受け入れを行う必要があります。これにより、オーバーヘッドが削減されます。

## TensorRT-LLMの更新

TensorRT-LLMは、ドラフティングと検証ロジックを1つのエンジン内に統合するよう更新されました。このアプローチにより、ランタイムや別個のエンジンに依存することなくオーバーヘッドを最小化できます。さらに、TensorRT-LLMのカーネル選択やスケジューリングの自由度が向上し、ネットワーク性能を最大化する最適化が可能になりました。

## ReDrafterの改善点

ReDrafterの改善をより明確にするため、図1ではTensorRT-LLMにおけるその実装とMedusaの違いを示しています。ReDrafterに関連する推測デコードのほとんどの処理がエンジン内で行われており、これによりランタイムで必要な変更が大幅に簡素化されています。

この技術統合により、NVIDIA GPUを活用する開発者は、より効率的で高速な推論を実現できるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1707407/e167f617-11f0-c399-4170-4724600e503d.png)

# 参考
https://machinelearning.apple.com/research/redrafter-nvidia-tensorrt-llm

https://github.com/apple/ml-recurrent-drafter

https://developer.nvidia.com/blog/nvidia-tensorrt-llm-now-supports-recurrent-drafting-for-optimizing-llm-inference/