> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 高スループット vs. 高インタラクティビティ

SambaStack は、対応モデルに対して**高インタラクティビティ** (high-interactivity) と**高スループット** (high-throughput) の 2 種類のデプロイ構成をサポートしています。どちらも同じモデルの重みと同じ API を使用し、異なるのはシステムがリクエストを処理する方法だけです。低レイテンシが求められるユーザー向けアプリケーションには高インタラクティビティを使用してください。ユーザーごとのレイテンシよりも総出力量が重要な、バッチ処理や高同時実行のワークロードには高スループットを使用してください。このページでは、両者のトレードオフ、それぞれのモデルプロファイルと PEF 構成、デプロイ方法を解説します。

<Info>
  高スループット構成と高インタラクティビティ構成には専用のシステムが必要です。いずれかの構成でデプロイされたモデルは、他のモデルとバンドルすることはできません。モデル、プロファイル、バンドルに馴染みがない場合は、[モデルとバンドルのデプロイ](/docs/ja/v2.2.3/sambastack/service-administration/model-deployment/deploying-models-and-bundles/overview)をご参照ください。
</Info>

## デプロイ構成

| 構成 | プロファイル | 適した用途 |
| :- | :- | :- |
| **高スループット** | 同時リクエスト全体でのトークンスループット | バッチ処理、非同期ワークロード、またはユーザーごとのレイテンシよりシステム全体の出力量が重要な大規模ユーザー環境 |
| **高インタラクティビティ** | リクエストごとのレイテンシと最初のトークンまでの時間 | リアルタイムのユーザー向けアプリケーション |

<Note>
  どちらの構成でも、API 呼び出しで使用するモデル名は同じです。同じリクエストがどちらの構成でも動作します。

  ```json theme={}
  { "model": "DeepSeek-R1", "messages": [...] }
  ```

  構成が制御するのはサーバー側でのリクエスト処理であり、クライアント側の変更は不要です。
</Note>

## 各構成の使いどころ

### 高スループット

以下の場合は高スループット構成を使用してください。

* 多数の同時ユーザーにサービスを提供しており、ユーザーごとのレイテンシよりも総スループットが重要な場合
* ワークロードが非同期またはバッチ指向の場合 (例: ドキュメント処理やオフライン推論パイプライン)
* リクエストごとのエンドツーエンドのレイテンシが制約にならない場合

### 高インタラクティビティ

以下の場合は高インタラクティビティ構成を使用してください。

* リアルタイムのユーザー向けアプリケーションを構築している場合
* ユーザーごとの最初のトークンまでの時間 (TTFT) と 1 秒あたりのトークン数が主要な指標である場合
* デプロイのノード数が少ない場合や、ユーザーに対する厳しいレイテンシ要件がある場合

## 対応モデル

以下のモデルで両方の構成が利用できます。

* DeepSeek-R1
* DeepSeek-V3-0324
* DeepSeek-V3.1
* DeepSeek-V3.1-Terminus
* DeepSeek-V3.2

## アーキテクチャ

高スループット構成は連続バッチング (continuous batching) を使用し、プレフィル (prefill) フェーズとデコード (decode) フェーズを専用のパイプラインに分離します。2 つのモードが利用できます。

* **集約モード (ACB):** プレフィルとデコードが同じノード上で同居して実行されます。
* **分離モード (DCB):** プレフィルとデコードがそれぞれ専用の別ノードで実行されるため、各フェーズのサイズを独立して調整できます。推奨されるノード配分は、デコードノードよりプレフィルノードを多くすることです (例: プレフィルノード 3 台、デコードノード 1 台)。

<Warning>
  DCB は SambaStack 上での社内検証がまだ完了していません。DCB の検証結果が公開されるまでは、SambaStack のデプロイには ACB を使用してください。
</Warning>

* **プレフィルノード**は入力プロンプトを処理します
* **デコードノード**は出力トークンを生成します

<Warning>
  高スループット構成の分離モードには、最低 4 ノードが必要です。単一ノードまたは小規模なデプロイでは、代わりに高インタラクティビティ構成を使用してください。
</Warning>

## 要件と制限事項

| 制約 | 詳細 |
| :- | :- |
| **最小ノード数 (高スループット)** | マルチノード構成で 4 ノード |
| **専用システム** | 高スループット構成と高インタラクティビティ構成には専用のシステムが必要です。他のモデルとのバンドルはサポートされません |
| **ノード構成 (分離モード)** | デコードノードよりプレフィルノードを多くする必要があります (例: プレフィル 3 : デコード 1) |
| **チェックポイントバージョン** | モデル CR に記載された最新のチェックポイントバージョンを使用してください。古いバージョンは高スループット PEF と互換性がありません |

## PEF 構成

各構成は `ModelProfile` として提供されます。個々の PEF ではなくプロファイルを選択し、使用される PEF・シーケンス長・バッチサイズはプロファイルによって決まります。以下の PEF の表は、各構成がどの組み合わせを提供するかを示したものです。デプロイ手順の全体は[バンドルのデプロイ](/docs/ja/v2.2.3/sambastack/service-administration/model-deployment/deploying-models-and-bundles/deploy-a-bundle)をご参照ください。

<Note>
  **カスタムリソース (CR):** Kubernetes の拡張オブジェクトです。`Model`、`ModelProfile`、`Pef` リソースは、クラスター内で利用可能なモデル、ランタイム構成、コンパイル済み実行ファイルを定義します。
</Note>

<Note>
  `ModelProfile` は、その PEF を `spec.pefs` に `<pef-name>[:<version>]` の形式で列挙します (例: `deepseek-ss8192-bs1:1`)。通常このリストを編集することはありません。プロファイルがどの PEF を提供するかの確認に使用してください。
</Note>

### 高スループット PEF

| PEF CR | シーケンス長 | バッチサイズ |
| :- | :- | :- |
| `deepseek-ss32768-bs1-cb2-64` | 32768 (32K) | 64 |
| `deepseek-ss16384-bs1-cb2-128` | 16384 (16K) | 128 |
| `deepseek-ss8192-bs1-cb2-256` | 8192 (8K) | 256 |

**高スループット PEF の選び方:**

* 最長のプロンプトと想定される出力トークン数の合計が収まるシーケンス長 (`ss`) を選択してください。
* バッチサイズが大きいほど、ノードあたりでより多くの同時デコードリクエストを処理できますが、より多くの RDU メモリが必要です。表にはサポートされている組み合わせを記載しています。

### 高インタラクティビティ PEF

| PEF CR | シーケンス長 | バッチサイズ |
| :- | :- | :- |
| `deepseek-ss4096-bs1` | 4096 (4K) | 1 |
| `deepseek-ss4096-bs4` | 4096 (4K) | 4 |
| `deepseek-ss8192-bs1` | 8192 (8K) | 1 |
| `deepseek-ss8192-bs4` | 8192 (8K) | 4 |
| `deepseek-ss16384-bs1` | 16384 (16K) | 1 |
| `deepseek-ss32768-bs1` | 32768 (32K) | 1 |
| `deepseek-ss131072-bs1` | 131072 (128K) | 1 |

**高インタラクティビティ PEF の選び方:**

* プロンプトと想定される出力量の合計に合わせてシーケンス長を選択してください。
* `bs1` はユーザーごとのレイテンシを最小化します。`bs4` は、複数の同時ユーザーがいる場合に、わずかなレイテンシの増加と引き換えにノードあたりのスループットを高めます。

## 構成のデプロイ

これらの構成向けの事前構築済みバンドルは提供されていません。目的の構成に対応する `ModelProfile` を選択し、それをデプロイします。連続バッチングはコンパイル済み PEF の特性であり、プロファイルの `spec.features` に表示されるため、自分で有効化する必要はありません。

DeepSeek の場合、2 つのプロファイルは次のとおりです。

| プロファイル | 構成 |
| :- | :- |
| `deepseek-cb` | 高スループット |
| `deepseek` | 高インタラクティビティ |

その他のモデルでは、どのプロファイルの `spec.features` に `continuous_batching` が含まれるかを確認して、対象のプロファイルを特定します。

```bash theme={}
kubectl -n <namespace> get modelprofiles -o json
```

`features` に `continuous_batching` を含むプロファイルは高スループット構成を提供します。含まないプロファイルは高インタラクティビティ構成を提供します。プロファイルの `spec.pefs` を上記の PEF の表と突き合わせて、そのプロファイルが提供するシーケンス長とバッチサイズを確認してください。

モデルとそのプロファイルを `ModelBundle` で組み合わせるか、単一モデルの場合は `ModelDeployment` にインラインで記述します。

```yaml theme={}
apiVersion: sambanova.ai/v1alpha1
kind: ModelBundle
metadata:
  name: mb-deepseek-v3-2-high-throughput
spec:
  modelConfigs:
  - model: deepseek-v3-2:1
    profile: deepseek-cb
```

次に、適切なモードに合わせて `ModelDeployment` のレプリカグループを構成します。

**集約モード (ACB):**

```yaml theme={}
groups:
  - name: default
    continuous_batching:
      mode: aggregate
    minReplicas: 1
    qosList:
    - web
    - free
```

**分離モード (DCB):**

```yaml theme={}
groups:
  - name: default
    continuous_batching:
      use_mpi: true
      prefill:
        minReplicas: 3
      decode:
        minReplicas: 1
    minReplicas: 1
    qosList:
    - web
    - free
```

## デプロイの確認

デプロイ後、構成が有効になっていることを確認します。

```shellscript theme={}
kubectl describe modeldeployment <model-deployment-name>
```

出力で、`continuous_batching.mode` が `aggregate` (ACB) または `disaggregate` (DCB) に設定されていることと、`prefill` および `decode` 配下のレプリカ数が設定した値と一致していることを確認してください。

## 構成の切り替え

高スループットと高インタラクティビティを切り替えるには、切り替え先の構成に対応するプロファイルで再デプロイします。高インタラクティビティに切り替える場合は、`features` に `continuous_batching` を含まないプロファイルを参照し、`ModelDeployment` のレプリカグループから `continuous_batching` ブロックを削除してください。API 呼び出しで使用するモデル名は変わりません。

## デプロイの監視

SambaStack のロギングシステムは、これらのデプロイに関連するリクエストごとのメトリクスを出力します。

| メトリクス | ログキー | 確認できること |
| :- | :- | :- |
| デコードキュー時間 | `decode_queue_time` | 連続バッチングのキューでの待機時間。高い値はデコードの飽和を示します |
| 最初のトークンまでの時間 | `time_to_first_token` | リクエストごとのプレフィルレイテンシ。高インタラクティビティデプロイの主要指標です |
| 1 秒あたりの完了トークン数 | `completion_tokens_per_sec` | 総スループット。高スループットデプロイの主要指標です |

利用可能なメトリクスの全一覧とクエリ例については、[ログ](/docs/ja/v2.2.3/sambastack/reference-architecture/observability/logs)をご参照ください。
