AI

車載コードの規約違反をAIで81.5%修正、社内の概念実証で確認

この記事のポイント

  1. 実現したこと

    コード修正支援AIのMISRA Copilotは、根拠と信頼度スコアを添えた修正案を生成する。

  2. 実現の仕組み

    蓄積したコード修正例をデータベース化し、検索した情報を生成に取り込むRAGで利用する。

  3. 得られた結果

    Woven by Toyotaの社内ADAS開発コードを使った概念実証で、規約違反の81.5%を自動修正した。

  4. 従来との違い

    単一モデルでの処理から、修正案の生成・レビュー・規約適合の評価を3つのエージェントに分担する構成へ変更した。

明るい開発作業スペースで、過去の車載コード修正例を参照する画面から、生成・レビュー・規約評価を示す3段階を経て、技術者が修正案を確認する流れを描いた編集イラスト。
AI生成画像

車載コードの規約違反を、過去の修正例を参照する生成AIと3つの専門エージェントで修正する。Woven by Toyotaのコード修正支援ツール「MISRA Copilot」は、社内の概念実証で違反の81.5%を自動修正した。修正案はプルリクエストとして提示され、採用は人間の技術者が判断する。

過去の修正例を生成AIの参照情報にする

コーディング規約MISRAは、組み込みシステム向けのCおよびC++コードを対象とする。Woven by ToyotaはMicrosoftと協力し、この規約への適合を支援するMISRA Copilotを開発した。生成AIの基盤にはAzure OpenAIを活用している。

修正案の生成には、Woven by Toyotaとトヨタが蓄積した過去のコード修正例を使う。修正例を構造化データベースにまとめ、外部情報を検索して生成に取り込むRAGを通じて処理へ組み込んだ。これにより、生成AIは車載ソフトウェアの修正例を参照して提案を作る。

生成した修正案を3つの役割で順に評価する

修正例を参照する生成処理は、単一モデルから複数エージェントの構成へ変更された。各エージェントは共通の文脈と持続的なメモリーを持ち、異なる役割を順に担う。最初のCoderが、MISRAのガイドラインに沿った修正案を生成する。

その修正案をReviewerが受け取り、コードの構造、可読性、保守性を評価する。続くEvaluatorは規約への適合を確認し、修正ごとの根拠と信頼度スコアを付ける。修正案を作る処理から、その品質と適合性を評価する処理までを、3つの役割につないでいる。

注釈付きの修正案を人間が採用する

評価を経た修正案は、注釈付きのGitHubプルリクエストとして提示される。MISRA Copilotがコードを自動で変更することはなく、生成した提案をレビューの対象にする。

人間の技術者は提案を確認し、採用するか却下するかを決める。最終判断と責任を技術者が担うため、自動化の範囲は修正案の生成と評価までとなる。

ADAS開発コードで修正率81.5%を評価

Woven by Toyotaの社内の先進運転支援システム(ADAS)開発コードを使った概念実証では、MISRA Copilotが規約違反の81.5%を自動修正した。生成したコードの97.1%は構文上正しかった。規約違反の修正率と構文上の正しさは、それぞれ別の評価結果である。

この自動修正率は、概念実証におけるコード修正の成果を示す値であり、修正案の採用を自動化した割合ではない。ツールは導入の可能性を検討するため、追加評価の段階に進んでいる。