Intel、コードの異常パターンを自動検出する「ControlFlag」をオープンソース化:機械学習を利用した特異パターン検出システム
Intelは、機械学習に基づいてソフトウェアコードの異常パターンを自動的に検出するツール「ControlFlag」をオープンソースとして公開した。
Intelは2021年10月25日(米国時間)、自己教師あり学習に基づいてソフトウェアコードの異常パターンを自動的に検出するツール「ControlFlag」をオープンソースとして公開した。2020年12月に発表された後、Intel社内で利用されてきたツールだ。
ControlFlagはGitHubのようなバージョン管理システム上のオープンソースリポジトリをマイニングする。それにより、C/C++のような高級プログラミング言語の制御構造における一般的なパターンを学習し、新たに与えられたコードの異常を検出する。
ControlFlagは単純な誤植(タイポエラー)の検出はもちろん、NULLチェック漏れに対するフラグ付けなど、さまざまな問題検出に利用できる。
開発時間と開発コストの50%を占めるデバッグを改善
ソフトウェア開発者は開発時間の50%以上をデバッグに費やしていると推定されている。ControlFlagは、コードの異常パターンの自動検出機能により、デバッグを改善することを目指したツールだ。
Intelは、開発者がControlFlagを使ってデバッグ作業を効率化し、創造的な作業により多くの時間をかけられるようになることを期待している。
デバッグがソフトウェア開発コストに占める割合は大きい。Intelはケンブリッジ大学の研究を引用して、全世界のソフトウェア開発コストは1兆2500億ドルと推定されており、そのうち50%がデバッグに費やされていると指摘した。
ControlFlagによるデバッグの効率化は、ソフトウェア開発コストの抑制にも貢献すると、Intelは考えている。
ControlFlagの仕組みは?
ControlFlagの異常検出機能は、機械学習や形式手法、プログラミング言語、コンパイラ、コンピュータシステムを融合させたマシンプログラミングによって実現した。マシンプログラミングは近年、自動デバッグシステムの研究と実用化への応用が進んでいる。
Intelによれば、ControlFlagは次の図のように、「パターンマイニング」と「異常パターンのスキャン」という2つのステップで動作する。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Microsoft、オープンソースのAIデバッグ/可視化ツール「TensorWatch」を発表
Microsoft Researchは、データサイエンスやディープラーニング、強化学習向けにオープンソースのデバッグ/可視化ツール「TensorWatch」を発表した。Jupyter NotebookをUIに利用しているため、カスタマイズが容易だという。 - IBM、ソフトウェア開発へのAI活用を促進する大規模データセット「Project CodeNet」を公開
IBMはAIによるコードの理解と変換をサポートする大規模なオープンソースデータセット「Project CodeNet」を公開した。50種類以上のプログラミング言語で作成され、約1400万のコードサンプルで構成されている。正常に動作するコード以外にエラーを起こすコードも含まれており、AIの学習データとして役立つという。 - ソースコードがなくても「.exeをデバッグ」、Visual Studioの利用法をMicrosoftが紹介
Microsoftは、「Visual Studio」で任意の実行可能ファイルをプロジェクトとして開き、デバッグやプロファイリングを実行する機能を公式ブログで紹介した。