Skip to main content
本ガイドでは、SambaStack 上で特定の構成を持つモデルをデプロイするために、カスタムの BundleTemplate と Bundle を作成する方法を解説します。 SambaStack では、バンドルがデプロイの基本単位です。個別のモデルをデプロイするのではなく、1 つ以上のモデルを、バッチサイズやシーケンス長を含むデプロイ構成と共にまとめたバンドルをデプロイします。このアプローチは、SambaNova の Reconfigurable Dataflow Unit (RDU) を活用して 1 つのデプロイメント内で複数のモデルと構成をサポートし、構成間の即時切り替えによって効率性と柔軟性を向上させます。
本ガイドはカスタムバンドルの作成を対象としています。SambaNova が提供する事前構成済みバンドルのデプロイについては、バンドルのデプロイをご参照ください。

前提条件

カスタムバンドルを作成する前に、お使いの環境に該当する以下のセットアップを完了してください。

クイックスタート - ホステッド

ホステッド SambaStack のシステムセットアップ

クイックスタート - オンプレミス

オンプレミス SambaStack のシステムセットアップ
加えて、以下のドキュメントもご確認ください。

用語

概念

バンドルアーキテクチャ

バンドルおよびバンドルテンプレートとは何かを含む、バンドルの基本概念の概要については、モデルバンドルのデプロイをご参照ください。このセクションでは、カスタムバンドルを作成する際に使用する 3 層構造を解説します。
  1. BundleTemplate - モデルを「どのように」実行できるかを定義します。利用可能なシーケンス長プロファイル、バッチサイズ、PEF のマッピングを指定します。また、投機的デコーディングのペアにおけるターゲットモデルとドラフトモデルの関係も定義します。
  2. Bundle - テンプレートをストレージ上の「特定のチェックポイント」に紐づけ、デプロイ可能な状態にします。
  3. BundleDeployment - バンドルの 1 つ以上のレプリカをクラスター上にインスタンス化します。
この分離により、以下が可能になります。
  • ファインチューニング済みモデルのカスタムチェックポイントを含め、複数のチェックポイント間でテンプレートを再利用する
  • 同じテンプレートを共有しながら、同一の基盤モデルの異なるチェックポイントをバンドルする
  • 同じバンドル構成を異なるレプリカ数でデプロイする
  • デプロイ構成を変更せずにチェックポイントを更新する

BundleTemplate の構造

BundleTemplate は、1 つ以上のモデルのデプロイ能力を定義します。以下は、投機的デコーディング構成を含むマルチモデルテンプレートの例です。
上記の例には、3 つのモデルの構成が含まれています。
  • gpt-oss-120b: 2 個の構成
  • Meta-Llama-3.3-70B-Instruct: 5 個の構成。うち 3 個は、Meta-Llama-3.1-8B-Instruct をドラフトモデルとする投機的デコーディングを使用
  • Meta-Llama-3.1-8B-Instruct: 3 個の構成
投機的デコーディング関連のフィールドの詳細については、投機的デコーディングのデプロイガイドラインをご参照ください。 BundleTemplate のトップレベルフィールド

モデルとエキスパート

BundleTemplate 内の各モデルには 1 つ以上のエキスパートが含まれ、それぞれがシーケンス長プロファイルを表します。一般的なプロファイルは以下のとおりです。
  • 8k、16k、32k、64k、128k - 固定シーケンス長の構成
  • default - 特定の長さを必要としない場合の標準構成
エキスパート構成のパラメータ 各エキスパートには、以下のパラメータを持つ構成が 1 つ以上含まれます。
spec_decoding 内のパラメータ (ターゲットモデルのみ):詳細なガイダンスについては、投機的デコーディングのデプロイガイドラインをご参照ください。

Bundle の構造

Bundle は、BundleTemplate を特定のチェックポイントに紐づけます。以下のセクションでは、Bundle マニフェストの各パートを説明します。 リソースの識別情報 Bundle 名とリソースタイプを定義します。
  • metadata.name - デプロイでこのバンドルを参照する際に使用する Bundle 名
  • apiVersion と kind - すべてのバンドルで同じ値を使用します
チェックポイント 使用するモデルチェックポイントを定義します。
モデル モデル名をチェックポイントとテンプレートにマッピングします。
テンプレートと Secret Bundle を BundleTemplate および認証情報に関連付けます。

Bundle の完全な例

以下は、マルチモデル Bundle の完全な例です。
SambaNova がホストするチェックポイントのパスは、SambaNova の担当者から提供されます。ご自身でチェックポイントをホストしている場合は、そのパスを上記の source フィールドに指定できます。

BundleDeployment の構造

BundleDeployment は、バンドルをクラスター上にインスタンス化します。デプロイの詳細については、クイックスタート - ホステッドまたはクイックスタート - オンプレミスをご参照ください。

PEF とチェックポイントのライフサイクルステータス

SambaStack は、サポートライフサイクルを示すために、PEF CR のバージョンに pef_status フィールドを、モデル CR のチェックポイントバージョンに checkpoint_status フィールドを割り当てます。これらのステータスを理解することで、カスタムバンドルに使用する PEF やチェックポイントのバージョンを適切に選択できます。 PEF およびチェックポイントバージョンのステータス値 PEF CR の各バージョンエントリには pef_status フィールドが含まれます。チェックポイント CR のバージョンでは checkpoint_status が使用されます。両者は同じ値のセットを共有します。 ステータス付きの PEF CR バージョンの例
バージョンのステータスを確認するには、kubectl describe pef <pef-name> または kubectl describe model <model-name> を実行し、Versions セクションの pef_status または checkpoint_status フィールドを確認します。
以下の手順では、ここまでに説明した概念と構造を使用してカスタムバンドルを作成・デプロイするワークフローをステップごとに解説します。

手順

利用可能な PEF の確認

BundleTemplate を作成する前に、対象のモデルで利用可能な PEF リソースを確認します。
1

利用可能な PEF の一覧表示

モデルとシーケンス長の要件に一致する PEF を一覧表示します。
例:
出力:
2

PEF の詳細確認

PEF の詳細を表示し、サポートされている構成の把握と、より新しいバージョンの有無の確認を行います。
出力例:
Spec.Metadata セクションで以下を確認します。
  • batch_size - サポートされるバッチサイズ
  • max_seq_length - 最大シーケンス長
  • num_rdus - 必要な RDU 数
  • rdu_arch - 必要な RDU アーキテクチャ
  • seq_lengths - サポートされるシーケンス長
BundleTemplate で参照する前に、Versions セクションを確認して、より新しい PEF バージョンが利用可能かどうかと、各バージョンの pef_status を確認してください。
kubectl describe pef でより新しいバージョンが利用可能であることが確認できる場合を除き、PEF の参照にはバージョン 1 を使用してください (例: llama-3p1-70b-ss16384-bs4-sd5:1)。

BundleTemplate の作成

1

YAML ファイルの作成

BundleTemplate 用の YAML ファイルを作成します。単一モデルのテンプレートの場合:
投機的デコーディングを含むマルチモデルテンプレートについては、BundleTemplate の構造の例をご参照ください。
2

BundleTemplate の適用

3

作成の確認

各エキスパートに複数のバッチサイズを含めておくと、推論エンジンが現在のワークロードに基づいて、最小かつ最速の構成を選択できるようになります。

バンドルの作成

1

YAML ファイルの作成

Bundle 用の YAML ファイルを作成します。
マルチモデルバンドルについては、Bundle の完全な例をご参照ください。
2

Bundle の適用

3

Legalizer による検証の確認

バンドルを適用すると Legalizer が自動的に実行され、バンドルが RDU メモリに収まるかどうかを検証します。
バンドルが ValidationSucceeded を示すまで、デプロイに進まないでください。

バンドルのデプロイ

1

BundleDeployment の作成

2

BundleDeployment の適用

3

デプロイ状態の監視

バンドル/BundleTemplate の更新・削除

1

YAML ファイルの修正

Bundle または BundleTemplate の YAML ファイルに変更を加えます。
2

設定の再適用

Legalizer が変更内容を自動的に再検証します。

トラブルシューティング

Legalizer 検証の失敗

デプロイの失敗

参考情報

モデルのデプロイ

バンドルデプロイの概念とワークフロー

対応モデルとバンドル

デプロイ可能なモデルとバンドルのカタログ

カスタムチェックポイントのデプロイ

独自のカスタムチェックポイントやファインチューニング済みチェックポイントのデプロイ

チェックポイント変換ツール

チェックポイントの互換形式への変換