投機的デコーディングの高速化の計算
入力
| 受理率 | 70 % |
|---|---|
| 1サイクルあたりのドラフトトークン数 | 5 |
| ドラフトのコスト比 | 15 % |
投機的デコーディングの高速化の計算
投機的サンプリングによる復号の高速化を見積もる。ドラフトの受理率、1サイクルあたりのドラフトトークン数、ドラフトの相対コストを入力すると、期待される受理トークン数と実時間の高速化率が得られる。
入力
ドラフトモデル
結果
値を入力すると計算結果が表示されます。
詳細
投機的デコーディングの高速化
投機的デコーディングは、小さく安価なドラフトモデルに数トークン先まで推測させ、それを大きなターゲットモデルが一度にまとめて検証することで、言語モデルの生成を高速化する。推測が当たれば、ターゲットは1回の順伝播の費用で複数のトークンを生成し、外れれば通常の復号に戻る。この計算は、ドラフトトークンがどれだけの頻度で受理されるか、1サイクルあたり何個提案されるか、ドラフトモデルがターゲットに対してどれだけ高コストか、という3つの数値から得られる高速化を見積もる。
仕組み
通常の復号器ではターゲットモデルが1トークンにつき1回実行される。投機的デコーディングは代わりにドラフトモデルに 個のトークンを提案させ、それからターゲットを1回実行してそれらを並列に検証する。ターゲットは、提案された各トークンがターゲット自身のサンプリングしたであろうものと一致する限り受理し、最初の不一致で止め、その位置を自らの分布から再サンプリングする。却下されたトークンはターゲットから修正されるため、出力は通常の復号と統計的に同一である。この手法は、モデルの発言を変えることなく、追加のドラフト計算と引き換えに高コストなターゲットの順伝播を減らす。
計算式
各トークンが独立に確率 で受理されるとき、ターゲットの1回の順伝播あたりに生成される期待トークン数は次のとおりである。
τ=1−α1−αγ+1これはドラフトモデルが無償であれば高速化率となる。各ドラフトの順伝播にターゲットの順伝播の 分の割合のコストを課すと、通常の復号に対する実時間の高速化率は次のようになる。
S=(γc+1)(1−α)1−αγ+1分子は受理と長い提案を評価し、分母はそれらの提案が要するドラフトの作業を罰する。
計算例
ドラフトモデルが70%の確率で受理され、1サイクルあたり5トークンを提案し、各ドラフトの順伝播がターゲットの順伝播の15%のコストである場合を考える。
τS=1−0.71−0.76=0.30.8824≈2.94=(5×0.15+1)(0.3)0.8824=0.5250.8824≈1.68ターゲットの1回の順伝播あたり平均で3トークン近くが得られるが、5回のドラフトの順伝播の費用を払った後に実現する高速化はおよそ1.7倍である。受理率を90%に上げれば2倍を大きく超え、より重いドラフトモデル、例えばターゲットの40%のコストであれば、その利益の多くを取り戻されてしまう。
構成の選び方
支配的な要素は2つある。受理率はドラフトモデルがターゲットと密接に整合するときに上がるため、ドラフトには通常、同じ系列のより小さいモデルやターゲットの蒸留が用いられる。ドラフト長には最適点がある。受理が累積するため、1サイクル全体が生き残る確率は等比的に下がり、数個を超えると追加のドラフトコストがまれに起こる長い受理を上回る。ここでドラフトトークン数を変えて掃引すると、ある受理率に対して高速化がどこで最大になるかが分かる。向上したトークンあたりの速度が応答完了までの時間にどう反映されるかは推論レイテンシの計算を参照されたい。
よくある質問 (FAQ)
受理率とは何ですか
ドラフトモデルが一連のトークンを提案すると、ターゲットモデルがそれらを検証し、ターゲットがサンプリングしたであろうものと一致する限り各トークンを受理します。受理率はその一致が起こるトークンあたりの確率です。ドラフトモデルがターゲットとよく整合しているとき、例えば同じ系列のより小さいモデルや、ターゲットを模倣するように微調整されたモデルのときに上がり、難しいテキストや分布外のテキストでは下がります。重要な点として、投機的デコーディングは厳密です。却下されたトークンはターゲットから再サンプリングされるため、出力分布は通常の復号と同一です。
ドラフトモデルのコストが高速化を下げるのはなぜですか
各サイクルは、トークンを提案するためにドラフトモデルを数回、それを検証するためにターゲットモデルを1回実行します。ドラフトモデルが無償なら、高速化はターゲットの1回の順伝播あたりに受理される期待トークン数に等しくなります。実際には各ドラフトの順伝播に時間がかかるため、分母にドラフトトークン数とその相対コストの積が加わります。大きすぎるドラフトモデルは自らの利益を打ち消すため、効果的なドラフトはターゲットよりはるかに小さくなります。
1サイクルあたり何個のドラフトトークンを提案すべきですか
最適点があります。トークンを多く提案すると最良の場合は上がりますが、受理が累積するため、1サイクル全体が生き残る確率は等比的に下がります。1つのトークンが却下されると、そのサイクルでそれ以降の提案はすべて破棄されます。数個を超えると、追加のドラフトコストがまれに起こる長い受理を上回ります。最適値は受理率とドラフトコストに依存するため、ここでいくつかの値を試すと高速化がどこで最大になるかが分かります。
免責事項
これはトークンあたりの受理率が一定で、ドラフトの相対コストが固定であると仮定した簡略化モデルです。実際の受理率はテキストやサンプリング温度によって変わり、検証にはここで捉えていないオーバーヘッドが加わるため、測定される高速化は異なります。この数値は厳密な予測ではなく、構成同士を比較するために用いてください。