推論速度を向上させる Speculative Decoding(投機的デコーディング)とは

推論速度を向上させる Speculative Decoding(投機的デコーディング)とは
Photo by BoliviaInteligente / Unsplash

こんにちは Qualiteg 研究部です。

投機的デコーディングとは何か?

投機的デコーディングは、大規模言語モデル(LLM)の推論速度を向上させる技術です。

たいていのモデルを1.4~2.0倍程度、高速化できることが報告されています。

このアプローチでは、小さなモデル(ドラフトモデル)を使用して初期の予測を行い、その結果を大きなモデル(ターゲットモデル)が検証することで、全体の推論プロセスを高速化します。

ざっくりいうと、

大きなモデルは計算負荷も高く計算速度も遅いので、まず、小さなモデルで高速に計算したあとで、その計算結果をうまくつかって大きなモデルでの計算負荷をさげ、スピードを向上させようというアイデアです。

基本的に大きなモデルと、小さなモデルはサイズ以外は基本的にまったく同じネットワーク構造をしていることが前提となります。

たとえば 70Bの Llama3 と 8B の Llama3 を組み合わせてつかうイメージです。

当然70B の Llama3 の推論計算のほうが 8B よりも重たくなりますので、小さい8BのLlama3 で先回りして推論計算することで高速化を行うというテクニックとなります。

投機的デコーディングのメカニズム

投機的デコーディングでは、小さなモデル(ドラフトモデル)の予測結果を大きなモデル(ターゲットモデル)で使用するかどうかを判断する際、主に以下の手順と考慮点があります

  1. ドラフトモデルの生成: ドラフトモデルは、予測の初期段階で複数の候補トークンを高速に生成します。このモデルはターゲットモデルよりもはるかに小さいため、予測を迅速に行うことができます。
  2. ターゲットモデルによる検証: ターゲットモデルは、ドラフトモデルが生成したトークンを検証し、それらが妥当であるかどうかを判断します。このプロセスでは、ドラフトモデルの出力とターゲットモデルの予測を比較し、一致するトークンのみが最終的な出力として採用されます。
  3. TAR(Token Acceptance Rate)の計算: TARは、ドラフトモデルが生成したトークンのうち、ターゲットモデルが受け入れたトークンの割合を示します。この割合が高いほど、ドラフトモデルの予測がターゲットモデルの基準に適合していることを意味し、スループットの向上に貢献します。
  4. スループットとレイテンシーのトレードオフ: ドラフトモデルを使用する主な目的は、推論プロセスのスループットを向上させることです。ドラフトモデルのレイテンシーが十分に低く、かつTARが高い場合、このアプローチは全体の推論時間を短縮し、効率を向上させることができます。
  5. パフォーマンスのベンチマーク: 実際にドラフトモデルとターゲットモデルを使用する際には、異なるドラフトモデルの構成とサイズで複数の実験を行い、最適な設定を見つける必要があります。これにより、どのドラフトモデルが最も効果的であるかを科学的に判断することが可能です。

以上の手順と考慮点によって、小さなモデルの予測結果が大きなモデルで実用的に使用できるかどうかを判断することができます。

ドラフトモデルでの計算結果をターゲットモデルが評価するときに、結局ターゲットモデルでの推論計算が走るから、計算量削減にはならないのではないか?

そんな疑問が浮かびませんか?

ターゲットモデルで計算を行うとなると、なぜ小さなモデルを使うのか疑問に思うのは理解できます。

投機的デコーディングの利点(というか、コアとなるアイデア)は、ターゲットモデルの計算負荷を効率的に管理する点にあります。ここでは、計算が削減されるメカニズムを具体的に説明します。

投機的デコーディングの基本プロセス

  1. ドラフトモデルの利用:
    ドラフトモデルは、低レイテンシーで多数の候補トークンを生成します。これはターゲットモデルよりもはるかに迅速に行われます。
  2. バッチ処理
    ターゲットモデルでは、ドラフトモデルが生成した複数のトークンを一度に検証します。これは通常のオートリグレッシブ生成(トークンを1つずつ生成)と比べて、モデルが一度に多くのデータを処理できるため、GPUなどの計算リソースを効率的に利用できます。
  3. プリフィル手法:
    ターゲットモデルは、ドラフトモデルが生成した複数のトークンに基づいて予測を行い、これを一種のプリフィル(事前充填)として使用します。ターゲットモデルがすべての候補を1つずつ独立に生成する代わりに、有効なトークンのセットを確認し、受け入れることで、計算を省略します。

実際の計算削減のポイント

  • 並列処理
    ターゲットモデルがドラフトモデルから提供されたトークン群をバッチで処理することにより、トークンごとの生成ではなく、効率的な並列処理が可能になります。
  • 選択的検証
    ターゲットモデルは有効と判断したトークンのみを受け入れます。これにより、全体的な生成プロセスのステップ数が減少し、無駄な計算が省かれます。
  • 効率的なデータ処理
    ドラフトモデルからの入力を使用することで、ターゲットモデルは入力の一部としてこれを活用し、全体の計算負荷を削減します。

まとめ

いかがでしたでしょうか、今回はなるべく数式を用いずに、投機的デコーディングについて解説してみました。

投機的デコーディングでは、確かにターゲットモデルで最終的な計算が行われますが、ドラフトモデルの出力を利用して効率的に処理を行うことで、全体の計算コストとレイテンシーを削減できます。この方法により、ターゲットモデルの計算負担が軽減され、より迅速かつ効率的なデータ処理が可能になります。

参考文献

https://arxiv.org/pdf/2211.17192
https://arxiv.org/pdf/2302.01318

論文「2402.01528v2」と「2211.17192v2」によりますと、投機的デコーディングの有効性はドラフトモデルの選定に大きく依存しているようです。

これらの研究では、異なるドラフトモデルがどのようにターゲットモデルの性能に影響を与えるかを検証していますが、とくにトークン受容率(TAR)=ドラフトモデルが生成したトークンのうち、ターゲットモデルがどれだけ受け入れるかが、スループット向上の鍵を握るようです。当然といえば当然で、ドラフトモデルがイケてるトークン(logits)をどれだけ出せるか、ですね。

Read more

Zoom会議で肩が踊る?自動フレーミング映像安定化とAIによる性能向上の可能性

Zoom会議で肩が踊る?自動フレーミング映像安定化とAIによる性能向上の可能性

こんにちは! 本日は、自動フレーミング映像の安定化に関するアルゴリズム・ノウハウを解説いたします 第1章 問題の背景と目的 バストアップ映像を撮影する際、特にオンラインミーティングやYouTubeなどのトーク映像では、人物がうなずく、首を振るなどの自然な動作をした際に「首まわりや肩がフレーム内で上下に移動してしまう」という現象がしばしば起こります。これは、多くの場合カメラや撮影ソフトウェアが人物の「目や顔を画面中央に保とう」とする自動フレーミング機能の働きに起因します。 撮影対象の人物が頭を下げた際に、映像のフレーム全体が相対的に上方向へシフトし、その結果、本来動いていないはずの肩の部分が映像内で持ち上がっているように見えてしまう現象です。 本稿では、この問題を撮影後の後処理(ポストプロセッシング)のみを用いて、高速、高い精度かつロバストに解決する手法をご紹介します。 前半では、従来のCV(コンピュータービジョン)の手法を使い高速に処理する方法をご紹介します。後半では、AIを使用してより安定性の高い性能を実現する方法について考察します。 第2章 古典手法による肩の上下

By Qualiteg 研究部
LLM推論基盤プロビジョニング講座 第1回 基本概念と推論速度

LLM推論基盤プロビジョニング講座 第1回 基本概念と推論速度

こんにちは! 本日は LLMサービスの自社構築する際の推論基盤プロビジョニング、GPUプロビジョニングについて数回にわけて解説いたします。 はじめに LLMの進化に伴い、ChatGPTやClaudeといったパブリックなLLMの活用は企業においても急速に広がってきました。しかし先進的な企業はこれらの汎用LLMに加えて、「領域特化型」「ドメイン特化型」といった専用LLMの構築へと歩みを進めています。こうした動きの背景には、企業固有の専門知識への対応力強化と情報セキュリティの確保という二つの重要なニーズがあります。 一般的なパブリックLLMでは対応できない企業固有の専門知識や機密情報の取り扱いが必要なケースが増えているため、自社LLMの構築や自社サーバーでの運用を検討する企業が急増しています。特に金融、医療、製造、法務といった専門性の高い領域では、業界特化型の独自LLMが競争優位性をもたらすと認識されています。 しかし、業界特化型のLLMを自社で運用することは簡単ではありません。自社運用を決断した場合、まず最初に取り組むべきは適切な推論環境の整備です。オンプレミス環境を構築するに

By Qualiteg コンサルティング
Startup JAPAN 2025 に出展いたしました

Startup JAPAN 2025 に出展いたしました

こんにちは! 2025年5月8日(木)-5月9日(金)に東京ビッグサイトで開催された Startup JAPAN 2025 に出展いたしましたので、簡単にレポートいたします😊 開催概要 出展概要 今回は当社が開発するアバター動画生成AI「MotionVox™」を中心に出展させていただきました! 展示会について簡単にふりかえってみたいとおもいます 当社ブース 当社ブースはこんなかんじです。 今回は、ブースというか、このイーゼルのような雰囲気の木枠にポスターをくっつけるというスタイルでの展示方式でした。 こういう方式ははじめてなので斬新でした。おそらくこの方式で相当なコストダウンを図れておりスタートアップにはうれしいですね。セットアップも数分で終わりました。 会場 今回の会場はビッグサイトの南ホールでした。南ホールは、ビッグサイト入口からすぐそこなので駅から会場までたいして歩かず、疲れずに行くことができアクセスがとても良いです。 ホールは広めですが、ところせましと400社の出展会社がひしめきあっておりスタートアップの勢いのある会場となっており

By Qualiteg ビジネス開発本部 | マーケティング部
GPUサービスで「Segmentation Fault 」に出会ったら~分析から解決までの実践アプローチ~

GPUサービスで「Segmentation Fault 」に出会ったら~分析から解決までの実践アプローチ~

こんにちは! 今日は仮想環境+GPUなサービスにおける「Segmentation Fault」について、分析と対処法について書いてみたいと思います。 Segmentation Faultの本質と特徴 Segmentation Faultは、プログラムが保護されたメモリ領域にアクセスしようとした際にOSが発生させる例外です。 今回は複数のGPUサービス(つまりGPUを使うプロセス)が動作していて、そのうちの1つを再起動したときに発生しました。 毎回発生するわけではありません。むしろ数百回の起動に1回程度ですが、1回でも発生すると絶望的な結果につながります。というのも、1つのGPUサービスの停止が SPOF となってサービス全体に影響が発生します。かつ、1回でも「Segmentation Fault」が発生してしまうと、その原因となったプロセスが二度と起動しなくなる、というやっかいな現象でした。 このように「普段は正常に動作しているのに突然動かなくなる」というのがデバッグを非常に難しくします。 とくにGPU+仮想化の組み合わせで従来のC++アプリよりも発生確率がぐっとあがる印象

By Qualiteg プロダクト開発部