大規模言語モデル(LLM)は、人工知能と自然言語処理の分野で革命的な力として登場しました。これらの洗練されたニューラルネットワークは、大量のテキストデータで訓練され、幅広い応用分野で人間のようなテキストの理解と生成の能力を示しています。チャットボットやバーチャルアシスタントからコンテンツ生成や言語翻訳まで、LLMは多数のAIパワードソリューションに欠かせない存在となっています。
LLMの核となるのは、与えられた文脈に基づいてシーケンスの次のトークン(単語またはサブワード)を予測する能力です。しかし、これらのモデルの生の出力は通常、語彙全体にわたる確率分布です。一貫した有用なテキストを生成するために、この分布からトークンを選択するためにさまざまなサンプリング手法が使用されます。これらのサンプリング方法は、創造性、一貫性、生成されたテキストの多様性などの要素に影響を与え、LLMの出力を形作るために重要な役割を果たしています。
LLMで使用されるサンプリングパラメータを理解し、効果的に活用することは、LLMと共に開発者、研究者、実践者が取り組む上で不可欠です。これらのパラメータによって、モデルの振る舞いを微調整し、特定のユースケースやアプリケーションに適したテキストの生成を可能にすることができます。サンプリングパラメータを調整することで、決定論的な出力と創造的な出力のバランスを制御し、一貫性と多様性のトレードオフを管理し、モデルの応答を特定の要件に合わせることができます。
この記事では、大規模言語モデルで使用されるいくつかの主要なサンプリングパラメータについて詳しく説明します。特に、温度、Top-k、Top-p(核サンプリング)などの高度な技術に焦点を当てます。これらのパラメータについて掘り下げることで、LLMの出力にどのように影響を与え、さまざまなアプリケーションで望ましい結果を実現するためにどのように活用できるかについて包括的な理解を提供することを目指します。
ならば、ぜひAnakin AIを見逃さないでください!
Anakin AIは、ワークフローオートメーションのためのオールインワンプラットフォームであり、使いやすいノーコードアプリビルダーで強力なAIアプリを作成することができます。Llama 3、Claude Sonnet 3.5、GPT-4、Uncensored LLMs、Stable Diffusionなど...
Anakin AIで数分以内に夢のようなAIアプリを構築しましょう!
![](https://assets.anakin.ai/blog/2024/06/anakin-claude-3-5-sonnet.webp)
温度サンプリングはどのように機能しますか?
温度は、LLMで最も基本的で広く使用されるサンプリング方法の一つです。これにより、ソフトマックス関数を適用する前に、ロジット(非正規化された対数確率)をスケーリングすることで、モデルの出力のランダム性を制御します。温度パラメータTは通常、0から1までの範囲ですが、1より大きい値も可能です。
数学的には、温度サンプリングは次のように機能します:
- モデルは、語彙内の各トークンに対してロジットzを出力します
- これらのロジットは温度Tで除算されます:z' = z / T
- z'に対してソフトマックス関数が適用され、確率分布が得られます
- この修正された分布からトークンがサンプリングされます
Tが0に近づくと、これは貪欲サンプリングと同等になります-常に最も確率の高いトークンを選択します。Tが増加すると、確率分布はより均一になり、よりランダムで多様な出力が生まれます。温度1の場合、元の分布は変わりません。
実際には、低い温度(例:0.7)では、焦点を絞った一貫したテキストが生成される傾向がありますが、高い温度(例:1.2)では、より創造的で予測不可能な出力が生まれることがあります。適切な温度を見つけるには、タスクやアプリケーションに応じて実験が必要です。
トップkサンプリングはどのように機能しますか?
温度サンプリングが確率分布全体を変更するのに対して、トップkサンプリングはサンプリングをk個の最も確率の高いトークンに制限します。手順は次の通りです:
- 語彙の確率分布を取得します
- 確率を降順でソートします
- トップkのトークンとその確率のみを保持します
- これらk個のトークンの確率を再正規化し、合計が1になるようにします
- この切り詰められた再正規化された分布からサンプリングします
トップkは、モデルが非常にありえないトークンを選択するのを防ぐのに役立ちます。ただし、最適なkの値は文脈によって異なる場合があります。固定されたk値は、一部の場合では制約が強すぎ、他の場合では制約が弱すぎる可能性があります。
例えば、k=10の場合、モデルは各単語の生成時に考慮するのは最も確率の高い10個のトークンのみです。これにより一貫性が保たれる利点がありますが、設定が低すぎる場合はモデルの創造性が制限される可能性もあります。
トップp(ナクレウス)サンプリングはどのように機能しますか?
トップpサンプリング、またはナクレウスサンプリングは、トップkの制約を持つトップkサンプリングの制限に対処します。固定されたkではなく、確率の閾値pを使用します。このプロセスは次のように機能します:
- 確率でトークンを降順でソートします
- 累積確率がpを超えるまで、トークンをサンプリングプールに追加します
- 選択されたトークンの確率を再正規化します
- この切り詰められた再正規化された分布からサンプリングします
トップpは、トップkよりも柔軟性があります。確率分布の形状に合わせて適応し、一度のサンプリングで考慮するトークンの数を選択します。典型的なpの値は、累積確率が90%を超える最小のトークンセットからサンプリングすることを意味する0.9です。
この方法により、モデルは予測の自信度に基づいて可変数のトークン数を考慮することができます。モデルが非常に確信度の高い場合、いくつかの高確率トークンのみを考慮するかもしれません。より不確実なシナリオでは、より多くのトークンを考慮するかもしれません。
最小pサンプリングはどのように機能しますか?
最小pサンプリングは、トップpサンプリングに最小確率のしきい値を設定するトップpのバリエーションです。手順は次の通りです:
- 確率でトークンを降順でソートします
- 確率がmin_p以上のすべてのトークンを含めます>
- 含まれるトークンの累積確率がp未満の場合、pに到達するまでトークンを追加します
- トップpと同様に再正規化し、サンプリングします
この方法は、非常に低い確率のトークンを常に除外することを保証しながら、トップpサンプリングの適応性を維持する点で特に有用です。非常に低い確率のトークンは、生成されたテキストにノイズや関連性を導入する可能性があるため、これは特に役立ちます。
トップaサンプリングはどのように機能しますか?
トップaサンプリングは、トップpの適応性とトップkの簡易性のバランスを目指したものです。以下のように機能します:
- 最も確率の高いトークンの確率を見つけ、それをp_maxと呼びます
- a * p_maxとなるしきい値tを設定します(aは0から1のパラメータです)
- 確率がt以上のすべてのトークンを含めます
- 再正規化し、このセットからサンプリングします
トップaは、トップpと同様に分布のピークに適応する点で適応的でありながら、トップkのような単一のチューニングしやすいパラメータを持つメリットがあります。aの典型的な値は、0.2から0.5です。
この方法は、最も確率の高いトークンに焦点を当てつつ、出力に多様性を維持する場合に特に効果的です。特に確率分布が高確率トークンの明確な「ピーク」を持つ場合に有用です。
テールフリーサンプリングはどのように機能しますか?
テールフリーサンプリング(TFS)は、他の方法よりも効果的に低確率のトークンのロングテールを除去することを目指しています。このアルゴリズムは次のように機能します:
- 確率でトークンを降順でソートします
- CDF(累積分布関数)を計算します
- CDFが完全なべき乗則から最も逸脱する地点を見つけます
- この地点でテールをカットします
- 残ったトークンからサンプリングします
TFSは、どこでテールをカットすべきかを原則に基づいて特定し、一部のケースではより高品質な出力を生み出すことができます。特に確率分布に非常に低確率のトークンのロングテールがある場合に効果的です。これは、生成されたテキストにノイズや関連しない要素を導入する可能性があるためです。
典型的なサンプリングはどのように機能しますか?
典型的なサンプリングは、人間が書いたテキストと同じエントロピーの出力を生成することを目指します。次の手順で機能します:
- 完全な確率分布のエントロピーを計算します
- このエントロピーのわずか下の目標エントロピーを設定します(例:完全なエントロピーの90%)
- 確率が最も高い順にトークンを1つずつ含め、含まれるセットのエントロピーが目標に達するまで続けます
- 再正規化し、このセットからサンプリングします
この方法は、自然言語の「典型的な」ランダム性を捉えることを目指しており、より自然なテキストを生成する可能性があります。これは、人間によって生成されたテキストが一定の予測可能性(または予測不可能性)を持つ傾向があるという観察に基づいています。典型的なレベルに合わせることで、モデルはより自然なテキストを生成することができます。
ダイナミック温度はどのように機能しますか?
ダイナミック温度は、サンプルごとにモデルの確信度に応じて温度パラメータを動的に調整する手法です。考え方は、確率分布の平坦性を測定するための測定値を使用して、測定値を温度値にマッピングし、通常0.5から1.5の範囲で温度サンプリングを適用することです。
- 確率分布の平坦性を測定するいくつかの指標を計算します(エントロピーなど)
- この測定値を温度値にマッピングします
- このダイナミック温度で温度サンプリングを適用します
このアプローチは、モデルの各ステップで確信度が異なる場合に、自動的に一貫性と多様性のバランスを取ることを目指しています。特にテキストの長い生成において有用であり、モデルの確信度が生成プロセス全体で変動する場合があります。
これらのサンプリング方法は実践でどのように比較されますか?
各サンプリング方法にはそれぞれ利点と欠点があり、その効果は特定のタスクや文脈によって異なることがあります。以下に、これらの方法が通常どのように機能するかの比較を示します:
温度サンプリング:シンプルで広く使用されていますが、一貫性と多様性のバランスを見つけるのが難しい場合があります。
トップkサンプリング:簡単に実装および調整できますが、一部の文脈では制限が強すぎ、他の文脈では制限が弱すぎる場合があります。
トップpサンプリング:トップkよりも適応性がありますが、計算コストがかかる場合があり、より注意深い調整が必要になる場合があります。
最小pサンプリング:トップpの利点と最小しきい値を組み合わせますが、別のパラメータが追加されます。
トップaサンプリング:トップpの適応性とトップkの簡易性をバランスさせることができますが、既存のライブラリではまだ広く実装されていないかもしれません。
テールフリーサンプリング:テールのカットオフをより原理的に特定することができますが、計算量が増える場合があります。
典型的なサンプリング:人間の言語と同様のエントロピーを目指しますが、常に特定のタスクの要件と一致しない場合があります。
ダイナミック温度:モデルの確信度に応じて全体的なランダム性を調整しますが、各ステップで追加の計算が必要です。
これらのサンプリング方法は、異なるタイプのタスクにどのように影響しますか?
サンプリング方法の選択は、LLMの異なるタイプのタスクに対する性能に大きな影響を与える場合があります。以下は、これらの方法がさまざまなアプリケーションにどのような影響を与えるかの例です:
オープンエンドのテキスト生成:ストーリー作成やアイデア出しのようなタスクでは、より多様性を許す方法(高い温度サンプリングや高いp値のトップp)がより良い結果をもたらすことがしばしばあります。これにより、創造性と新しいアイデアが促されます。
事実に基づく質問応答:正確な情報が必要なタスクでは、通常はより保守的なサンプリング方法が選択されます。これには、低い温度設定、トップkサンプリングの小さいk値、トップpサンプリングの低いp値などが含まれます。
コード生成:コードを生成する場合は、創造性と正確さのバランスがしばしば必要です。トップpやトップaなどの方法を使用して、柔軟性を一部確保しつつも、可能なトークンに焦点を当てることができます。
対話システム:チャットボットや会話型AIは、トップpやダイナミック温度などの適応的な方法を使用することで一貫性を保ちながら応答の変動性を許容することがあります。
テキスト要約:要約タスクでは、しばしば決定論的な方法が好まれ、重要な情報がキャプチャされるようにします。これには、低い温度設定やより制約のあるトップk、トップpパラメータが含まれることがあります。
言語翻訳:翻訳タスクでは、正確さと自然な言語のバランスが求められます。トップpや典型的なサンプリングなど、適度な設定がうまく機能することがあります。
サンプリング方法を組み合わせてより良い結果を得るにはどうすればよいですか?
実際には、これらのサンプリング方法はしばしば組み合わせて、各々の利点を活用します。一般的な組み合わせには、次のようなものがあります:
温度 + トップp:まずトップpサンプリングを適用してトークンプールをフィルタリングした後、残ったトークンに対して温度サンプリングを使用します。これにより、アダプティブなフィルタリングが可能になり、全体的なランダム性を制御することができます。
トップk + トップp:両方の方法を順番に使用し、まず固定された数の候補を取得してから、トップpを適用して選択を更に絞り込むことができます。これにより、シンプルさと適応性のバランスが取れます。
最小p + トップp:これらの方法を組み合わせることで、最小確率のしきい値を保証しながらも、適応的なサンプリングを行うことができます。
ダイナミック温度 + トップp:ダイナミック温度を使用してモデルの確信度に基づいて全体的なランダム性を調整し、その後トップpサンプリングを適用して最も関連性の高いトークンに焦点を当てることができます。
これらの組み合わせにより、サンプリングプロセスをより詳細に制御することができ、特定のタスクや要件に対してより良い調整が可能になります。
異なるアプリケーションに対してサンプリングパラメータはどのように選択されるべきですか?
適切なサンプリングパラメータを選択するには、特定のアプリケーションと望ましい出力の特性に基づいて実験と微調整が必要です。以下に一般的なガイドラインを示します:
事実に基づいたまたはタスク指向の生成には、低い温度(例:0.3-0.7)またはより制約のあるサンプリング(低いkまたはp値のトップk、トップp)を使用して、正確さと一貫性を優先します。
創造的な執筆やアイデア出しなどの場合、より高い温度(例:0.8-1.2)やより制約の少ないサンプリングを使用して多様性と新規性を促進します。
出力があまりにも繰り返されている場合は、温度を上げるか、制約の少ないサンプリングパラメータを使用してみてください。
出力があまりにもランダムまたは不連続である場合は、温度を下げるか、制約のあるサンプリングパラメータを使用してみてください。
対話システムの場合は、トップpやダイナミック温度などのアダプティブな方法を使用して、一貫性と変動性のバランスを取ることを検討してください。
コード生成の場合は、構文の正確さを保ちつつも一定の柔軟性を許容するような適度な設定を使用してください。
要約タスクの場合は、キー情報を捕捉するためにより決定論的な設定に傾けるようにしてください。
最適な設定は、タスクだけでなく、使用される特定のモデルや入力データの特性によっても異なる場合があります。定期的な評価とこれらのパラメータの調整が、最適なパフォーマンスを維持するためにしばしば必要です。
結論
サンプリング方法は、大規模言語モデルの力を活用する上で重要な役割を果たしています。生成テキストの一貫性と創造性、決定論とランダム性のトレードオフを制御するために必要なものです。温度、トップk、およびトップpサンプリングが最も広く使用されている方法である一方、最小p、トップa、テールフリーサンプリング、典型的なサンプリング、ダイナミック温度などの新しい技術は、LLMの出力を微調整するための追加のツールを提供しています。
言語モデルが進化し続けるにつれて、サンプリング方法もさらに洗練されることが予想されます。将来の開発では、現在の確率分布だけでなく、広範な文脈、タスク要件、またはユーザーの好みに基づいて適応する方法が開発される可能性があります。これらのサンプリング手法を理解することは、チャットボットやコンテンツ生成からコード補完など、さまざまなアプリケーションでLLMを効果的に活用するための鍵です。
これらのサンプリング方法を習得し、その影響を理解することで、開発者や研究者は多様なアプリケーションで効果的で一貫性があり、文脈に適したAI生成テキストのフルポテンシャルを引き出すことができます。