Huggingface の GenerationConfig の top_k と top_p の詳細な解釈

Huggingface の GenerationConfig の top_k と top_p の詳細な解釈

トップ_k

top-k は、最も高い確率で上位 k 個の単語のみを保持し、残りの単語の確率に基づいて正規化し、その中から単語が最終出力としてランダムに選択されることを指します。このアプローチでは、出力シーケンスの長さを制限しながら、サンプルの一定の多様性を維持できます。

たとえば、言語モデルを使用して「今週末は天気がとても良いです」という文を生成する場合、top-k は最も高い確率で 3 つの単語を「good」、「hot」、「cold」として保持します。 、残りの単語の確率が正規化され、確率が 0 に設定され、3 つの予約語のうち 1 つがランダムに選択されます。たとえば、「良い」を選択すると、文は「今週末の天気はとても良いです」になります。このプロセスは、生成された文が十分になるまで繰り返すことができます。

top-k を使用すると、結果生成の品質を制御しながら、出力シーケンスの長さを制限し、文の一定の多様性を可能な限り維持することができます。値が小さすぎると結果がランダムになりすぎ、大きすぎると生成される単語の種類と多様性が制限される可能性があることに注意してください。このハイパーパラメータの設定はタスクの要件に応じて調整する必要があります。そして経験してください。

トップ_p

top-p は、テキスト生成における出力を制御するための戦略です。top-p アルゴリズムは、累積確率の合計が所定のしきい値 p に達する確率分布内の単語を保持し、この分布内でランダム サンプリングを実行して単語を生成します。

例として、p 値 0.8 を選択し、言語モデルを通じて次の単語を予測するとします。モデルに従って、それぞれが異なる確率分布を持つ 10 個のオプションの単語を取得すると仮定します。10 個の仮想単語とその確率は次のとおりです。

  • ワード 1: 0.25
  • ワード 2: 0.20
  • ワード 3: 0.15
  • ワード 4: 0.1
  • ワード 5: 0.07
  • ワード 6: 0.06
  • ワード 7: 0.05
  • ワード 8: 0.04
  • ワード 9: 0.03
  • ワード 10: 0.01

top-p アルゴリズムに従って、単語の確率を大きい順に 1 つずつ、累積確率が 0.8 に達するまで累積します。上記 10 個の単語の累積確率は次のとおりです。

  • ワード 1: 0.25
  • ワード 1+ワード 2: 0.45
  • 単語1+単語2+単語3: 0.60
  • 単語1+単語2+単語3+単語4: 0.70
  • 単語1+単語2+単語3+単語4+単語5: 0.77
  • ワード1+ワード2+ワード3+ワード4+ワード5+ワード6: 0.83

ワード 6 まで累積すると、累積確率は 0.83 に達したため、これら 6 つのワードからランダムにサンプリングして最終出力を選択します。

top-p アルゴリズムは、累積確率が指定されたしきい値未満の単語を維持できるため、出力単語の多様性を制御できます。しきい値が 0.3 など比較的小さく設定されている場合、選択される単語の数が少なくなり、結果が十分に多様性に欠ける可能性があります。しきい値が 0.9 などの比較的大きい値に設定されている場合、より多くの単語が選択され、結果は次のような結果になる可能性があります。ランダムすぎる。したがって、適切なしきい値を選択するには、タスクの要件と実際の条件を組み合わせてテストし、調整する必要があります。

共同共有

果物に関する短いテキストを生成したいとします。モデルは次の 10 個の単語を出力します。その確率は次のとおりです。

  • アップル: 0.2
  • オレンジ:0.2
  • バナナ: 0.1
  • ブドウ: 0.1
  • イチゴ:0.1
  • マンゴー:0.1
  • ピーチ:0.05
  • パイナップル:0.05
  • グレープフルーツ:0.04
  • ドラゴンフルーツ:0.03

多様な文を生成したいので、以下で説明するように、top-k と top-p の制約の下でサンプリングできます。

まず、top-k を 5 に設定して、保持確率が最も高い 5 つの単語を示します。これにより、リンゴ、オレンジ、バナナ、ブドウ、イチゴの 5 つの単語が保持され、他の単語が削除されます。

  • アップル: 0.2
  • オレンジ:0.2
  • バナナ: 0.1
  • ブドウ: 0.1
  • イチゴ:0.1

次に、top-p 法を使用して、確率の累積和が 0.4 に達する単語、つまり、オレンジ、リンゴ、イチゴの 3 つの果物を選択します。これら 3 つの果実を再正規化すると、確率は次のようになります。

  • アップル: 0.4
  • オレンジ:0.4
  • イチゴ:0.2

次に、上記の分布からランダムにサンプリングし、最終的な生成結果として単語を選択します。結果として生じる果物は、リンゴ、オレンジ、イチゴのいずれかになる可能性があります。オレンジとリンゴはイチゴよりも確率が高いため、確率が高くなります。

この例からわかるように、top-k と top-p を組み合わせて使用​​すると、生成する文章が多様性と合理性を備え、同時に読者の注意を引くことが保証されます。さまざまなタスクや要件に応じて、実際の状況に応じてパラメータを調整して、より良い出力結果を得ることができます。

おすすめ

転載: blog.csdn.net/qq_18555105/article/details/130355217