プロンプトラボでパラメータを設定し、プロンプトに応答してモデルがどのように出力を生成するかを制御することができます。 デコード・パラメーターを設定して、出力テキストの生成方法を調整する。 停止基準パラメータを設定し、モデルが出力生成を停止するタイミングを指定する。
デコード
デコードとは、モデルが生成された出力のトークンを選択するために使用するプロセスのことです。
以下のデコード・オプションのいずれかを選択する:
貪欲な復号: 復号プロセスの各ステップで最も高い確率でトークンを選択する。
貪欲なデコーディングは、モデルの事前学習データとプロンプトテキストで最も一般的な言語に近い出力を生成します。 貪欲なデコードの弱点は、生成された出力に繰り返しループが発生する可能性があることだ。
貪欲なデコーディングは、連続するプロンプトで常に同じ出力を生成するとは限らない。 複数のプロンプトで一貫した出力を得るには、サンプリングデコーディングを使用し、各プロンプトのランダムシードパラメータに同じ数値を指定する。
サンプリングデコーディング:トークンがどのように選択されるかについて、より多様性を提供します。
サンプリング・デコードでは、モデルはサンプルトークン、つまりトークンのサブセットを選択し、このサブセットからランダムに1つのトークンを選んで出力テキストに追加する。 サンプリングはデコード・プロセスに可変性とランダム性を加えるが、これはクリエイティブなユースケースでは望ましい。 しかし、ばらつきが大きくなれば、誤った、あるいは無意味な出力がなされるリスクも大きくなる。
サンプリング・デコードのオプションが増えた
サンプリングデコーディングを選択すると、より多くのパラメータが使用可能になり、foundation modelがトークンをサンプリングするためにどのように選択するかを調整することができます。 以下のパラメータは、どのトークンがサンプリングされるかに影響する:
- 温度サンプリングは、サンプリングされるトークンの確率分布を平坦化またはシャープにします。
- トップkサンプリングは、指定されたトークン数に達するまで、最も高い確率でトークンをサンプリングします。
- Top-pサンプリングは、スコアの合計が指定されたしきい値に達するまで、最も高い確率のスコアを持つトークンをサンプリングします。 (トップpサンプリングは核サンプリングとも呼ばれる)
パラメーター | サポートされる値 | デフォルト | 使用 |
---|---|---|---|
温度 | 0.0(貪欲なデコードと同じ)~2.0(最大の創造性)の範囲の浮動小数点数 | 0.7 | 値が大きいほど変動が大きい |
上位 K | 1から100までの整数 | 50 | 値が大きいほど変動が大きい |
トップ | 0.0から1.0の範囲の浮動小数点数 | 1.0 | 値を変更しない限り、この設定は使用されない |
Temperature、Top K、Top Pの設定は、貪欲なデコードを使用する場合は適用されません。
サンプリングデコードの設定例
この例では、foundation modelモデルはすでに出力テキスト'I took my dog
を生成しており、今モデルは次のトークンを選択している。
最良の選択を見つけるために、モデルは可能なトークンに対する離散確率分布を計算する。 このタイプの分布では、各トークンには0から1の間の小数点以下の確率スコアが割り当てられ、スコアの合計は1になる。
実際のシナリオでは、何百ものトークンが存在する可能性がある。 この例では、選択肢は5つのトークンのみを含み、典型的な文の文脈で示されている:
私は犬を連れて行った...
- 散歩のために。
- 獣医のところへ。
- 私と一緒に。
- そして休暇中の愛猫。
- 襟元で。
トップKとトップPは、サンプリングするトークンを選択する2つの異なる方法を表している。
どちらの方法も、選択肢を可能性の高いものから低いものへと順番に並べることから始める。 以下の表は、トークンとその架空の確率スコアを順番に並べたものである。
トークン | 確率スコア |
---|---|
の場合 | 0.4 |
へ | 0.25 |
への | 0.17 |
および | 0.13 |
作成者 | 0.05 |
トップKの例
トップKは、サンプリングするトークンの数を指定する。 例えば、Top Kを3に設定すると、リストの最初の3つのトークンのみがサンプリングされる:for、to、withです。
トップPの例
Top P は、トークンが到達しなければならない累積確率スコアのしきい値を指定する。
例えば、トップPを0.6に設定した場合、最初の2つのトークン、にとってとへのだけがサンプリングされます。なぜなら、それらの確率(0.4と0.25)の合計は0.65になるからです。 (この例のように、合計がしきい値を超えても構わない)
トップPは、トップPパラメータの値をデフォルトの1以外に設定しない限り、使用されない。 トップPとトップKを併用することで、確率の低いトークンを除外することができる。 両方のパラメーターが指定された場合、トップKが最初に適用される。
例えば、Top Kを5に、Top Pを0.8に設定する。 Top K設定は5つのトークンをすべてサンプリングし、次にTop Pはサンプリングされたトークンをfor、to、withに制限する。なぜなら、それらの確率が0.8 (0.4 + 0.25 + 0.17 = 0.82) である。
両方の設定が指定された場合、Top Kで設定されたカットオフ値以下のトークンは、Top Pが計算されるときに確率がゼロであるとみなされる。 例えば、Top Kが2、Top Pが0.8に設定されている場合、forとtoだけがサンプリングされる。 と、そして、によっての確率スコアは0にリセットされているので、トークンとはサンプリングされない。
温度例
温度設定は、トークンのサンプリング時に使用される確率分布の形状に影響する。
低温はトークン間の確率差を増幅させる。 可能性の高い用語は、可能性の低い用語に比べてスコアが高い。 その結果、モデルのトレーニングデータや入力に含まれる用語と類似した用語がサンプリングされることになる。 より安定した出力を得たい場合は、低い温度値を使用する。
気温が高いと、メダルの確率は互いに近くなる。 その結果、珍しい用語はサンプリングされる確率が高くなる。 クリエイティブな出力が必要な場合など、ランダム性や可変性を高めたい場合は、より高い温度値を使用する。 ランダム性は、不正確な出力や無意味な出力にもつながることを忘れないでほしい。
例えば、2のような高い温度値が適用された場合、表3に示すように、この例のトークンの確率スコアは互いに近づくかもしれない。
トークン | 温度 = 2 |
---|---|
の場合 | 0.3 |
へ | 0.25 |
への | 0.2 |
および | 0.15 |
作成者 | 0.10 |
Top Pが0.8に設定されている場合、温度は次のようにサンプル・トークンに影響する:
- 高温の場合、上位4つのトークン(for、to、with、and)がサンプリングされるのは、そのスコア(0.3 + 0.25 + 0.2 + 0.15 = 90)の合計が90なので、サンプリングされる。
- 温度が低いと、上位3つのトークン(for、to、with)のスコア(0.4 + 0.25 + 0.17 = 82)が合計82になるため、上位3つのトークンのみがサンプリングされる。
高い温度値が使われると、トップPによって設定された閾値に到達するために、より多くのトークンが必要となる。サンプリングされる余分なトークンは最低のスコアを持ち、これはそのトークンがより珍しい選択であることを意味する。
ランダム・シード
サンプリングデコーディングで同じプロンプトをモデルに複数回送信すると、モデルは通常、毎回異なるテキストを生成する。 このばらつきは、デコーディング・プロセスに組み込まれた意図的な擬似ランダム性の結果である。
乱数シードは、モデルがトークンの選択を無作為化するために使用する乱数ジェネレータを開始するために使用される番号を指します。 実験からこの意図的なランダム性を変数として取り除きたい場合は、数字を選び、実験を実行するたびに同じ数字を指定すればよい。
- サポートされる値: 1から4,294,967,295の範囲の整数
- デフォルト: ランダムに生成される
- 用途: 繰り返し結果を出すには、毎回同じランダムシード値を設定します。
反復ペナルティ
選択したプロンプト、モデル、パラメータに対して生成された出力に一貫して繰り返しのテキストが含まれる場合は、繰り返しペナルティを追加してみてください。 ペナルティを設定すると、最近使用されたトークンの確率スコアが下がり、モデルがそれらを繰り返す可能性が低くなる。 値が高いほど、より多様で変化に富んだアウトプットにつながる。
- サポートされる値:1.0(ペナルティなし)~2.0(最大ペナルティ)の範囲の浮動小数点数
- デフォルト値:1.0
- 用途:ペナルティが高いほど、結果に繰り返しテキストが含まれる可能性は低くなる。
停止基準
テキスト生成は、モデルが出力を完了したとみなすか、停止シーケンスが生成されるか、最大トークン制限に達するか、モデル生成時間制限に達すると停止する。
モデルの生成は、生成要求の制限時間に達すると停止する。 デフォルトの制限時間は10分、ライトプランは5分です。 APIを使って推論リクエストを送信する際に、より短い制限時間を指定することができる。
モデルによって生成される出力の長さには、次のような影響を与えることができます:停止シーケンスの指定、MinトークンおよびMaxトークンの設定。
シーケンスの停止
ストップシーケンスは、1文字以上の文字列である。 停止シーケンスを指定した場合、指定した停止シーケンスが生成された出力に現れると、モデルは自動的に出力の生成を停止する。
例えば、1つの文の後にモデルの出力を停止させる1つの方法は、停止シーケンスとしてピリオドを指定することである。 そうすれば、モデルが最初の文章を生成し、ピリオドで終わらせた後、出力生成は停止する。
効果的な停止シーケンスの選択は、使用するケースと、期待する生成出力の性質に依存する。
サポートされる値:0~6文字列(各文字列の長さは40トークン以下
デフォルト値:ストップシーケンスなし
使用する:ストップシーケンスを使用する際のヒントをご覧ください:
- 停止シーケンスは、Min tokensパラメータで指定されたトークン数が生成されるまで無視される。 トークン・パラメータの最小値を設定する際には、この関係に留意してください。
- プロンプトに入力と出力のペアの例が含まれている場合は、サンプル出力の停止シーケンスのいずれかを例に含めるようにしてください。
新規トークンの最小値と最大値
モデルからの出力が短すぎたり長すぎたりする場合は、生成されるトークンの数を制御するパラメータを調整してみてください:
Min tokens パラメータは、生成される出力の最小トークン数を制御する
Max tokens パラメータは、生成される出力のトークンの最大数を制御する
サポートされる値:出力で許可されるトークンの最大数はモデルによって異なる。 詳しくは、 サポートされる基盤モデルの 最大トークン数 の情報を参照してください。
既定:
- 最小トークン数:0
- 最大トークン数:200
使用:
- 最小メダルは最大メダル以下でなければならない。
- IBM watsonx.aiにおける基盤モデルの使用コストは、使用量に基づいており、生成されるトークンの数に一部関連している。 ユースケースに適したMaxトークンの最低値を指定することは、コスト削減の戦略である。
詳細情報
親トピック プロンプト・ラボ