
Image Credit: Khari Johnson / VentureBeat
Microsoftは、同社に対し顧客から報告されるソフトウェアバグを、セキュリティー・非セキュリティーの括りにて99%の確率で正確に区別し、クリティカルで重要度の高いセキュリティーバグについては平均して97%の成功確率で順位付け可能なシステムを開発した。同システムは数カ月の内に、GitHub上にてオープンソース化されるという。
システムは、AzureDevOpsならびにGitHubレポジトリに保存される同社4万7000人のデベロッパー1300万件の作業物・バグデータセットを活用し開発された。Coralogixによれば、開発者は平均して1000行のコード辺り70個のバグを生み出すとしており、バグの修正には1行のコードを書くより30倍の労力を要するとしている。
同社によれば、モデル構築に際しセキュリティーの専門家が承認したトレーニングデータを使用し、統計的サンプリングに基づいてデータのレビューを実施したという。その後、データは「特徴量ベクトル」にエンコードされ、2段階のプロセスを経てシステムの設計が取り組まれる。その後、システムに対しデータがセキュリティーに対しクリティカルかどうかの判断を下すことが出来るよう学習させる。続けて、セキュリティーバグの場合には重要度のラベリングを可能とする学習が施された。
Microsoftが今回開発したモデルでは、バグ予想のために2つの技術を活用している。1つ目がTF-IDF(term frequency-inverse document frequency algorithm)だ。データ内における単語に対し重要度を振りわけ、全体の中でどれだけ関連性があるかを見極めるアプローチとなる。2つ目がロジスティック回帰モデルで、クラスやイベントが発生する確率をロジスティックス関数を基に算出する手法だ。
ソフトウェアにおけるバグを取り除くために、機械学習を使用しているのは同社だけではない。AmazonのCideGuruでは、社内開発のコードレビューやアプリに対して部分的学習を施し、漏洩や無駄なCPUサイクルの過多を発見するために利用されている。Facebookでは、エンジニアの手に届く前にバグ修正を生成するSapFixや、コードの動作と機能をマッピングし、潜在的なバグを探し出すZoncolanと呼ばれるツールが利用されている。
【via VentureBeat】 @VentureBeat
BRIDGE Members
BRIDGEでは会員制度の「Members」を運営しています。登録いただくと会員限定の記事が毎月3本まで読めるほか、Discordの招待リンクをお送りしています。登録は無料で、有料会員の方は会員限定記事が全て読めるようになります(初回登録時1週間無料)。- 会員限定記事・毎月3本
- コミュニティDiscord招待