デコーディング戦略
デコーディングは再学習せず次 token のスコアから結果を選びます。Greedy は最大、Top-k は固定数、Top-p は累積確率が閾値に達する候補から抽出します。温度が集中度を変え、同じスコアでも規則次第で違う token になります。
[0,1) の定規を確率比例の区間へ分け、一様な乱数の印が落ちた token を選ぶと考えてください。フィルタで区間を除き、残りを同比率で全長へ伸ばすと、同じ印でも別 token に入ります。
温度、選別、正規化
固定 prefix の GPT-2 は 50,257 logit を出します。T > 0 で:
p_T(i) = exp((z_i − max(z))/T) / Σ_j exp((z_j − max(z))/T)
最大値を引くと数学上の確率を変えず指数を安定させます。低温は集中、高温は拡散し、正の温度は固定 logit の順位を変えません。
Greedy は最大 logit で乱数不要です。一意の最大は全正温度で同じ。本課の同点は小 token ID を優先します。
Top-k は先頭 k、Top-p は順位順に足し、初めて到達または超過した時点で止め、越えた token も含みます。p は質量で、候補数でも個別確率の閾値でもありません。
保持集合 S の質量 M = Σ_(i in S) p_T(i) に対し:
q(i) = p_T(i)/M(保持項)、それ以外は 0。
全定規を覆い、相対オッズは変えません。残った確率が不均等なら、印が一様でも候補は等確率でなく、広い区間が選ばれやすくなります。両方式は全温度分布から別々に始め、Top-k の後へ Top-p を隠れて適用しません。Transformers 生成パラメータと核サンプリング論文を参照してください。
ステップ実行
prefix は原文 The colors of the rainbow are red, orange, yellow,、T = 1、k = 3、top-p = 0.8、シード 41。実 GPT-2 の値で、· は先頭空白を示します。
| 順位 | token | モデル確率 | 累積 |
|---|---|---|---|
| 1 | ·blue | 0.226576 | 0.226576 |
| 2 | ·and | 0.218336 | 0.444912 |
| 3 | ·green | 0.210356 | 0.655268 |
| 4 | ·purple | 0.059970 | 0.715238 |
| 5 | ·yellow | 0.039174 | 0.754412 |
| 6 | ·pink | 0.032688 | 0.787099 |
| 7 | ·orange | 0.025592 | 0.812691 |
| 8 | ·black | 0.024890 | 0.837581 |
残る 50,249 は約 0.162419 で全計算に参加します。blue の首位は調べるべきモデル出力で、虹の順序の正しさを示しません。
- Greedy:首位
·blue。k、p、シードは使いません。 - Top-k:三候補の質量
0.655268、除外0.344732。正規化前は定規の末尾に合法候補がないため、質量で割り、blue、and、green を約0.345777、0.333200、0.321023にします。 - 印を置く:最初の
u = 0.8510142471641302。順位順区間で green は約[0.678977,1)、したがって·green。長さが約 32.10% の確率です。 - Top-p:六項は
0.787099 < 0.8、orange を加えて0.812691なので七項です。正規化した purple 区間は約[0.806294,0.880085)で、同じ u が·purpleを選びます。
同スコア、同乱数で blue、green、purple となり、違いはデコーダです。
最後は同じ prefix の独立抽出試験を十二回並べ、十二語の続きではありません。各列の両サンプラは u を共有するため方式間は結合され、方式内の次試験は新しい擬似乱数です。Greedy は常に blue。十二回では経験頻度が理論確率に一致した証拠にはなりません。
固定個数と固定質量
既定 prefix、p=0.8 で温度 0.5、1、1.5、2 の核は 3、7、352、6,340 token。順位は同じでも尾部へ広がり、質量を満たす個数が増えます。
T = 1 で 1, 2, 3, 4, 5, に変えると ·6 は約 0.909493、一項で 0.8 を超え、Top-p も決定的です。The capital of France is は同閾値に 502 項必要。Top-k はどちらも k です。
| 目的 | 制御 | 固定されるもの |
|---|---|---|
| 常に最大 | Greedy | 固定 prefix の選択は種子に依存しない |
| 候補数を固定 | Top-k | 分布が変わっても k 項 |
| 集中度で候補数を変える | Top-p | 累積質量の閾値 |
| 選別前のオッズを変える | 温度 | 固定 logit の順位 |
k=1 では温度を上げても唯一の候補が全区間を占めます。変化が欲しければ k を増やします。比較は prefix と種子を固定します。どの規則も正しい事実を保証せず、高温は創造性や品質改善の測定でもありません。
計算量
語彙 V の最大探索は O(V)。本課は全順位を O(V log V) で作り、確率、質量、累積区間は時間・空間 O(V)。表ができれば各印は二分探索 O(log |S|) です。
固定 prefix の順位は正温度間で再利用できます。全ソートは本実装の選択で、専用 Top-k は別法もあります。実際の生成は追加 token で prefix が変わり、新しいモデル順伝播が必要ですが、この後処理費用に含みません。
境界ケース
- k=1:元確率が低くても q=1 で、温度は除外した候補を戻せません。
- p が首位確率より低い:Top-p も一候補で、Greedy でなくても決定的です。
- 累積が等しい:直ちに停止し、未満なら次を含めます。
- p=1、k=V:それぞれ全語彙を保持し、同じ印なら同選択です。並列比較で、直列フィルタではありません。
- 表示八項の外:実 token、順位、区間を表示し、「その他」という架空 token を抽出しません。
- 同点:本課は ID 順で、他ライブラリの厳密な境界規約は異なりえます。
- T=0:この式の除数として無効です。UI は正数にし、決定規則は明示的 Greedy です。
よくある間違い
- p=0.8 を各項 80% 超と読む。順位 prefix の累積です。
- 越えた項を捨てる。既定の七位を外すと 78.71% で 80% を満たしません。
- 選別後に候補を一様抽出する。同比率の正規化であり
1/|S|ではありません。両者が一致するのは、残った確率がすべて等しいとき(k = 1の単一候補など)だけです。 - 可視八本だけを正規化して尾部を消す。全 50,257 項を使います。
- 十二抽出を生成文と読む。実続きは選んだ token を毎回モデルへ戻します。次 token 予測で扱います。
モデルの範囲
三つの実 GPT-2 順伝播からの完全 logit と、revision・書出しメタデータを使います。ブラウザはモデルを読み込まず解読だけを倍精度で再計算し(そのため Top-p の入力は小数第 6 位まで)、八項と視覚上の尾部に分けます。再推論、ビーム探索、反復ペナルティ、他の logit 処理は省き、保持・正規化・選択を別々に検査します。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。