まず概要
研究結果だけが残っていても、その結果が「何を使って、どの条件で出たのか」を追えなければ再現できません。
今回、code commit・config version・feature version・dataset authority・model versionをVersion Identityとして明示し、実行条件をRun Manifestへまとめる共通ルールを固定しました。
さらに、Manifestの内容やVersionが変化した場合はSHA-256 identityで検出し、Run lineageの欠損や循環をFail Closedにします。
Rollbackについても、戻り先を一意に登録されたcertified known-good stateに限定しました。
何を変えたか
研究Runごとに、Version IdentityとRun Manifestを明示的に構成できるようにしました。
Run Manifestには、run identity、Version Identity、evaluation authority、seed、parameters、artifact references、必要に応じてparent run lineageを保持します。
これにより、研究結果が「どのVersion群・評価条件・実行条件から作られたか」を同じ形式で追跡できます。
なぜ必要か
コード、設定、特徴量、データ定義、モデルのどれかが変われば、見かけ上は同じ実験名でも中身は異なる可能性があります。
結果だけを保存しても、その構成要素が特定できなければ、後から同じ条件を再現することはできません。
今回のAuthorityでは、研究結果の構成要素そのものをVersion Identityとして固定し、Run単位で記録します。
Manifest integrityとRun lineage
Run Manifestは決定的なSHA-256 identityを持ちます。
内容やVersionが変わればidentityも変わるため、異なるManifestを同じものとして扱うことを防ぎます。
また、parent runが存在しない場合やlineageが循環する場合はFail Closedにします。
Rollback Authority
Rollbackは任意の古い状態へ戻す操作として扱いません。
戻り先として認められるのは、一意に登録されたcertified known-good stateだけです。
未認証、superseded、current state、未登録、Registry不一致の状態はRollback先として拒否します。
現在の状態
Version Identity、canonical Run Manifest、Manifest integrity、Run lineage、Rollback判定を後続工程から再利用できる共通Authorityとして固定しました。
この工程では、予測性能・収益・精度の向上そのものは主張していません。
次は、研究結果をどの条件で公開し、どんな結果が新しい開発タスクへ分岐するのか、その研究公開・タスク分岐ルールを固定します。