YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

推測的デコーディング

投機的デコーディングがAI推論を2~3倍高速化する方法をご覧ください。この技術がLLMとUltralytics YOLO26をより高速で効率的な出力を実現するためにどのように最適化するかを学びましょう。

推測的デコーディングは、主に大規模言語モデル (LLM) やその他のシーケンシャル生成タスクで使用される高度な最適化手法であり、出力品質を損なうことなく推論を大幅に高速化します。従来の自己回帰生成では、モデルは一度に1つのトークンを生成し、各ステップは前のステップの完了を待ちます。このプロセスは、特に計算速度よりもメモリ帯域幅がボトルネックになることが多い強力なハードウェアでは、遅くなる可能性があります。推測的デコーディングは、より小さく高速な「ドラフト」モデルを使用して将来のトークンのシーケンスを並行して予測し、その後、より大きく、より正確な「ターゲット」モデルによって単一のパスで検証することで、この問題に対処します。ドラフトが正しい場合、システムは一度に複数のトークンを受け入れ、生成プロセスを効果的に飛躍的に進めます。

スペキュラティブデコーディングはどのように機能するか

この核となるメカニズムは、シーケンス内の多くのトークン(「the」や「and」のような機能語、あるいは明白な補完など)は予測が容易であり、大規模モデルの完全な計算能力を必要としないという観察に基づいています。これらの容易な予測を軽量なプロキシモデルにオフロードすることで、システムは重いモデルが呼び出される回数を削減します。

ターゲットモデルがドラフトされたシーケンスをレビューする際、並列検証ステップを使用します。GPUはバッチ処理に高度に最適化されているため、5つのドラフトトークンを同時にチェックするのにかかる時間は、単一のトークンを生成するのとほぼ同じです。ターゲットモデルがドラフトに同意した場合、それらのトークンは確定されます。いずれかの点で同意しない場合、シーケンスは切り詰められ、正しいトークンが挿入され、プロセスが繰り返されます。この方法は、最終出力がターゲットモデルが単独で生成したものと数学的に同一であることを保証し、多くのシナリオで速度を2倍から3倍に向上させながら、精度を維持します。

実際のアプリケーション

この技術は、特にレイテンシが重要となる分野において、産業界が生成AIをデプロイする方法を変革しています。

  • リアルタイムコード補完: 統合開発環境 (IDE) では、AIコーディングアシスタントは、開発者が入力すると同時に即座に提案を提供する必要があります。投機的デコーディングにより、これらのアシスタントは小さなモデルを使用してコードの行全体を下書きでき、一方、大規模な基盤モデルがバックグラウンドで構文とロジックを検証します。これにより、サーバーの応答を待つのではなく、リアルタイムで入力しているかのような、軽快でシームレスなユーザーエクスペリエンスが実現されます。
  • エッジデバイス上のインタラクティブチャットボット: スマートフォンやノートパソコンで強力なLLMを実行することは、ハードウェアリソースの制限により困難です。推測デコーディングを使用することで、デバイスは量子化された小型モデルをローカルで実行して応答をドラフトし、時折、より大きなモデル(クラウドベースまたはより重いローカルモデル)に問い合わせて検証を行うことができます。このハイブリッドアプローチにより、遅延を最小限に抑えた高品質なバーチャルアシスタントインタラクションが可能になり、エッジAIが複雑なタスクにより実現可能になります。

他の概念との関係

推測デコーディングと類似の最適化戦略を区別することが重要です。

  • Model Quantization: 量子化はモデルの重みの精度を削減し(例:FP16からINT8へ)、メモリを節約し計算を高速化しますが、モデルを恒久的に変更し、性能をわずかに低下させる可能性があります。対照的に、投機的デコーディングはターゲットモデルの重みを変更せず、同じ出力分布を保証します。
  • 知識蒸留: これは、より小さな学生モデルを訓練して、より大きな教師モデルを模倣させることを含みます。学生モデルは教師を完全に置き換えます。スペキュラティブデコーディングでは、小さなモデル(ドラフター)と大きなモデル(ベリファイア)が、一方が他方を置き換えるのではなく、inference中に連携して動作します。

実施例

スペキュラティブデコーディングはサービングフレームワークに組み込まれていることが多いですが、予測を検証するという概念は効率的なAIの基本です。以下に、PyTorchを使用した概念的な例を示します。これは、スペキュラティブデコーディングの検証ステップと同様に、より大きなモデルが候補入力のシーケンスをどのようにスコアリングまたは検証するかを示しています。

import torch


def verify_candidate_sequence(model, input_ids, candidate_ids):
    """Simulates the verification step where a target model checks candidate tokens."""
    # Concatenate input with candidates for parallel processing
    full_sequence = torch.cat([input_ids, candidate_ids], dim=1)

    with torch.no_grad():
        logits = model(full_sequence)  # Single forward pass for all tokens

    # Get the model's actual predictions (greedy decoding for simplicity)
    predictions = torch.argmax(logits, dim=-1)

    # In a real scenario, we check if predictions match candidate_ids
    return predictions


# Example tensor setup (conceptual)
# input_ids = torch.tensor([[101, 2054, 2003]])
# candidate_ids = torch.tensor([[1037, 3024]])
# verify_candidate_sequence(my_model, input_ids, candidate_ids)

将来のAI開発への影響

モデルのサイズが拡大し続けるにつれて、計算能力とメモリ帯域幅の間の格差(しばしば「メモリウォール」と呼ばれる)が広がっています。推測デコーディングは、各メモリアクセスの算術強度を最大化することで、このギャップを埋めるのに役立ちます。この効率性は、生成AIの大規模な持続可能なデプロイメントにとって不可欠であり、エネルギー消費と運用コストの両方を削減します。

研究者たちは現在、同様の投機的原理をコンピュータービジョンタスクに適用する方法を模索しています。例えば、ビデオ生成では、軽量モデルが将来のフレームを下書きし、それが高忠実度拡散モデルによって後で洗練される可能性があります。PyTorchTensorFlowのようなフレームワークがこれらの最適化をネイティブに統合するにつれて、開発者はテキストからUltralytics YOLO26のような高度なアーキテクチャによって処理される複雑な視覚データまで、より広範なモダリティでより高速な推論レイテンシーを期待できます。

そのようなモデルのライフサイクルを管理している方には、Ultralytics Platformのようなツールを利用することで、基盤となるデータセットとトレーニングパイプラインが堅牢であることが保証され、高度な推論技術のための強固な基盤が提供されます。大規模言語モデルを扱っている場合でも、最先端のオブジェクト検出を扱っている場合でも、推論パイプラインの最適化は、プロトタイプからプロダクションへの移行における重要なステップであり続けています。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。