第3回 対談|兼本 茂 氏
ソフトウェアの安全性って考えたことありますか?
兼本 茂 会津大学 | 名誉教授
IPA/SEC IoTシステム安全性向上技術WG | 主査
荒木 泰晴 株式会社 エンベックスエデュケーション | 代表取締役
これからのIT技術者人材育成において、コンピュータを使った安全制御への信頼性、機能安全への取り組みが必要になってきています。今回安全工学の第一線でご活躍なさっている兼本氏との対談が実現しました。
荒木:兼本さんは今どのようなことに取り組まれていらっしゃいますか?
兼本:昨年まで会津大学コンピュータ理工学部で教鞭をとっておりましたが、現在はSTAMP/STPAを普及するためにIPAのWG(ワーキンググループ)の主査という立場で活動しています。
STAMP/STPAとは?
System Theoretic Accident Model and Processes/System-Theoretic Process Analysisの略号で、「システム理論に基づく新しい安全性の解析手法」という呼ばれ方をしており、複雑化するシステムの安全性を確保するための方法として、MITのナンシー・レバソン教授により提唱されたもの。
今から10年前、品質・環境・安全という流れの中の第三番目の国際規格の波として、ソフトウェアを含む機能安全規格IEC61508が制定され、日本への導入が始まりました。
それまでは機械の安全を担保するのに、ハードウェアが使われていました。
ソフトウェアはハードウェアの延長線にあったようなもので、ソフトウェアによる複雑な安全制御は使われていませんでした。
ところが、コンピュータの性能向上によりソフトウェアがどんどん巨大化・複雑化して、現在ではAI(人工知能)が、車の自動運転に使われようとしています。
そのような中で、AIを本当に安全制御に使って大丈夫?ソフトウェアによる安全制御はちゃんと検証できているの?と問われる時代になってきました。
AIで安全性を確保しましょうといっても、大きな不安は残りますよね
荒木:そうですね、今までは、安全制御のような大事なソフトウェアは、全て網羅するか機能の一部として使うか、という選択ができていたのに、AIが出てきたことで、安全に関する責任は、全部ソフトウェアがとらなくてはいけなくなってきている。センサーの劣化や誤作動までも、ソフトウェアの責任になってしまう。
AIとは言っても、そもそも人間 一人一人 、頭で思うことが違うのだから、同じものを見ても、インプットされたものは、AさんBさんで違うもの、だからアウトプットもAさんBさんで当然違うものですよね。
顔認識だって、最終のアウトプットをどう表現するかによって、インプット処理が全然違うはず、でもそれがAIなんです、と言われた時に、なんというか・・・・。
これは、確率論や信頼性理論などに基づくシステム開発の教育を、ちゃんとしなければ大変だと思いました。
特に、安全性に関しては新しい考え方の導入が必要ですよね。
兼本:AIで安全性を確保しましょうといっても、大きな不安は残りますよね。
私の専門分野の一つ、原子力発電プラントの世界では「異常があった時にはプラントを止める」という、確立された運用があります。
ですが、止めるという操作だけではあまり賢くない、つまり、不必要に止めるよりは出力を下げて様子を見る方がかえって安全という場合があるのです。
これは緩和制御といって、例えば車の自動ブレーキで、前後に人がいたり、後ろに車がいたら、急ブレーキではなく、少しゆっくり止めるようにできると良いですね。それが緩和制御という考え方です。
ただしこれは、今の安全規格の世界では、サポート(支援)システムという範疇で、安全規格に入らないんですよ。
最後の責任は、使った人間に責任があって、つくる側はそこに責任を持たない、というのが今の状況なんです。
ただ、実際事故が起これば、これからはつくる側も責任を問われるようになるでしょう。クルーズコントロールシステムや自動パーキングシステムとか、あらゆる場面でAIのような賢いシステムを使っていかなければならない中で、その安全をどう検証するかに、多くの方が苦労をしています。
その中で唯一可能性があると期待しているのが、STAMP/STPAなのですが、まだ産業界でのコンセンサスがなく十分に普及していない・・・。
荒木:それを立証をするためにIPAで活動をされ、普及することに尽力されているわけですね。
兼本:そうですね。さらにもう一つの安全制御も模索しています。止めない安全:Safety2.0というものです。
止めないで安全を担保するとは、例えば、初心者の青葉マークを付けて乗っている運転者には、速度をあまり出させない、ブレーキもゆっくりかけさせる、そうでない運転者には、スピードをもっと自由に出してもいいという風に、今までは「動かす」「止める」の2値制御だったのを、「速く動かす」「遅く動かす」という多値制御を取り入れる。
そういうものを安全規格の一環としてなんらかの形でとり入れないと、どんどん新しい製品が出てくるAI・IoTの時代に、機能安全の責任が取れなくなってくるのではないかと思っています。
そうはいっても「どうやるの?」と言われた時に、JIS規格のように型にはまった細い指示は、人にかかわる複雑システムの設計ではできません。
現実的な対応として、安全設計の人材育成、つまり、設計者に対してAI・IoT時代に合った新しい安全の考え方を教育した上で、その範囲内でシステムを設計してもらう、という考え方が大事になってくると思います。
従来、ユーザは専門家だったんです
荒木:ソフトウェアのエンジニアで、機能安全を意識して、プログラム設計をしているメンバーはすごく少ないと思います。
それこそ鳥の目(全体像を把握する目)、虫の目(細部を追求する目)というか、ユーザアビリティから、周りへおよぼす影響 つまり機能安全まで意識してやっている人は本当に少ない。
兼本:そうですね、
ソフトウェアの講義でよく使うのは、2008年の湘南モノレールの衝突事故です。モノレールのブレーキが効かなくなって、駅を通り過ごして分岐器に衝突して停車した事故なんですが、その原因が、電子回路の部品が劣化して異常割り込みが入った際にプログラムで割り込み禁止をしてしまったので、運転士がブレーキをかけようとしても、かけられなかったというものでした。
もしそのとき、そのソフトウェアを設計したエンジニアがワンランク上のレベルだったら、大事なブレーキはコンピュータを介さずにやるか、2系統にするか、別系統にするかということを考えて作るのですが、それができていなかった。
プログラムを書くときには、システム設計のアーキテクチャー(構造)を意識し、多様化・多重化という安全設計の基本から考えて書くことが重要だと思います。
荒木:まさに今、組込み制御の領域からオープンソースやIoTと、垣根がなくなってきている中でよく言われる、技術者の質ということですね。
だから余計に、体系的な教育が必要だと思います。目的をちゃんと伝えていない研修が多すぎる。
高品質の人材育成にかかわっていきたいです。
兼本:プログラマは言われた通りにつくっているし、何も悪い事はしてないんだけれども、鳥の目という立場では全体をみていない。
荒木:自動運転一つとっても、いろんな環境・ロケーションが変わるので、すごく複雑になってきますね。
兼本:従来、ユーザは専門家だったんです。
荒木:それが変わったから大変なわけなんですよね。
兼本:自動運転とか介護ロボットも、専門的な訓練を受けずに普通の人がそれを使う。
新しい製品を提供するときは、「想定外」まで予想して、きめ細かい安全に配慮した設計が必要になっています。
従来、信頼性工学というのは、故障をなくすという方法論で、故障を無くせば事故は起こらないという考え方に基づいています。でも、機械の世界で故障を無くすというのは、原理的に不可能なので、複雑システムの世界では、事故をなんとか制御して最悪の事故だけは防ぎましょうという考え方が大事になってきます。
STAMP/STPAは、従来の安全制御を補う、新しい安全性解析手法として期待されています。いろいろな工学システムへの適用を通して、その具体的な使い方や有効性の調査・検討を進めています。
ロジカルシンキングのセンスを持った人が増えてほしい
荒木:エンベックスエデュケーションでは、若いエンジニアに全国で一番大きなサイズで技術研修を提供していますが、若年層へのメッセージはありますか。
兼本:システムをつくるプログラマには、2つのタイプがあると思います。
与えた仕様書通りに、いかに速くうまく作るかに集中する人と、仕様書の欠陥をちゃんと見つけて、「どうしてこの配列のサイズでいいんですか」と疑問に思ってくれる人です。気の利いた人ですよね。
この気の利いた人っていうのは、仕様書の目的を理解しワンランク上のレベルで仕様書を理解してプログラムを作るという、いわば、ロジカルシンキングのセンスを持った人といえると思います。そういう人が増えてほしいなと思います。
会津大にいた時に学生に、複雑システムの安全制御という課題の中で、車の自動ブレーキとか列車の踏切り制御とかのシステムの中に、どんなハザードが隠れているか分析してみなさいという、研究をさせたことがあります。
トップダウンで、論理的にシステムの機能を理解しようとする学生ほど、この課題に興味を持ってくれました。
荒木:わたくしたちの事業は、単に技術プログラマを育てるだけの研修ではありません。
エンジニアになって3年先・5年先にどういう仕事ができるか、何で活躍しているかという期待値をもって、我々は研修を行っています。
そういうメッセージを持ちながら、トレーニングにかかわっていきたいなと思っているんです。
そういうメッセージを我々が持っているだけで、受講者たちの離職率にも影響するんです。研修を受けた受講者たちの離職率って、業界平均の10分の1以下かな。
兼本:AIやIoTというキーワードに代表される複雑システムの本質を理解し、そこに潜むリスクを想像した上で、安全に関わるソフトウェアを作ることができるエンジニア、そういう人を育てたいですね。
荒木:そのために、まずは、システムの安全という問題を意識してもらう、特に若い人に意識してもらう、そういった啓蒙の場を提供して行きたいと思っています。
新しい安全性解析手法に取組んでいます!
■参考資料
(1)「はじめてのSTAMP/STPA ~システム思考に基づく新しい安全性解析手法~」2015年
(2) SEC BOOKS:はじめてのSTAMP/STPA(実践編)2016年
(3) ETWest2017「IPAセミナー」講演「複雑システムの安全設計へのチャレンジ」2017年
(4) 日経テクノロジーOnline 電子記事「IoT時代の安全性検証技術」2016年