Top-pサンプリングは、核サンプリングとも呼ばれ、自己回帰型確率モデルからシーケンスを生成するために使用される確率的デコード戦略です。この手法は、大規模言語モデルなどのモデルに適用されます。2019年にAri Holtzman、Yejin Choiらによって、自然言語生成において、ビームサーチなどの他の一般的なデコード手法が生成する反復的で無意味なテキストの問題に対処するために提案されました。この技術はその後、タンパク質工学や地球物理学など、他の科学分野にも応用されています。
Top-pサンプリングでは、確率閾値pが設定され、シーケンス内の次の項目は、累積確率がpを超える最小の高確率候補セットからのみサンプリングされます。この方法は、モデルの確信度に基づいて候補プールのサイズを適応させるため、固定数の候補からサンプリングするtop-kサンプリングよりも柔軟です。その有効性から、top-pサンプリングは多くの大規模言語モデルアプリケーションで広く使用されています。
手法
テキスト生成プロセスの各ステップで、言語モデルは語彙全体に対する次のトークンの確率分布を計算します。最も高い確率のトークンを単純に選ぶ方法(貪欲探索)や、高確率のシーケンスの限定セットを選ぶ方法(ビームサーチ)も可能ですが、これらの決定論的手法は、退屈で反復的、または無意味なテキストを生成することがよくあります。Top-pサンプリングは、これらの問題を回避しながら品質を維持するためにランダム性を導入します。
核となるアイデアは、各ステップで、より信頼性の高いトークンの小さなセット(核と呼ばれる)からサンプリングすることです。この核には、累積確率が閾値pをちょうど超える最も可能性の高い次のトークンが含まれます。この動的にサイズが変わるグループからのみサンプリングすることで、モデルはさまざまな状況に適応できます。モデルが次のトークンに確信を持っている場合(例えば、1つのトークンの確率が非常に高い場合)、核は小さくなります。モデルが不確かな場合(確率がより均等に分布している場合)、核は大きくなり、多様性が向上します。
各ステップのプロセスは次のとおりです。
- モデルは、すべての可能な次のトークンの確率を計算します。
- トークンは確率の降順でソートされます。
- 累積確率が事前に定義された閾値pを超えるまで、リストの先頭からトークンを選択して核を形成します。
- この核内のトークンの確率は、合計が1になるように再スケーリングされます。核外のすべてのトークンは破棄されます(確率は0に設定されます)。
- 最終的な次のトークンは、この新しい小さな分布からランダムにサンプリングされます。
形式的には、核V^(p) ⊆ Vは、次の条件を満たす最小のトークンセットとして定義されます。
∑_{x ∈ V^(p)} P(x | x_1, …, x_{t-1}) ≥ p
この式で、P(x | x_1, …, x_{t-1})は、先行するトークンx_1, …, x_{t-1}が与えられたときのトークンxの確率を表します。
例
あるステップで、言語モデルの語彙が5つの単語[the, a, cat, dog, eats]で構成され、次の確率を生成するとします。
- the: 0.5
- a: 0.2
- cat: 0.1
- dog: 0.1
- eats: 0.1
p = 0.8と設定した場合:
- トークンは確率順にソートされます:[the, a, cat, dog, eats]。
- 累積確率が計算されます:
- the: 0.5
- the + a: 0.5 + 0.2 = 0.7
- the + a + cat: 0.7 + 0.1 = 0.8
- 累積確率が0.8以上となる最小のセットが核であり、V^(0.8) = {the, a, cat}となります。
- このセットの確率は合計が1になるように再スケーリングされます:
- P(the) = 0.5 / 0.8 = 0.625
- P(a) = 0.2 / 0.8 = 0.25
- P(cat) = 0.1 / 0.8 = 0.125
- 次のトークンはこの新しい分布からサンプリングされ、dogとeatsが選択される確率は0%になります。
Top-kサンプリング
Top-kサンプリングは、候補トークンのプールを最も可能性の高いk個のトークンに制限する類似の手法です。Top-pの主な利点は、その適応性です。モデルが次のトークンに非常に確信している場合(ピークのある分布)、核V^(p)は非常に小さくなります。モデルが不確かな場合(平坦な分布)、核ははるかに大きくなり、多様性が向上します。対照的に、top-kは常に固定数のトークンからサンプリングするため、文脈によっては制限が強すぎたり、広すぎたりする可能性があります。
応用
Top-pサンプリングは、大規模言語モデルのデコード戦略として最も有名ですが、確率モデルからのシーケンシャルデータの生成や分析を伴う他の科学分野にも応用されています。
自然言語生成
元々の分野である自然言語生成では、top-pサンプリングは、決定論的手法と比較して、より多様で一貫性のあるテキストを生成できる点で評価されています。自動質問生成などのタスクでは、サンプルの多様性が質問応答モデルの効果的なトレーニングデータを作成するために重要であり、この手法が有益であることが示されています。
医薬品およびタンパク質設計
Top-pサンプリングは、計算生物学において、特殊な言語モデルから新規の分子配列やタンパク質配列を生成するために使用されます。de novo医薬品設計では、分子構造でトレーニングされた化学言語モデルが核サンプリングを使用して、新規で有効な医薬品候補の焦点を絞ったライブラリを生成します。同様に、タンパク質工学では、top-pサンプリングは、機能性タンパク質を生成する可能性を維持しながら配列空間を探索するのに役立ちます。
地球物理学
地球物理学では、top-pサンプリングは、確率モデルから地震波形やその他のシーケンシャルデータを生成するために適用され、地震シミュレーションや地下イメージングなどのタスクに役立ちます。核の適応性により、複雑な自然現象をモデル化するために重要な、生成データの現実的な変動が可能になります。
他のデコード戦略との関係
Top-pサンプリングは、生成モデルで使用されるいくつかの確率的デコード手法の1つです。出力のランダム性をさらに制御するために、温度スケーリングと組み合わせられることがよくあります。温度スケーリングはサンプリング前に確率分布の鋭さを調整しますが、top-pサンプリングは分布をトークンのサブセットに切り詰めます。これらの手法は、多様性と一貫性のバランスを達成するために一緒に使用できます。
貪欲探索やビームサーチなどの決定論的手法と比較して、top-pサンプリングは確率性を導入し、反復ループを防ぎ、より多様な出力を生成できます。ただし、このランダム性は時折、一貫性の欠如につながる可能性があり、pの選択が重要です。低いp値(例:0.5)は出力をより焦点を絞り決定論的にし、高いp値(例:0.95)は多様性を高めますが、品質を低下させる可能性があります。
実装に関する考慮事項
実際には、top-pサンプリングはほとんどの最新の深層学習フレームワークに実装されており、OpenAI、Anthropic、Google DeepMindなどの大規模言語モデルのAPIにおける標準パラメータです。閾値pは通常、一般的なテキスト生成タスクでは0.9から0.95の間に設定されますが、最適な値は特定のアプリケーションと、創造性と正確性の間の望ましいトレードオフによって異なります。
実装における1つの課題は、特に大規模な語彙の場合、累積確率の計算を効率的に保証することです。ただし、核は通常小さいため、計算オーバーヘッドは最小限です。さらに、top-pサンプリングは、RLHF(人間のフィードバックからの強化学習)などの他の手法と組み合わせて、生成されたテキストを人間の好みに合わせることができます。
制限と拡張
その利点にもかかわらず、top-pサンプリングには制限があります。閾値pは静的であり、文脈に適応しないため、一部のシナリオでは最適以下のパフォーマンスにつながる可能性があります。研究者は、分布のエントロピーに基づく動的なp値などの拡張を探求していますが、これらはまだ広く採用されていません。さらに、top-pサンプリングは各ステップで局所的な確率のみを考慮するため、全体的な一貫性を保証しません。
もう1つの制限は、モデルの分布が少数のトークンに強くピークしている場合、top-pサンプリングでも反復的なテキストが生成される可能性があることです。そのような場合、top-pをtop-kや温度調整などの他の戦略と組み合わせる必要があるかもしれません。これらの課題にもかかわらず、top-pサンプリングは生成AIツールボックスにおける基本的なツールであり、研究と本番システムの両方で広く使用されています。