放射線誘起のビット反転に対するAIモデルの耐性テスト
OrbitTest(MRVPlatform)は、ONNXモデルの予測が衛星搭載コンピュータで発生する放射線誘起のシングルイベントアップセット(ビット反転)に耐えられるかをテストするコマンドラインツールです。モデルの重みに統計的に現実的なビット反転を注入し、モンテカルロ試行を繰り返して0〜100の耐性スコアと層ごとの感度ランキングを出力します。故障率プリセットは公開されたSEU研究に基づきます。このプロジェクトは、限界を正直に開示した3日間の検証スプリントです。
GitHubに、MRVPlatform(コードネーム:OrbitTest)というオープンソースのコマンドラインツールが公開された。これは、ONNXモデルの予測が、軌道上の衛星コンピュータで実際に発生する放射線誘起のメモリ破損——シングルイベントアップセット(SEU)、いわゆるビット反転——を経ても生き残るかどうかを検証するためのツールである。モデルが単に実行できるかを確認するのではなく、現実的なビット反転を重みに注入し、推論結果の変化を評価する。
処理の流れは次のとおり。まずONNXモデルと検証データセットを読み込み、クリーンな状態での精度ベースラインを確立する。次に、故障率(エラー/ビット・日)とミッション日数から各重みテンソルで期待されるビット反転数を計算する(expected_flips = fault_rate × tensor_size_bits × mission_days)。そして、IEEE-754 float32のビット表現に対して、符号ビット・指数部・仮数部を区別なくランダムに反転させ、破損した重みで検証セットの推論を再実行する。1回の試行は偶然に左右されるため、デフォルトで20回のモンテカルロ試行を行い、精度の平均・標準偏差・最小値・最大値を報告する。最終的な耐性スコアは、100 ×(故障時平均精度 ÷ クリーン精度)を0〜100の範囲で切り出したものだ。
さらに、このツールの最も有用な出力の1つが層ごとの感度分析である。各重みテンソルを1つずつだけ破損させて試行を繰り返し、平均精度低下が大きい順にランキングする。これにより「もし1つの層だけを冗長化・強化できるなら、どれが最重要か」という実践的な判断材料が得られる。READMEには故障率プリセットの根拠も明記されている。leo-typical(2×10⁻⁷)はSAC-C衛星の4Mbit SRAMで測定された実測値、saa-transit(1×10⁻⁵)は南大西洋異常帯の影響を桁で見積もった推定値、solar-storm-worst-case(1×10⁻³)は1989年10月のCREME96最悪日ベンチマークに相当する。推定値はあくまで桁レベルの参考であり、実際のミッション判断に使うには追加の放射線解析が必要だとされる。
利用方法はPython CLIで、--modelと--dataが必須。--fault-rateまたは--presetのどちらかで故障率を指定し、--mission-days、--trials、--layer-trials、--seedなどのオプションで条件を調整できる。出力はコンソールの要約、results.json(全試行結果、分布統計、監査用ハッシュを含む)、accuracy_vs_fault_rate.pngのチャートである。
開発者は現時点での限界も正直に列挙している。重み破損のみを扱い、アクティベーションや勾配、制御フロー、周辺飛行ソフトウェアは対象外。スコアは精度のみに基づき、損失劣化や信頼度キャリブレーションは考慮しない。各実行は1つの動作点のみを反映する。検証済みのアーキテクチャは小規模な線形モデルと実用的なCNNの2つだけで、Transformerやカスタム演算子には未対応。2つのプリセットは推定値である。このプロジェクトは、フルSaaS製品への投資前に方法論の有効性と説得力を確認するための3日間のCLI検証スプリントとして位置づけられている。