

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用推論參數影響回應生成
<a name="inference-parameters"></a>

執行模型推論時，您可以調整推論參數來影響模型回應。推論參數可以變更模型在生成期間考慮的可能輸出集區，也可以限制最終回應。

推論參數預設值和範圍取決於模型。若要了解不同模型的推論參數，請參閱 [基礎模型的推論請求參數和回應欄位](model-parameters.md)。

以下的參數類別通常可在不同的模型中找到。

**Topics**
+ [隨機性和多樣性](#inference-randomness)
+ [Length](#inference-length)

## 隨機性和多樣性
<a name="inference-randomness"></a>

對於任何指定的序列，模型可決定序列中下一個字符選項的機率分佈。為了在輸出中產生每個字符，模型會從此分佈中進行取樣。隨機性和多樣性是指模型回應中的變體數量。您可以透過限制或調整分佈來控制這些係數。基礎模型通常支援以下參數來控制回應中的隨機性和多樣性。
+ **溫度** — 影響預測輸出的機率分佈形狀，並影響模型選擇較低機率輸出的可能性。
  + 選擇較低的值來影響模型，以選擇較高機率的輸出。
  + 選擇較高的值來影響模型，以選取較低機率的輸出。

  用技術性名詞來說，溫度會調節下一個字符的機率質量函數。較低的溫度會使函數變得陡峭，並導致更具確定性的回應，而較高的溫度會使函數變得平坦，並導致更隨機的回應。
+ **Top K** - 模型考慮下一個字符時，最有可能的候選項數量。
  + 選擇較低的值以縮減集區的大小，並將選項限制為更可能的輸出。
  + 選擇較高的值以增加集區的大小，並允許模型考慮較不可能的輸出。

  例如，若為 Top K 選擇值 50，則模型會從 50 個最有可能成為序列中下一個的字符中做選擇。
+ **Top P** - 模型考慮下一個字符時，最可能的候選項目百分比。
  + 選擇較低的值以縮減集區的大小，並將選項限制為更可能的輸出。
  + 選擇較高的值以增加集區的大小，並允許模型考慮較不可能的輸出。

  用技術性名詞來說，該模型會運算回應集的累積機率分佈，並僅考慮分佈的前 P%。

  例如，若您為 Top P 選擇值 0.8，則模型會從可能是序列中下一個字符的機率分佈的前 80% 中做選擇。

下表摘要說明這些參數的功用。


****  

| 參數 | 較低值的影響 | 較高值的影響 | 
| --- | --- | --- | 
| 溫度 | 增加高機率字符的可能性 減少低機率字符的可能性 | 增加低機率字符的可能性減少高機率字符的可能性 | 
| Top K | 移除低機率的字符 | 允許低機率的字符 | 
| Top P | 移除低機率的字符 | 允許低機率的字符 | 

做為用於了解這些參數的範例，請考慮範例提示 **I hear the hoof beats of "**。假設模型確定以下三個單字當做下一個字符的候選項。該模型也會為每個單字指派機率。

```
{
    "horses": 0.7,
    "zebras": 0.2,
    "unicorns": 0.1
}
```
+ 如果設定較高的**溫度**，則機率分佈較平坦，機率差異會減小，這會增加選擇「獨角獸」的機率，並降低選擇「馬」的機率。
+ 如果將 **Top K** 設為 2，則模型僅考慮前 2 名最有可能的候選項：「馬」和「斑馬」。
+ 如果將 **Top P** 設定為 0.7，則模型只會考慮「馬」，因為它是唯一位於機率分佈前 70% 的候選項。如果您將 **Top P** 設定為 0.9，則模型會將「馬」和「斑馬」視為機率分佈的前 90%。

## Length
<a name="inference-length"></a>

基礎模型通常會支援限制回應長度的參數。下方提供這些參數的範例。
+ **回應長度** – 用於指定在產生的回應中傳回的最小或最大字符數目的精確值。
+ **懲罰** – 指定在回應中對輸出進行懲罰的程度。範例如下。
  + 回應的長度。
  + 回應中的重複字符。
  + 回應中字符的頻率。
  + 回應中字符的類型。
+ **停止序列** — 指定模型停止產生其他字符的字元序列。如果模型產生您指定的停止序列，它會在該序列之後停止產生。