Site icon imageMichio BLOG

AutoMarineSIの概要

AutoMarineSIをGitHubにアップロードしました。

AutoMarineSIは入力されたヒヤリハットレポートから将来起こり得る事故を推論させる、OpenAIのGPT3/4を利用したPythonスクリプトです。

ここでは簡単にその構造と開発背景をまとめます。

どのように動作するのか

AutoMarineSIの概念図を以下に示します。(1)ユーザーが入力したヒヤリハットレポートの内容から過去の類似事故報告書を抽出し、(2)抽出したデータをもとに起こり得る事故を推論した上で、その結果と安全対策を出力します。

Image in a image block
AutoMarineSI概念図(2023/6/25 作成)
(1) 過去類似事故例を抽出する手順

事前準備:

過去の事故報告書データに収録されている事故原因をAddEmbedding.pyを使ってベクトルデータに変換します。

利用するモデルはOpenAI “text-embedding-ada-002”をデフォルトとしています。ベクトルデータは事故事例データに含まれる他の項目(発生日時や場所、報告書のURLなど)をメタデータとしてPineconeデータベースに登録する必要があります。Pineconeへの登録にはToPinecone.pyを使用します。

類似データの抽出:

入力されたヒヤリハットレポートはAutoMarineSI.pyが処理します。まず、入力されたヒヤリハットレポートをEmbeddingのベクトルデータに変換します。次に、Pineconeに予め登録された過去の事故原因と比較し、類似事例を抽出します。抽出にはコサイン類似度を使用します。AutoMarineSI.pyは予め指定された件数だけ類似事例を抽出します。抽出件数は(検証していませんが)過去の事故データの件数によって変える必要がありそうです。

(2) 将来起こり得る事故事例の推論と安全対策

AutoMarinSI.pyはプロンプト、入力されたヒヤリハットレポート、抽出した類似事故データのメタデータをGPTに渡します。その結果としてGPTが返してきた値をそのまま表示します。"Foreseeable accident summary: ”はGPTが予見した事故事例で、 "Safety measures:” は安全対策を意味します。その後、類似事故事例の上位5件のデータを表示することができます。これはGPTが関係のない事故を連想していないかを検証するのに利用できます。

なぜ過去の事故データを利用するのか

私の専門分野である大型船の運航では、単独の要因が事故に繋がるのではなく、複数の要因が重なった時に初めて事故につながると言われています。逆に言えば、過去の事故での要因のどれか1つとヒヤリハットのそれが類似していれば、そのヒヤリハットが過去の事故と同じ事故につながる可能性があると言えます。

Image in a image block

過去に発生した事故報告書には事故の要因が概要やタイムラインの形で収録されていることが多く、類似性を検索できれば、ヒヤリハットから発生の可能性のある事故の予見ができるのでないかと考えたのがAutoMarineSIを製作したきっかけです。

📎
日本の船舶(運航)分野ではハインリッヒの法則スイスチーズモデルがよく利用されます。

今後、何を期待するのか

AutoMarineSIが本当に事故を予見できるかの検証はまだできていませんが、現場からヒヤリハット報告を受けた会社(MarineSI)は、それを取りまとめて現場にフィードバックする必要があります。その作業はAutoMarineSIと似たプロセスを踏んでいるため、少なくとも事務作業のアシスタントにはなり得ると考えています。

AutoMarineSIはまだプロトタイプであり、プロンプトやデータの読み込み手順には検証、検討の余地があります。例えば、類似した事故事例を抽出した後、それらが重大事故であった場合には報告書のURLにアクセスして、さらに詳細に推論を行うことが考えられます。

また、私のアイディアだけでは限界があるため、ソフトウェアエンジニア、ドメインエキスパートの両方のプロフェッショナルとともに今後発展できればと思っています。

謝辞

AutoMarineSIの製作のきっかけは、中島聡氏のメールマガジン「週刊 Life is beautiful」でした。Embeddings + ChatGPTの活用可能性の気づきを与え、さらにその後の質問にも答えて下さいました。このEmbeddings + ChatGPTの組み合わせとの出会いは間違いなく自分の中で何かが変わった瞬間でした。中島聡氏に改めてお礼申し上げます。

また、スクリプト作成には OpenAI cookbook を参考に、またコーディングはChatGPTの力を借りました。これらの技術開発に携わっている技術者、関係者の皆様に厚くお礼申し上げます。