オルタナティブ・ブログ > 成迫剛志の『ICT幸福論』 >

”情報通信テクノロジは人々を幸せにする”を信条に、IT業界やアジア・中国を見つめていきます。

小説で学ぶ自動車ソフトウェア開発 (その6) SOTIF

»

本エントリーは、小説で学ぶ自動車ソフトウェア開発(車載ソフトウェア開発)のシリーズものです。その1その2その3その4も是非ご覧ください。

前回の「その5」では、Part 2として機能安全、すなわちISO 26262とASILの世界を見てきた。

機能安全が扱うのは、「故障したときに、人を傷つけないためにはどうするか」という問いである。ECUは壊れる。センサーは故障する。メモリは化ける。だからこそ、故障を前提に、HARAで危険を洗い出し、ASILで安全度を決め、フェイルセーフやフォールトトレランスで安全な振る舞いを設計する。それがPart 2で見てきた世界だった。

しかし、自動運転やAIが車に入り始めると、それだけでは説明できない危険が現れる。

ハードウェアは壊れていない。ソフトウェアにもバグはない。仕様通りに動いている。それなのに、特定の天候、照明、道路環境、センサー条件のもとで、システムが危険な判断をしてしまうことがある。

今回の「その6」では、Part 3として SOTIF――ISO 21448 の世界に入る。

SOTIFが扱うのは、「壊れていないのに、なぜ危ないのか」という問いである。これはAIと自動運転の時代に、自動車ソフトウェア開発が直面している、最も新しく、最も難しいテーマの一つでもある。

Part 3 SOTIF ―― 壊れていないのに危険な話

Part 2が「壊れたとき」を扱うなら、

Part 3は「壊れていないのに、危ない」を扱う。

これは、AIが自動運転に入ってきたことで生まれた、

人類がまだ解決策を探している新しい問いだ。

26章 正常なのに、なぜ危ない? ―― SOTIFという新しい恐怖

SOTIF.001:ISO 21448 ― 機能不十分による危険とその対処

カイトプロジェクトが機能安全フェーズを一通り終えたある夜、僕はオフィスの小会議室でニックさんと残業していた。彼女は自動運転チームのコード──センサーフュージョンのニューラルネットワーク推論エンジン──を見ていた。

「成田さん」とニックさんは言った。彼女はいつも「成田くん」じゃなくて「成田さん」と呼ぶ。「ちょっと見てほしいんですけど、このシナリオ、ISO 26262のどのASILに当てはまると思います?」

彼女が見せたのは、テスト結果のログだった。夕暮れ時、逆光の条件で撮影した高速道路の映像を、カメラ系のNNモデルに入力すると、前方車両の検出スコアが0.4まで落ちていた(通常0.8以上)。ただし、モデルは壊れていない。ハードウェアも正常。ソフトウェアもバグなし。ただ、特定の照明条件下で、AIの性能が著しく低下していた。

「これ、ISO 26262FMEAに載せると思いますか?」とニックさんは聞いた。

僕は考えた。FMEA"故障モード"を列挙する。でも、これはモデルの故障じゃない。正常に動いているモデルが、性能限界に当たっているだけだ。

「これは......FMEAには乗らないですよね。故障してないから」

「そうなんです」とニックさんは言った。「でも、このまま量産に出たら、夕暮れ時の逆光で前の車を認識できなくて事故が起きます。どこに書けばいい話なんですか?」

翌朝、僕は中月さんにその話を持っていった。中月さんは静かに聞いて、それから「それがSOTIFだ」と言った。

SOTIFISO 21448Safety Of The Intended Functionality。日本語で言えば "意図した機能の安全性"。歴史的には、2019年に ISO/PAS 21448PASPublicly Available Specification、暫定仕様書)として初版が発行され、2022年に ISO 21448:2022 として正式な国際規格に格上げされた。これが扱うのは、機能安全(ISO 26262)が扱えない領域、"故障ではない性能限界"による危険だ」

「つまり、"正常に動いているのに危ない" という状況ですね」

「そうだ。ISO 26262"壊れたとき"の話。SOTIF"壊れていないのに危ないとき"の話。補完的に機能する」

中月さんはホワイトボードに四つの象限を描いた。

SOTIF4象限
│ 既知   未知
─────────────────────
安全でない 領域  領域
安全    領域  領域
領域:既知の安全でないシナリオ(識別済みの性能限界)
領域:未知の安全でないシナリオ(まだ識別されていない性能限界)
領域:既知の安全なシナリオ(検証済みの正常動作域)
領域:未知の安全なシナリオ(検証はしてないが安全と思われる域)

「ニックさんが見つけたのは、まさに"領域①"だ。夕暮れ時の逆光での性能低下、というシナリオは"既知の安全でないシナリオ"に分類される。SOTIFでは、このシナリオを識別して、対策を設計する」

「対策は?」と僕は聞いた。

「いくつかある。一つ目はODDOperational Design Domain)の制限。"夕暮れ時・逆光条件ではこの機能を作動させない"と、動作条件を絞る。AEBSの場合、特定条件で機能を停止させ、ドライバーに警告する」

「二つ目はデータ収集と再学習。"その条件のデータを大量に集めてNNを再学習する"。これにより、性能限界のシナリオをカバレッジに取り込む。ただし、どれだけデータを集めても、領域(未知の安全でないシナリオ)をゼロにはできない」

「三つ目はセンサー多様化。カメラ系が弱い条件でLiDARやレーダーで補完する。マルチモーダルで冗長性を持たせることで、単一センサーの性能限界の影響を緩和する」

SOTIFとE2Eの関係

SOTIFが特に問題になるのはE2E自動運転だ」と中月さんは続けた。「従来型のルールベースシステムなら、"逆光条件での検出基準"をルールとして書ける。でも、E2ENNは中がブラックボックスだ。"なぜこの条件で性能が落ちるか"の根本的な説明が難しい」

「これがE2Eの安全認証において最も難しい問題の一つだ。ISO 26262FMEA/FTA"壊れた原因"を追う。SOTIF"性能限界のシナリオ"を追う。でも、E2ENNは、なぜ特定のシナリオで性能が落ちるかを、明確に説明できない」

「だからSOTIFでは"Statistical Validation(統計的検証)"という概念を重視する。何万シナリオも走らせて、統計的に十分な信頼性を確認する。また"Shadow Modeテスト"、つまり人間ドライバーの運転に並行してE2Eモデルを動かし、人間との乖離を記録する手法も有効だ」

「でも、統計的に十分、って、どれくらいで十分なんですか?」とニックさんが聞いた(話しているうちに彼女も合流していた)。

「そこが業界の未解決問題だ」と中月さんは正直に言った。「現時点では明確な基準がない。SOTIFはガイダンスを与えるが、"何件テストすれば十分か"という定量的な基準はまだ確立されていない。それが、E2E自動運転の型式認証が難しい理由の一つだ」

ODD ―― 動かしていい場所を決める

SOTIFの対策の中で、最も実践的なのがODDの定義だ」

ODDOperational Design Domain。この機能がサポートする動作条件の範囲。たとえばカイトのL3自動運転のODD――

 道路種別:高速道路および自動車専用道路のみ

 速度範囲:30km/h130km/h

 天候:晴天・曇天(雨天・雪・濃霧は対象外)

 照明:昼間および照明付き夜間(夕暮れ時の逆光は要検討)

 地理:HD地図カバレッジ地域のみ

 交通:特殊車両(緊急車両の逆走、工事中のイレギュラー)は対象外

「このODDの外側に出たら、システムはドライバーに制御を引き継ぐか、最小リスク機動に移行する。SOTIFの観点では、ODD"既知の安全なシナリオ(領域"として定義して、その内側での安全を統計的に検証する」

ODD外のシナリオが領域(既知の安全でない)と領域(未知の安全でない)に当たる。領域は見つけたら対策する。領域を如何に減らすか、が開発の継続課題だ」

そのとき、廊下から渡会さんが入ってきた。いつもと同じく、無言でホワイトボードの前に立ち、マーカーを手に取った。中月さんが「渡会さん、SOTIFのシナリオ分析の表、見せてもらえますか」と言った。

渡会さんは頷かずに、ただ表を描き始めた。HARAで使ったフォームによく似た表が、数十秒で埋まっていった。列見出しは「シナリオ」「センサー性能条件」「ODD/外」「SOTIF領域()」「対策」----中月さんの4象限が、実務のフォームとして結晶化していた。

「渡会さんは、どんな分析も必ず表にする」と中月さんは僕に言った。「図で語る人だ」

「つまり」とニックさんが整理するように言った。「私が見つけた夕暮れの逆光問題は、SOTIFの文脈では"既知の安全でないシナリオ(領域"として記録して、ODD"夕暮れ時逆光は対象外"と明記して、将来的にデータを集めてNNを改善してカバレッジを広げていく、という流れになるわけですね」

「その通りだ」と中月さんは頷いた。「そしてこれは、Part 4OTAの話と直結する。NNモデルを継続的に改善してOTAで更新する。そのモデル更新のたびに、SOTIFの観点で再検証する必要がある。どこまでテストすれば再認証が不要か、という問題はまだ解決途上だが」

「だから Part 3 Part 4 は繋がってるんですね」と僕は言った。

「そうだ。壊れていないのに危ない問題(SOTIF)は、AIモデルを継続更新するOTAと不可分だ。それは、この本の地図の章で藤谷さんが言っていた通り、6つの世界は互いに繋がっているということだ」

その夜のノート。

剛志のノート(26SOTIF まとめ)
SOTIFISO 21448)=「故障ではない性能限界」による危険を扱う規格。
ISO 26262は「壊れたとき」。SOTIFは「壊れていないのに危ないとき」。補完関係。
4象限:既知の安全でないシナリオ、未知の安全でないシナリオ、既知の安全、未知の安全。
SOTIFの対策:① ODD制限("夕暮れ逆光は対象外")、データ収集と再学習、センサー多様化。
E2ESOTIFNNがなぜ性能低下するかを明確に説明できない=認証の難所。
Statistical Validation + Shadow Mode Testが主な検証手法。
ODD=システムが動作保証する条件の範囲。外側でドライバー引き継ぎまたは最小リスク機動。
SOTIFOTAと不可分。モデル更新のたびに再検証が必要。Part 4へ続く。

Part 2Part 3 完)

Comment(0)