ミッチェル・スターンらは、2018年に投機的サンプリングのプロトタイプコンセプトを提案しました。その後、このアプローチは、Lookahead Decoding、REST、Medusa、EAGLEなどのさまざまな研究によってさらに開発および洗練されており、投機的サンプリングにより大規模言語モデル (LLM) の推論プロセスが大幅に高速化されています。
重要な質問は、LLM の投機的サンプリングは元のモデルの精度を損なうのかということです。答えから始めましょう: いいえ。
標準の投機的サンプリング アルゴリズムはロスレスであり、この記事では数学的分析と実験を通じてこれを証明します。
数学的証明
推測的なサンプリング公式は次のように定義できます:
ここで:
簡単にするために、確率条件を省略します。実際、? と ? はプレフィックス トークン シーケンス に基づいた条件付き分布です。
以下は、DeepMind 論文 でのこの式の無損失性の証明です:
数式を読むのが退屈すぎると感じる場合は、次にいくつかの直観的な図を通して証明プロセスを説明します。
これはドラフトモデル ? と基本モデル ? の分布図です:
図 1: ドラフトモデル p と基本モデル q の出力分布の確率密度関数
これは単なる理想化されたグラフであることを理解してください。実際に計算するのは、次のような離散分布です。
図 2: 言語モデルは、語彙セット内の各トークンの離散確率分布を予測します。青いバーはドラフト モデルからのもので、赤いバーはベースモデルのものです。
ただし、単純化と明確化のために、連続近似を使用してこの問題について説明します。
ここで問題は、分布 ? からサンプリングしますが、最終結果は ? からサンプリングしたものと同じになるようにすることです。重要なアイデアは、赤色の領域の確率を黄色の領域に移動することです:
図 3: 合格および拒否のサンプリング領域
ターゲット分布は 2 つの部分の合計として見ることができます:
I。受け入れ
このブランチには 2 つの独立したイベントがあります:
これらの確率を掛け合わせます:
図 4: 青と赤の線を乗算すると、結果は図 6 の緑の線になります
II このブランチには検証拒否
があります。また、2 つの独立したイベント:
これは整数値であり、値は特定のトークン x とは関係ありません。
其分母作用是对概率分布进行归一化,以保持概率密度积分等于 1。
两项相乘,第二项的分母被约掉:
max(0,?(?)−?(?))
图5. 该图中的红线与绿线对应函数相乘,结果等于图6中的红线
为什么拒绝概率恰好可以归一化max(0,?−?) ?看起来似乎是巧合,这里一个重要的观察是,图 3 中红色区域的面积等于黄色区域的面积,因为所有概率密度函数的积分都等于 1。
将I, II两部分相加:
最后,我们得到了目标分布 ?。
图6. 绿色区域与红色区域相加,正好等于黄线以下的面积
而这正是我们的目标。
实验
尽管我们已经从原理上证明了投机采样是无损的,但算法的实现仍然可能存在bug。因此,实验验证也是必要的。
我们对两种情况进行了实验:贪婪解码的确定性方法和多项式采样的随机方法。
贪婪解码
我们要求 LLM 生成两次短篇故事,首先使用普通推理,然后使用投机采样。两次采样温度均设置为 0。我们使用了 Medusa 中的投机采样实现。模型权重为 medusa-1.0-vicuna-7b-v1.5 及其基础模型 vicuna-7b-v1.5。
测试运行完成后,我们得到了两个精确相同的结果。生成的文本如下:
User: Please tell a tale about a cyperpunk knight named PPIO keeps a charming llama as his pet. Assistant: Once upon a time, in a world where technology had advanced beyond our wildest dreams, there lived a cyberpunk knight named PPIO. PPIO was a skilled warrior, with advanced cybernetic enhancements that gave him incredible strength and speed. He was also a man of great honor, always striving to do what was right and just. One day, while out on a mission, PPIO stumbled upon a beautiful llama. Despite being a cybernetic being, PPIO had a soft spot for animals and he couldn't resist rescuing the llama from whatever danger it may have been in. From that day on, the llama followed PPIO wherever he went, and the two became fast friends. The llama, whose name was Llama-ella, was a special llama. It had a unique ability to sense when someone was in danger and would let out a loud, distinctive call to alert them to the danger. PPIO was grateful for Llama-ella's ability and the two became an unstoppable team. Together, PPIO and Llama-ella took on all sorts of challenges, from battling cybernetic villains to rescuing innocent people from harm. They were a force to be reckoned with, and their bravery and honor were an inspiration to all who knew them. |
多项式采样
在随机采样的情况下,情况更加复杂。大多数在随机程序中重现结果的方法都使用固定的随机种子来利用伪随机生成器的确定性。但是,这种方法不适合我们的场景。我们的实验依赖于大数定律:如果有足够的样本,则实际分布与理论分布之间的误差将收敛于零。
我们编制了四个提示文本,对LLM在每个提示下生成的首个token进行了 1,000,000 次投机采样迭代。使用的模型权重为 Llama3 8B Instruct 和 EAGLE-LLaMA3-Instruct-8B。统计结果如下所示:
L'échantillonnage spéculatif ne nuit pas à la précision de l'inférence des grands modèles de langage. Grâce à une analyse mathématique rigoureuse et à des expériences pratiques, nous démontrons la nature sans perte de l'algorithme d'échantillonnage spéculatif standard. La preuve mathématique montre comment la formule d'échantillonnage spéculatif préserve la distribution originale du modèle sous-jacent. Nos expériences, notamment le décodage glouton déterministe et l'échantillonnage polynomial probabiliste, valident davantage ces résultats théoriques. L'expérience de décodage glouton a produit les mêmes résultats avec et sans échantillonnage spéculatif, tandis que l'expérience d'échantillonnage polynomial a montré que la différence dans la distribution des jetons est négligeable sur un grand nombre d'échantillons. Ensemble, ces résultats démontrent que l'échantillonnage spéculatif peut accélérer considérablement l'inférence LLM sans sacrifier la précision, ouvrant la voie à des systèmes d'IA plus efficaces et plus accessibles à l'avenir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!