大規模言語モデルのための現代的なサンプリング方法:テクニックと戦略 大規模言語モデル(LLM)はユーザーの入力に基づいて次の単語を予測しますが、その生成過程には様々なサンプリング方法が利用されます。これらの方法は、出力の多様性、創造性、そして一貫性を制御するために設計されています。本記事では、主なサンプリング手法とその効果について詳しく解説します。 温度: 概要:モデルの「創造性のつまみ」。低い温度(0に近い)では慎重で予測可能な出力になり、高い温度(0.7-1.0)ではより創造的でランダムな出力を生成します。 技術的説明:温度は確率分布を直接操作します。ログイット(未正規化のスコア)を温度値で割ることで、高温では分布がフラットになり、低温ではピークが高くなります。 存在ペナルティ: 概要:一度使用されたトークンの再使用を抑制します。モデルが一度話した言葉を再び使用することを控えさせます。 技術的説明:一度使用されたトークンのログイットから固定のペナルティ値を減算します。これにより、既に使用されたトークンが選ばれる可能性が低くなります。 頻度ペナルティ: 概要:トークンの使用回数に基づいて再使用を抑制します。頻繁に使用された言葉ほど、再度使用される可能性が低くなります。 技術的説明:各トークンの過去の出現回数を追跡し、出現回数に応じてログイットを減算します。これにより、頻繁に使用されたトークンの確率が低下します。 反復ペナルティ: 概要:プロンプトと生成されたテキストに現れたトークンに対してペナルティを適用します。ポジティブなログイットは分割され、ネガティブなログイットは乗算されます。 技術的説明:プロンプトと生成されたテキストの両方で現れたトークンに対して、ポジティブなログイットを分割し、ネガティブなログイットを乗算することでペナルティを適用します。 DRY(Don't Repeat Yourself): 概要:繰り返しパターンを避けるために、既に現れたn-gramにペナルティを適用します。 技術的説明:生成されたトークン列で繰り返しパターンを見つけ、それを続けるトークンにペナルティを適用します。これにより、自然で多様なテキストを生成できます。 Top-K: 概要:最も確率の高いK個のトークンのみを考慮します。これにより、極端に低い確率のトークンを選択するのを防ぎます。 技術的説明:ログイットをソートし、K番目以上の値を保持し、それ以下の値を無限大に設定します。 Top-P: 概要:累積確率が閾値Pを超える最小のトークン集合を選択します。モデルが自信を持っている場合、選択肢が少なくなります。 技術的説明:確率分布を計算し、累積確率が1-P以下のトークンをマスクアウトします。 Min-P: 概要:最高の選択肢に対する相対的な品質閾値を設定します。モデルが自信を持っている場合、選択肢が厳しく制限されます。 技術的説明:確率分布を計算し、最高確率のトークンの閾値を設定し、それ以下のトークンをマスクアウトします。 Top-A: 概要:モデルの自信度に応じてより厳しいフィルターを適用します。自信が高い場合は選択肢が極端に制限されます。 技術的説明:最高確率のトークンの平方を使用して閾値を設定し、それ以下のトークンをマスクアウトします。 XTC(eXclude Top Choices): 概要:最も確率の高い選択肢を排除します。これにより、予測可能な選択肢から逸脱する出力を生成できます。 技術的説明:ランダムに選択し、閾値を超える選択肢を除外し、最も低いスコアのトークンだけを残します。 Top-N-Sigma: 概要:統計的な品質基準を設定します。モデルの自信度に応じて選択範囲が調整されます。 技術的説明:最も多いトークンのスコアと標準偏差を使用して閾値を設定し、それ以下のトークンをマスクアウトします。 Tail-Free Sampling: 概要:確率分布の尾部をカットします。これにより、意味のあるトークンのみを残します。 技術的説明:確率分布の曲率を分析し、尾部をカットする閾値を設定します。 Eta Cutoff: 概要:モデルの自信度に応じて選択範囲を動的に調整します。自信が高い場合は選択肢が厳しく制限されます。 技術的説明:確率分布のエントロピーを計算し、それに応じて動的な閾値を設定します。 Epsilon Cutoff: 概要:固定の確率閾値を設定します。これにより、極端に低い確率のトークンを選択するのを防ぎます。 技術的説明:確率分布を計算し、固定の閾値以下であるトークンをマスクアウトします。 Locally Typical Sampling: 概要:最も「平均的」なトークンを選択します。予測可能すぎたり、極端に予測不可能なトークンを避けて、自然なテキストを生成します。 技術的説明:各トークンのサプライザル(予測不可能度)を計算し、平均サプライザルに近いトークンを選択します。 Quadratic Sampling: 概要:確率分布全体を数学的に変形します。これにより、高確率トークンを強調したり、低確率トークンを抑制したりできます。 技術的説明:二次関数と三次関数を使用してログイットを変形し、確率分布の形状を調整します。 Mirostat Sampling: 概要:生成テキストの「驚き」レベルを自動的に調整します。これにより、一貫した予測性を維持できます。 技術的説明:コントロールシステムを使用して、目標のサプライザルレベルに向けて動的に調整します。 ダイナミック温度サンプリング: 概要:現在のトークン分布のエントロピー(不確実性)に基づいて温度を自動的に調整します。これにより、多様性と一貫性をバランスよく維持できます。 技術的説明:確率分布のエントロピーを計算し、それに応じて温度を調整します。 ビームサーチ: 概要:複数の候補パスを同時に探索し、最も有望なパスを選択します。これにより、一貫した高品質のテキストを生成できます。 技術的説明:固定数の候補シーケンスを維持し、各ステップで最も確率の高いシーケンスを選択します。 コントラスティブサーチ: 概要:高確率と低類似性のバランスを取って次に来るトークンを選択します。これにより、予測可能すぎたり、不連続になることを防ぎます。 技術的説明:各トークンの確率と既存コンテキストとの類似性を計算し、バランスの取れたスコアを選択します。 サンプラの順序と相互作用 これらのサンプリング手法は通常、特定の順序で適用されます。順序によって最終的な出力が大きく影響を受けます。例えば、温度調整とフィルタリングの順序は重要です。また、DRYサンプラの位置も重要な役割を果たします。適切な組み合わせと順序を理解することで、より効果的なテキスト生成が可能になります。 新しい見出し 大規模言語モデルのサンプリング方法:創造性と多様性を制御するテクニック LLMのテキスト生成:主要なサンプリング手法と順序の重要性 大規模言語モデルのための最新サンプリング手法とその効果 これらの見出しは、記事の核心的なメッセージを簡潔かつ魅力的に伝え、技術的な正確さを保っています。
現代のLLMサンプリング手法への入門 大規模言語モデル(LLM)はユーザーの入力テキストから次の単語(厳密にはトークン)を選択することで运作します。トークンとは、言語の最小単位のことで、文字ではなく単語や単語の断片を使用します。この方法には、計算効率とモデルの一貫性を向上させるためにいくつかの良い理由があります。 なぜトークンを使うか? 文字レベルトークン化: 文字ベースのトークン化では、小さなテキスト量でもトークンが膨大になるため、自己注意メカニズムの計算コストが上昇します。 文字ベースのトークン化では、関連する概念が遠く離れてしまう可能性があります。 単語レベルトークン化: 巨大な単語リストを作成する必要があり、埋め込み行列が不合理に大きくなり、高価になります。 新規または稀な単語の処理が難しくなります。未知の単語は「不明」トークンとして扱われるため、意味が失われてしまいます。 サブワードトークン化: 新規単語は既存のサブワードトークンの組み合わせで表現できます。 形態学的な関係を自然に捉えることができ、複雑な言語の扱いにも適しています。 トークンからテキストへ:LLMがコンテンツを生成する仕組み テキスト生成は以下のような二つの主要なステップから成ります: 1. 予測:各位置に対して、モデルはすべての可能な次に来るトークンに対する確率分布を計算します。 2. 選択:モデルはこの分布から一つのトークンを選択する必要があります。ここではサンプリングが行われます。 サンプリング手法 Temperature(温度): 低い温度(0に近い)の場合、最も確かな次候補を選ぶ傾向があります。 高い温度(0.7-1.0)の場合、より創造性的な選択を促しますが、エラーの懸念もあります。 業界関係者は、「適度なtemperature設定により、より自然で多様性のあるテキストを生成できる」と指摘しています。 Presence Penalty(存在ペナルティ): 一度使われたトークンに対する固定ペナルティを適用します。 以前に使われたトークンの選択確率を低下させますが、使用頻度に関係なく一様に適用されます。 Frequency Penalty(頻度ペナルティ): トークンの使用回数に基づいてペナルティを与えます。 同じ単語が何度も繰り返されるのを防ぎます。 Repetition Penalty(繰り返しペナルティ): プロンプトと生成テキストの両方に現れたトークンに対して、正負のロジットスコアをそれぞれ異なる方法で調整します。 ループから抜け出すのに役立ちますが、設定値が強すぎると一貫性が失われる可能性があります。 DRY(Don't Repeat Yourself): n-gramの繰り返しパターンを検出し、それを続けようとするトークンにペナルティを与えます。 繰り返しパターンの長さに応じてペナルティが強く適用され、テキストの多様性と自然さを維持します。 Top-K: トークンの中から最も確からしい上位K個のみを選び出します。 多様性を保ちつつ、極端に不確かな選択肢を排除します。 Top-P: もっともらしいトークンの累積確率が閾値Pを超える最小集合を選択します。 モデルが自信を持っている場合(低エントロピー)、選択肢が少なくなります。 Min-P: 最も確からしい選択肢に対する一定の比率でフィルタリングします。 不確実な選択肢を排除する一方で、選択肢の多様性を確保します。 Top-A: モデルの自信度に応じて、閾値が二次式で調整されます。 話者が自信を持っている場合は、選択肢が厳しく制限されます。 XTC(eXclude Top Choices): 一定の確率で最有力選択肢を除外します。 モデルが予測範囲外の選択を occasional に行うようにします。 Tail-Free Sampling(TFS): プロバビリティ分布の「尾」部分における急激な低下を検出し、閾値を超えた部分を除去します。 これは分布の形状に基づいているため、任意の閾値を設定するよりも自然です。 Eta Cutoff: モデルの不確実性(エントロピー)を反映した動的な確率閾値を設定します。 モデルが自信を持っている場合は、選択肢が狭まります。 Epsilon Cutoff: 固定の確率閾値を使って、不確かな選択肢を除去します。 他のメソッドほど適応的ではありませんが、シンプルで予測可能です。 Locally Typical Sampling: 予測値が平均的であるトークンを選択し、予測が自然で予測可能すぎないテキストを生成します。 Quadratic Sampling: 二次方程式を用いた数学的変換で、確率分布全体を再形成します。 最も確からしい選択肢を強調したり、分布を平滑化したりします。 Mirostat Sampling: テキスト生成が一貫した「驚き」のレベルを維持する自動調整フィルタリング方法です。 反復学習を用いて、最近のテキストが予測可能な場合、驚愕度を増加させます。 ビームサーチ: 複数のパスを同時に探索し、最も確からしいパスを保持します。 ただし、計算コストが高いため、現在ではあまり使用されていません。 コントラスティブサーチ: 次の単語が文脈に合っているか(高い確率)と、すでに書かれたものとの類似性が低いものを選択するバランスを取ります。 予測と多様性を両立させますが、計算コストが高いため使用が制限されるのが一般的です。 サンプリングパipeline 実際のLLM実装では、さまざまなサンプリング手法が順序付けられて適用されます: 1. Raw Logitsの生成 2. トークンのフィルタリング/禁止 3. ペナルティの適用 4. 繰り返しパターンに基づく手法の適用 5. 温度スケーリングの適用 6. 確率分布整形手法の適用 7. 最終分布からの選択 サンプリング手法の相互作用 サンプリング手法の適用順序は、テキスト生成に大きな影響を及ぼします。主要な交互作用としては以下があります: - Temperatureとフィルタリング:Temperatureが最初に適用されると、フィルタリング前の分布が平滑化されます。逆だと、フィルタリング後の分布に対して平滑化が適用されます。 - ペナルティとTemperature:ペナルティが最初に適用されると、Temperatureによる効果がマイルドになります。 - DRY的位置:初期にDRYが適用される場合、繰り返しパターンの防止に効果的ですが、後期に適用されると既にフィルタリングされている分布に対しても影響があります。 これらの手法は、相互に補完的でもある反面、競合する組み合わせもあるため、適切な順序を理解することが重要です。 例えば、高Temperatureと低Top-Kの組み合わせは、高温が分布を平滑化するのに対して、低Top-Kが選択肢を極端に制限するため、効果が打ち消し合う場合があります。 LLMのテキスト生成において、サンプリング手法の順序と組み合わせは、最終的なテキストの質と多様性を大きく左右する要素となります。適切な設定により、より自然で一貫した応答を得ることができます。 企業概要 この文書は、大規模言語モデルのテキスト生成を詳しく解説することで、技術者や開発者がLLMの動作原理を深く理解できるようにしています。これらの手法は、テキストの自然な流れや多様性を確保するために日々研究されています。企業は、これらの手法を活用して、より高性能なAIシステムを開発し、自然言語処理の境界を拡張し続けています。