この記事では、大規模言語モデル(LLM)の設定の概要を説明し、大きなコンテキストウィンドウの利点と欠点について詳しく解説します。また、これらの設定を調整することで、さまざまなタスクにおけるLLMの出力がどのように変化するかを示す実践的な例も紹介します。
はじめに
大規模言語モデルは、学習データ、プロンプト、設定に基づいて最も確率の高い次のトークンや単語を決定するために、確率に依存しています。これまでの議論では、プロンプトテクニックによってLLMに人間のような推論を組み込む方法や、検索拡張生成(RAG)などのテクニックによって外部知識ソースへのアクセスを許可し、その能力を向上させる方法が強調されてきました。
しかし、提供されたコンテキストやプロンプトに関係なく、LLMの設定やパラメータを微調整することで、最終的な出力に大きな影響を与えることができます。これらの設定を習得することは、大規模言語モデルを効果的に活用し、望ましい動作に導くために不可欠です。この記事では、temperature、top P、max tokens、コンテキストウィンドウなどの基本的なLLMパラメータを探求し、それらがモデルの出力にどのように影響するかを明らかにします。
LLMのTemperatureとは?
簡単に言えば、temperatureは0から1の範囲のパラメータで、大規模言語モデル(LLM)が生成する応答のランダム性のレベルを決定します。temperatureが高いほど、多様で創造的な出力が得られ、低いほど、保守的で予測可能な応答になります。
temperatureを0に設定すると、同じプロンプトに対してLLMは常に同じ出力を生成します。temperatureを上げるとモデルの創造性が高まり、より幅広い出力が得られます。ただし、temperatureが高すぎると、一貫性や意味を欠いた出力になる可能性があります。
デフォルトのtemperature設定はLLMによって異なり、モデルの種類やAPI経由かウェブインターフェースかなどの要因によって変わります。例えば、ChatGPT-3.5や4に関する議論では、デフォルトのtemperature設定は0.7から0.8程度であることがよく言及されますが、正確な値は公開されていないことが多いです。
Temperatureの設定
temperatureパラメータは通常0から1の間の数値ですが、この範囲を超えることもあり、モデルの単語選択におけるリスクテイクの度合いや保守性に影響を与えます。これは、次の単語の確率分布を調整します。
以下は、大規模言語モデルにおけるさまざまなtemperatureパラメータの内訳です。

低いTemperature(<1.0) — 1未満の値に設定すると、モデルの出力はより決定論的で反復的になりがちです。低いtemperatureは、最も可能性の高い次の単語の選択を優先し、出力のばらつきを減らします。これは、予測可能で保守的な応答を得るのに有利ですが、創造性や多様性に欠けるテキストを生成し、モデルにロボット的な印象を与える可能性があります。
高いTemperature(>1.0) — temperatureを1以上に設定すると、生成テキストのランダム性が高まります。モデルは、シーケンス内の次の単語として確率の低い単語を選択する傾向が強くなり、その結果、より多様で、時には創造的な出力が得られます。しかし、このランダム性の高まりは、モデルが学習データの確率分布にあまり縛られないため、誤りや無意味な応答を引き起こす可能性があります。
Temperature = 1.0 — これは多くの場合デフォルト設定であり、ランダム性と決定論のバランスを取ることを目的としています。モデルは、学習中に学習した確率分布に基づいて、過度に予測可能でもランダムでもないテキストを生成します。
LLMのTemperatureモデリングのユースケース
モデリングにおけるtemperatureパラメータの微調整は、ランダム性と決定論の適切なバランスを見つけることであり、生成テキストの品質がユーザーエクスペリエンスや意思決定プロセスに大きな影響を与えるアプリケーションにおいて重要な側面です。
実際のシナリオでは、temperature設定の選択は望ましい結果に依存します。創造性や多様な応答を必要とするタスクには高いtemperatureが有効ですが、正確性や事実の正しさが求められるタスクには低いtemperatureが適しています。
以下は、LLMモデルにおける一般的なユースケースと推奨されるtemperature設定です。
クリエイティブライティング — 高いtemperatureを使用することで創造性を刺激し、さまざまな出力を得られるため、ライターズブロックの克服や革新的なコンテンツアイデアの生成に役立ちます。
テクニカルドキュメント — 技術文書では正確性と一貫性が重要であるため、コンテンツの精度と信頼性を確保するために低いtemperatureが好まれます。
カスタマーインタラクション — チャットボットやバーチャルアシスタントでの応答を調整することで、組織のブランドやトーンに合わせ、対象ユーザーの好みにも適合させることができます。
Top Pとは?
Top P(別名:nucleus sampling)は、LLM出力のランダム性に影響を与えるもう一つのパラメータです。このパラメータは、LLMが出力を生成するために使用する候補セットにトークンを含めるための閾値確率を決定します。このパラメータの値を低くすると、LLMはより正確で事実に基づいた応答を生成し、値を高くすると出力のランダム性と多様性が増します。
例えば、top Pパラメータを0.1に設定すると、LLMは決定論的で焦点を絞った出力を生成します。一方、top Pを0.8に増やすと、制約が緩和され、より創造的な応答が可能になります。
Max Tokensとは?
temperatureとtop PはLLM応答のランダム性を調整しますが、モデルが受け入れる入力や生成する出力のサイズに制約を設けるわけではありません。これに対して、コンテキストウィンドウとmax tokensという二つのパラメータは、LLMのパフォーマンスとデータ処理能力に直接影響を与えます。
コンテキストウィンドウは、トークン(単語全体、サブワード、文字など)で測定され、LLMが一度に処理できる単語数を決定します。一方、max tokensパラメータは、LLMにプロンプトとして提供される入力と、そのプロンプトに応答してLLMが生成する出力トークンの両方を含む、トークンの総数の上限を設定します。

コンテキストウィンドウを理解する
一般に、大規模言語モデル(LLM)におけるコンテキストウィンドウのサイズは、モデルが出力を生成する際に保持して利用できる情報量を決定します。コンテキストウィンドウが大きいほど、LLMはより多くのコンテキストを記憶でき、より一貫性のある正確な応答を生成できます。しかし、入力がコンテキストウィンドウを超えると、モデルは初期の情報を「忘れ」始め、関連性が低く質の低い出力になる可能性があります。
さらに、コンテキストウィンドウのサイズは、プロンプトエンジニアリング技術に制約を課します。Tree-of-Thoughtsや検索拡張生成(RAG)などの手法は、高品質な応答を生成するためにモデルに十分な情報を提供する必要があるため、効果を発揮するには大きなコンテキストウィンドウが必要です。
LLMが進化するにつれて、コンテキストウィンドウも拡大し、一度により多くのトークンを処理できるようになっています。例えば、GPT-4のコンテキスト制限は8,192トークンですが、GPT-4 Turboなどの新しいモデルは最大128Kトークンのコンテキストウィンドウをサポートしています。同様に、AnthropicはClaudeツールのコンテキスト制限を9,000トークンからClaude 2.1バージョンでは200Kトークンに増やしました。
大きなコンテキストウィンドウが常に良い出力をもたらすとは限らない?
大きなコンテキストウィンドウによりLLMは長い入力を処理でき、より関連性の高い応答が得られる可能性がありますが、コンテキスト制限を拡大することが常に有利とは限りません。いくつかの欠点があります。
まず、入力データセットが大きいと、LLMが応答を生成するのにより多くの時間が必要になります。大きなコンテキストウィンドウを処理するための計算複雑性の増加が、この問題をさらに悪化させます。
第二に、大きなコンテキストウィンドウに関連する計算コストは比例して増大します。
さらに、Liu et al.(2023)の研究は別の課題を浮き彫りにしています。大規模言語モデルは、長い入力コンテキスト内の情報に効果的にアクセスするのに苦労することが多いのです。彼らの研究では、LLMは関連情報が入力の最初または最後にある場合に最適なパフォーマンスを達成することが明らかになりました。逆に、長いコンテキストの中間にある情報を利用すると、モデルのパフォーマンスが低下します。
その他のLLM設定
他にも、停止シーケンス、頻度ペナルティ、存在ペナルティなど、言語モデルの出力に影響を与える設定があります。
停止シーケンス
停止シーケンスは、モデルがいつ出力生成を停止すべきかを指示し、コンテンツの長さや構造を制御できるようにします。例えば、AIにメールを作成するようプロンプトを出す際に、「Best regards,」や「Sincerely,」を停止シーケンスとして設定すると、モデルは結びの挨拶の前で停止し、簡潔で焦点を絞ったメールになります。停止シーケンスは、メール、番号付きリスト、対話など、構造化された形式の出力を生成する際に役立ちます。
頻度ペナルティ
頻度ペナルティは、テキスト内での出現頻度に基づいてトークンにペナルティを課すことで、生成テキストの繰り返しを抑制する設定です。テキスト内でより頻繁に出現するトークンは、AIによって再び使用される可能性が低くなります。
存在ペナルティ
存在ペナルティは頻度ペナルティと同様に機能しますが、比例的にペナルティを課すのではなく、トークンがテキスト内に出現したかどうかに基づいて一律のペナルティを適用します。

出典: novita.ai
キャラクターのインポート(オプション)
一部のLLMには特別な設定があります。例えば、キャラクターのインポートです。キャラクターカードをインポートすることで、お気に入りのキャラクターと誰でもチャットできます。

novita.ai LLMの「キャラクターのインポート」機能
LLM設定の調整方法
先に示したように、temperature、top P、max tokensなどのパラメータを調整することで、LLMを微調整し、より関連性が高く正確な結果を生成させることができます。temperatureやtop Pを0.1や0.2などの低い値に下げるとランダム性が減り、コード生成やデータ分析スクリプト作成などのタスクに適した焦点を絞った回答が得られます。逆に、temperatureやtop Pパラメータを0.7や0.8程度に上げると、より創造的で多様な出力が促進され、クリエイティブライティングやストーリーテリングに最適です。一般的には、temperatureまたはtop Pパラメータのいずれかを変更することが推奨され、両方を同時に変更することは推奨されません。
一方、max tokensパラメータを変更することで、LLM出力の長さをカスタマイズできます。この柔軟性は、チャットボット向けの短い応答や記事向けの長いコンテンツなど、LLMの出力を調整する際に役立ちます。また、ソフトウェア開発のためのコード生成や、長い文書の要約など、max tokensパラメータの調整が有効なシナリオもあります。
結論
まとめると、言語モデルを利用する際には、temperature、top P、最大長などの設定に習熟することが重要です。これらのパラメータにより、モデルの出力を精密に管理し、特定のタスクやアプリケーションに合わせて調整することができます。これらは、応答のランダム性、長さ、繰り返しの頻度などの要素を制御し、すべてがAIとの対話を強化することに貢献します。
novita.aiは、無限の創造性を実現するワンストッププラットフォームで、100以上のAPIにアクセスできます。画像生成、言語処理、音声強調、動画操作など、手頃な従量課金制で、自社製品を構築しながらGPUメンテナンスの手間から解放されます。無料でお試しください。
おすすめの記事
