Intelの自動コードデバッグツール「ControlFlag」がオープンソースとして公開され、無料で利用できるようになった。この動きは、潜んでいる異常を見つけるためにプログラムを精査することに疲れた多くの人にとって救いとなるだろう。
提供:LukaTDB / Getty Images
ControlFlagは、機械学習を利用してソフトウェアやファームウェアのコードに存在するバグを自動的に検出するツールで、書いているプログラムのデバッグを開発者が手動で行うという、時間がかかる作業を軽減してくれる。
2020年末に発表されたControlFlagは、これまでIntelの社内でだけ、自社のソフトウェア開発で異常を発見するために使われてきた。Intelは、このツールを社外の開発者に解放して、それを元に開発を行えるようにすることで、コーディングのプロセスを合理化するためにできることが広がるのを期待している。
デバッグは、プログラムの開発においては重要な作業だ。大規模なソフトウェアのほとんどは、精度や、性能や、セキュリティに関わるバグを抱えており、それらを修正していく必要がある。さらに、新機能を追加するなどしてプログラムがアップデートされるたびに、新たな異常が入り込む可能性が生じる。
しかし大多数の開発者にとって、このプロセスは、時間がかかる上にほとんど手作業で行われる煩雑な作業だ。ほとんどのバグは、根本的な原因を特定して評価し、修正するためにセマンティック分析が必要だが、最先端のデバッグシステムでさえ、この分析を効果的に行うことはできない。
Intel Labsの主席人工知能(AI)サイエンティストであるJustin Gottschlich氏は、米ZDNetの取材に対して、「歴史的に、このようなセマンティック分析は、単純にソフトウェア開発者しか行えない仕事だった」と述べ、「このことが、今もデバッグ作業が主として人手によるプロセスである主な理由だ」と付け加えた。
この数十年で、デバッグを自動化しようとする試みに進歩が見えてきたが、既存のツールは、複雑になる一方のソフトウェアのバグに太刀打ちできていない。開発者がデバッグ作業をひどく嫌うのは、1つのソフトウェアの不具合を修正するのに、何日も、何週間も、時には何カ月もかかるからだとGottschlich氏は言う。実際、デバッグに費やされている時間は、最大でソフトウェア開発時間の50%にもおよぶと見積もられている。
これは、企業にとっても高くつく。Intelによれば、IT業界は、2020年のソフトウェア開発費用のうち、2兆ドル(約220兆円)をコードのデバッグに関連する費用に費やしたと推計されている。これは平均的なIT予算の約半分に相当する。
ControlFlagは、異常検知と呼ばれる機能によってこのギャップを解消するように設計されている。このツールは、過去の例から学習して通常のコーディングパターンを検出できるようになっており、プログラミング言語に関わらず、バグを引き起こす可能性が高い異常な部分を特定することができる。
Intelのチームは、ControlFlagを使って幅広いリポジトリーでバグを発見できるようにするためには、教師なし学習のアプローチが必要だと判断した。このシステムは、10億行以上のラベル付けされていないソースコードからコーディングのパターンを学習することで高い精度を実現し、さらに開発者のスタイルに適応して、ソフトウェアの異常とプログラミング言語のスタイルの違いを区別することができるようになった。