Seedとは
乱数シード
乱数生成の初期値。同じ値を指定することでLLMの出力サンプリング結果を再現できる
ひとことで言うと
AIの出力のランダムさを決める初期値。同じ値なら同じ結果を再現できる。
概要
Seed(乱数シード)とは、LLMがTemperatureやTop-p等の設定に基づいて次のトークンをサンプリングする際に使う擬似乱数生成器の初期値。 コンピュータの乱数は特定の初期値(シード)から決定的に生成される擬似乱数であるため、他のパラメータと入力プロンプトが同一であれば、同じシード値を指定することで出力を再現しやすくなる。 テストやデバッグ、実験結果の再現性確保などの用途で用いられる。 GPU上の浮動小数点演算には非決定的な要素が残る。そのため、同じシード値を指定しても、実装やハードウェア構成によっては出力が常に一致するとは限らない。 APIによってはシード指定機能自体を提供していない場合もある。また、内部実装の変更により同一シードでも出力が変わりやすく、再現性を厳密に求める用途では注意が必要。
背景
Temperature等による確率的サンプリングを行うLLMは、同じ入力でも実行のたびに異なる出力を返しうる。 この非決定性は創造性の面では有用だが、テストやデバッグ、研究の再現性という観点では障害になる。 Seedを固定できる仕組みは、この非決定性を制御する手段として提供されている。
利点
- 同じ設定・シードであれば出力を再現しやすくなり、デバッグやテストに有用
- 実験結果の比較・検証がしやすくなる
欠点
- モデルの更新やインフラ(GPU構成・バッチ処理等)の違いにより、同じシードでも同一の出力が保証されるとは限らない
- Temperatureが0に近い場合はシードの影響がほぼ無くなる
比較
- Temperature — SeedはTemperature等のサンプリングパラメータと組み合わせて使うことで、確率的な出力を再現可能にする
関連用語
よくある質問
Seedを指定すれば必ず同じ出力になる?
多くの場合再現性が高まるが、モデルの更新やサーバー側の実行環境の違いにより、完全な再現が保証されるとは限らない。
参考文献
- DocumentationOpenAI API Reference: seed