

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

# 推論容器功能
<a name="nova-sagemaker-inference-container-features"></a>

Amazon Nova SageMaker 推論容器包含一組功能，可讓您在推論期間自訂模型行為。每個功能都會引入特定容器版本，可能需要環境變數、請求參數或兩者才能啟用。

此頁面列出推論容器中可用的功能，說明如何啟用每個功能，並識別引入功能的容器版本。使用此參考來判斷您的部署可使用哪些功能，以及如何設定這些功能。

當您建立 SageMaker 模型或端點組態時，系統會設定透過環境變數啟用的功能。將它們包含在 [CreateModel](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateModel.html) API 呼叫的 `Environment` 參數中。透過請求參數啟用的功能是在請求內文中的每次調用設定。

**注意**  
一律使用最新的容器映像來存取所有可用的功能。`SM-Inference-latest` 標籤目前指向 `v1.4`。

## 功能摘要
<a name="nova-sagemaker-inference-container-features-summary"></a>

下表提供 Amazon Nova SageMaker 推論容器中支援的所有功能的快速參考。


**推論容器功能摘要**  

| 功能 | 如何啟用 | 預設 | 支援的模型 | 引入於 | 
| --- | --- | --- | --- | --- | 
| [預設溫度](#nova-sagemaker-inference-container-feature-default-temperature) | 環境變數 | 1.0 | 所有 Amazon Nova 模型 | v1.0 | 
| [預設 top-p](#nova-sagemaker-inference-container-feature-default-top-p) | 環境變數 | 1.0 | 所有 Amazon Nova 模型 | v1.0 | 
| [預設 top-k](#nova-sagemaker-inference-container-feature-default-top-k) | 環境變數 | -1 （已停用） | 所有 Amazon Nova 模型 | v1.0 | 
| [預設新權杖上限](#nova-sagemaker-inference-container-feature-default-max-new-tokens) | 環境變數 | 模型的最大內容長度 | 所有 Amazon Nova 模型 | v1.0 | 
| [預設 logprob](#nova-sagemaker-inference-container-feature-default-logprobs) | 環境變數 | Disabled | 所有 Amazon Nova 模型 | v1.0 | 
| [Eagle3 推測解碼](#nova-sagemaker-inference-container-feature-speculative-decoding) | 預設為啟用 | 已啟用 | 所有 Amazon Nova 模型 | v1.0 | 
| [KV 快取資料類型](#nova-sagemaker-inference-container-feature-kv-cache-dtype) | 環境變數 | 與模型資料類型相同 | 所有 Amazon Nova 模型 | 1.3 版 | 
| [量化](#nova-sagemaker-inference-container-feature-quantization) | 環境變數 | 已停用\* | 所有 Amazon Nova 模型 | 1.3 版 | 
| [投機字符的數量](#nova-sagemaker-inference-container-feature-num-speculative-tokens) | 環境變數 | 3 | 所有 Amazon Nova 模型 | 1.4 版 | 
| [尾碼解碼](#nova-sagemaker-inference-container-feature-suffix-decoding) | 環境變數 | Disabled | 所有 Amazon Nova 模型 | 1.4 版 | 

**重要**  
\* FP8 量化會自動啟用，無法針對下列模型和執行個體類型組合停用：  
`ml.g6.12xlarge` 或 上的 Amazon Nova Lite `ml.g6.24xlarge`
上的 Nova 2 Lite `ml.g6.48xlarge`
對於這些組態，您不需要設定 `QUANTIZATION_DTYPE`。如需詳細資訊，請參閱 [量化](#nova-sagemaker-inference-container-feature-quantization)。

## 預設溫度
<a name="nova-sagemaker-inference-container-feature-default-temperature"></a>

設定傳送至端點之所有推論請求的預設取樣溫度。溫度控制模型輸出的隨機或可預測程度。的值`0`可讓模型一律挑選最有可能的下一個字詞，產生一致且可重複的輸出。較高的值 （最多 `2`) 可讓模型更願意挑選較不可能的單字，產生更具創造性和變化的回應。

**使用時機：**降低需要真實、一致答案的任務溫度 （例如 `0.1`到 `0.3`)，例如分類或資料擷取。針對如故事撰寫或腦力激盪等創意任務提出 （例如， `0.7` 到 `1.0`)。溫度與 top-p 和 top-k 一起運作 — 這三個控制模型選取權杖的方式，您可以結合它們來微調輸出行為。

引入於  
`v1.0`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`DEFAULT_TEMPERATURE`環境變數。

預設值  
`1.0`

有效值  
在 `0`和 `2`（包含） 之間浮動

**環境變數**

```
"Environment": {
    "DEFAULT_TEMPERATURE": "0.7"
}
```

**注意**  
您可以在請求內文中包含 `temperature` 參數，以根據請求覆寫此預設值。

## 預設 top-p
<a name="nova-sagemaker-inference-container-feature-default-top-p"></a>

設定所有推論請求的預設 top-p 值。Top-p 透過將模型的選擇限制為最有可能的單字子集來控制輸出多樣性。具體而言，模型會依機率排序所有可能的後續單字，並僅考慮合併機率達到頂端 p 值的最小群組。例如， 的頂端 p `0.9`表示模型只考慮 90% 機率的單字，忽略其餘不太可能的選項。

**使用時機：**使用較低的 top-p 值 （例如 `0.5`)，讓模型黏附在高可信度的單字上，產生更集中的輸出。使用較高的值 （例如 `0.95`) 來允許更多變化。Top-p 通常用作溫度的替代方案，這兩者都控制輸出多樣性，但 Top-p 會根據模型在每個步驟的可信度動態調整。您可以同時使用兩者，在這種情況下，模型會套用每個步驟中較嚴格的限制。

引入於  
`v1.0`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`DEFAULT_TOP_P`環境變數。

預設值  
`1.0`

有效值  
在 `1e-10`和 `1`（包含） 之間浮動

**環境變數**

```
"Environment": {
    "DEFAULT_TOP_P": "0.9"
}
```

**注意**  
您可以在請求內文中包含 `top_p` 參數，以依請求覆寫此預設值。

## 預設 top-k
<a name="nova-sagemaker-inference-container-feature-default-top-k"></a>

設定所有推論請求的預設 top-k 值。Top-k 會將模型的選擇限制在固定數量的下一個單字。例如， 的前 k `50`表示模型只會在每個步驟中考慮 50 個最有可能的單字，無論其個別機率為何。的值會`-1`停用此限制，讓模型考慮所有可能的單字。

**使用時機：**當您想要對模型考慮的單字選擇數量設定硬性上限時，請使用 top-k。較低的值 （例如 `10`) 會產生更可預測的輸出，而較高的值則允許更多變化。Top-k 可以與溫度和 top-p 結合 — 當多個取樣控制項處於作用中狀態時，模型會使用每個步驟中最嚴格的值來套用它們。

引入於  
`v1.0`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`DEFAULT_TOP_K`環境變數。

預設值  
`-1` （已停用）

有效值  
整數， `-1` 或更高。使用 `-1` 來考慮所有字符。

**環境變數**

```
"Environment": {
    "DEFAULT_TOP_K": "50"
}
```

**注意**  
您可以在請求內文中包含 `top_k` 參數，以根據請求覆寫此預設值。

## 預設新權杖上限
<a name="nova-sagemaker-inference-container-feature-default-max-new-tokens"></a>

設定模型在回應中產生的字符 （單字或單字片段） 預設數量上限。除非覆寫，否則此值適用於所有請求。使用此值來控制回應長度，並管理整個端點的成本。

**使用時機：**當您想要在所有請求中強制執行一致的最大回應長度時，請設定此選項。例如，`256`針對短答案任務將其設定為 ，或`2048`針對更長的內容產生將其設定為 。允許的最大值取決於為您的端點`CONTEXT_LENGTH`設定的 ，因為輸入字符加上輸出字符不能超過內容長度。

引入於  
`v1.0`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`DEFAULT_MAX_NEW_TOKENS`環境變數。

預設值  
模型的最大內容長度

有效值  
整數， `1` 或更高

**環境變數**

```
"Environment": {
    "DEFAULT_MAX_NEW_TOKENS": "512"
}
```

**注意**  
您可以在請求內文中包含 `max_tokens`或 `max_completion_tokens` 參數，以根據請求覆寫此預設值。允許的最大值取決於為您的端點`CONTEXT_LENGTH`設定的 。

## 預設 logprob
<a name="nova-sagemaker-inference-container-feature-default-logprobs"></a>

設定為每個產生的字符傳回的預設日誌機率數量。日誌機率是數值分數，表示模型在選擇每個單字時的可信度。啟用時，回應會包含每個輸出字符的這些分數，這有助於評估模型可信度、比較替代單字選擇和偵錯產生行為。

**使用時機：**當您需要評估模型在輸出中的可信度時啟用 logprob，例如，標記低可信度回應以供人工檢閱，或比較不同完成的可能性。啟用 logprob 可能會稍微增加回應延遲和回應承載大小。

引入於  
`v1.0`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`DEFAULT_LOGPROBS`環境變數。

預設值  
Disabled

有效值  
介於 `1`和 `20`（包含） 之間的整數

**環境變數**

```
"Environment": {
    "DEFAULT_LOGPROBS": "5"
}
```

**注意**  
您可以在請求內文中包含 `logprobs`和 `top_logprobs` 參數，以根據請求覆寫此預設值。啟用 logprob 可能會稍微增加回應延遲。

## Eagle3 推測解碼
<a name="nova-sagemaker-inference-container-feature-speculative-decoding"></a>

Eagle3 推測解碼是一種最佳化技術，可加速文字產生。它的運作方式是使用更小、更快速的草稿模型來預測幾個權杖，然後在單一步驟中針對主要模型檢查這些預測。當預測正確時，模型會在通常產生字符時有效地產生多個字符。主要模型一律會驗證草案權杖，因此最終輸出與主要模型自行產生的權杖相同，只有速度會變更，而不是品質。

**使用時機：**依預設會啟用 Eagle3 推測解碼，並有益於大多數工作負載。只有當您觀察到非預期的行為，或需要在偵錯期間隔離效能特性時，才考慮停用此功能。

引入於  
`v1.0`。 在 中新增支援使用 Eagle3 推測解碼的 FP8 量化`v1.4`。

支援的模型  
所有 Amazon Nova 模型

如何啟用  
Eagle3 推測解碼預設為啟用，無需設定。使用 `DISABLE_SPECULATIVE_DECODING` 將其停用。

預設值  
`false` （已啟用 Eagle3 推測解碼）

有效值  
`true`, `false`

**環境變數**

下列範例停用 Eagle3 推測解碼：

```
"Environment": {
    "DISABLE_SPECULATIVE_DECODING": "true"
}
```

## KV 快取資料類型
<a name="nova-sagemaker-inference-container-feature-kv-cache-dtype"></a>

設定推論期間使用的金鑰值 (KV) 快取的資料類型。KV 快取會將先前字符的模型記憶體儲存在對話中，允許它產生每個新字符，而無需重新處理整個輸入。對於長序列，此快取可能會耗用大量的 GPU 記憶體。將 KV 快取設定為 FP8 等較低精確度的資料類型可減少記憶體使用量，並且可以提高輸送量，而成本是輸出中的次要數值差異。

**使用時機：**當您需要支援執行個體上較長的內容長度或更高的並行時，啟用 FP8 KV 快取。這在記憶體有限的 GPU 執行個體上特別有用。測試您的使用案例，以確認輸出品質符合您的需求，因為較低的精確度可能會產生稍微不同的結果。

引入於  
`v1.3`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`KV_CACHE_DTYPE`環境變數。

預設值  
與模型的資料類型相同

有效值  
`fp8`

**環境變數**

```
"Environment": {
    "KV_CACHE_DTYPE": "fp8"
}
```

**注意**  
相較於預設精確度，變更 KV 快取資料類型可能會產生稍微不同的輸出。測試您的使用案例，以確認輸出品質符合您的需求。

## 量化
<a name="nova-sagemaker-inference-container-feature-quantization"></a>

設定模型權重的量化資料類型。量化會將模型的權重壓縮為精確度較低的格式 (FP8 而非預設的精確度較高），進而減少模型所需的 GPU 記憶體量。這可以改善推論輸送量，並讓較大的模型適應較小的執行個體類型，並將對輸出品質的影響降至最低。

**使用時機：**當您想要減少記憶體用量以支援較高的並行或將模型安裝在較小的執行個體類型時，請使用 FP8 量化。請注意，某些模型和執行個體類型組合需要自動 FP8 量化，請參閱下列警告。

引入於  
`v1.3`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`QUANTIZATION_DTYPE`環境變數。

預設值  
已停用。不過，某些模型和執行個體類型組合會自動啟用 FP8 量化。請參閱以下備註。

有效值  
`fp8`

**環境變數**

```
"Environment": {
    "QUANTIZATION_DTYPE": "fp8"
}
```

**重要**  
下列模型和執行個體類型組合需要 FP8 量化。對於這些組態，會自動啟用量化，且無法停用或覆寫：  
`ml.g6.12xlarge` 或 上的 Amazon Nova Lite `ml.g6.24xlarge`
上的 Nova 2 Lite `ml.g6.48xlarge`
如需所有其他組態，請參閱 [支援的模型和執行個體](nova-model-sagemaker-inference.md#nova-sagemaker-inference-supported) 以取得詳細資訊。

## 投機字符的數量
<a name="nova-sagemaker-inference-container-feature-num-speculative-tokens"></a>

控制草稿模型在每個 Eagle3 推測解碼步驟中預先預測的字符數量。較高的值表示草稿模型會嘗試一次預測更多字符，這可以在預測準確時改善輸送量。如果草稿模型的預測經常與主要模型不同，則較低的值可能更有效率。

**使用時機：**在您的工作負載產生可預測的輸出模式 （例如結構化資料或範本文字） 時增加此值，其中草稿模型可能會正確猜測。減少預測較不可靠的創意或高度可變輸出。

引入於  
`v1.4`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型時設定`NUM_SPECULATIVE_TOKENS`環境變數。

預設值  
`3`

有效值  
介於 `1`和 `10`（包含） 之間的整數

**環境變數**

```
"Environment": {
    "NUM_SPECULATIVE_TOKENS": "5"
}
```

**注意**  
此設定僅適用於啟用 Eagle3 推測解碼時 (`DISABLE_SPECULATIVE_DECODING` 為 `false`)。停用投機解碼或使用尾碼解碼時，不會產生任何影響。

## 尾碼解碼
<a name="nova-sagemaker-inference-container-feature-suffix-decoding"></a>

尾碼解碼是加速產生文字的替代方法。尾碼解碼會尋找文字中已產生或輸入提示中的重複模式，並重複使用這些模式來預測未來的字符，而不是使用個別的草稿模型 （如同 Eagle3)。當輸出可能包含重複片語、結構化格式或緊密反映輸入的內容時，這種方法運作良好。

**使用時機：**針對輸出包含重複模式的任務使用尾碼解碼，例如產生結構化資料、填入範本，或摘要重複使用來源片語的內容。對於輸出變化很大的一般用途產生，預設 Eagle3 方法通常會提供更好的輸送量。

引入於  
`v1.4`

支援的模型  
所有 Amazon Nova 模型

如何啟用  
建立 SageMaker 模型`suffix`時，將`SPECULATIVE_DECODING_METHOD`環境變數設定為 。

預設值  
`eagle3`

有效值  
`eagle3`, `suffix`

**環境變數**

```
"Environment": {
    "SPECULATIVE_DECODING_METHOD": "suffix"
}
```

**注意**  
若要使用尾碼解碼， `DISABLE_SPECULATIVE_DECODING` 必須設定為 `false`（預設值）。`DISABLE_SPECULATIVE_DECODING` 設定為 會`true`停用所有推測解碼方法，包括尾碼解碼。