Skip to main content
SambaStack は、ignore_eos API パラメータによる拡張トークン生成 (extended token generation) をサポートしています。デフォルトでは、モデルは応答の完了を示すシグナルである EOS (End of Sequence) トークンを生成した時点で、生成を停止します。ignore_eos を有効にすると、モデルはこのシグナルを無視し、max_tokens に達するまでトークンを生成し続けます。これは、モデルが自然に停止するタイミングにかかわらず固定長の出力を必要とする、AIPerf などのベンチマークツールで有用です。
ignore_eos はデフォルトで無効です。ユーザーが API リクエストでこのパラメータを渡せるようにするには、SambaStack 管理者がデプロイメントごとに明示的に有効化する必要があります。ENABLE_IGNORE_EOS が設定されていないデプロイメントで ignore_eos: true を渡してもエラーは返されません。パラメータは黙って無視され、モデルは ignore_eos: false の場合と同じように動作します。

デプロイメントでの ignore_eos の有効化

ユーザーがデプロイメントで ignore_eos を渡せるようにするには、ModelDeployment の YAML の engineConfig.env_vars の下に ENABLE_IGNORE_EOS: "true" を追加します。
上記の例では、spec.bundle を通じてバンドルをデプロイしています。インラインの spec.models を使用する単一モデルのデプロイメントでも、同じ engineConfig.env_vars ブロックが適用されます。併記されている startupTimeout の単位は秒で、7200 を指定すると、エンジンは大規模なバンドルのロードに 2 時間を確保できます。詳細は 起動タイムアウト をご覧ください。 更新した ModelDeployment の YAML を適用します。
SambaWiz ユーザーは、Model Deployment ページで生成された YAML に engineConfig.env_vars ブロックを追加するだけで済みます。spec の残りの部分は自動的に生成されます。

API リクエストでの ignore_eos の使用

デプロイメントに ENABLE_IGNORE_EOS が設定されると、ユーザーは chat completions のリクエストボディで ignore_eos: true を渡せるようになります。
ignore_eos は vLLM の拡張であり、標準の OpenAI API には含まれません。SambaNova と OpenAI のどちらの Python クライアントでも、extra_body 経由で指定できます。

動作

ignore_eos はベンチマークやテストのワークロード向けであり、本番のユーザートラフィックでの使用は想定されていません。SambaStack 1.2 における既知の同時実行数の制限 (SambaStack 2.0 で対応予定):
  • 同時実行数 1: 安定して動作します。
  • 同時実行数 3: 出力長が 64K トークン以上の場合に失敗が発生します。
  • 同時実行数 10 以上: すべての出力サイズで 100% 失敗します。