ソフトウェア更新のバグを、数日ではなく数時間で発見するツール

software tool computing code error programming languages algorithm machine learning deep computer scientist performance autonomous
“Updating software can sometimes turn on you when errors creep in and cause slowdowns."Image: Unsplash/Markus Spiske
このページは、生成AIにより自動翻訳されています。

新たなツールは、ソフトウェア更新によって生じるエラーの発生源を特定します。

ソフトウェア更新によってアプリケーションの実行速度を上げようとしたはずが、かえって逆効果になってしまう。これは、よくある悩みです。コンピュータサイエンスの分野で「パフォーマンス・リグレッション」と呼ばれるこれらのバグは、ソフトウェアのエラーを特定するのに通常多くの人手を要するため、修正に時間がかかります。

この課題を克服するため、テキサスA&M大学の研究者らは、インテル・ラボのコンピュータサイエンティストと共同で、エラーの発生源を完全に自動で特定する方法を開発しました。ディープラーニングと呼ばれる特殊な機械学習に基づくこのアルゴリズムは、導入が容易なだけでなく、迅速でもあります。パフォーマンスのバグを、数日ではなく数時間のうちに発見します。

「ソフトウェアの更新は、エラーが混入して処理速度低下を引き起こすと、かえって問題になることがあります。この問題は、継続的に進化する大規模なソフトウェアシステムを使用している企業では、さらに深刻です」と、コンピュータサイエンス・工学科の助教授であるアブドラ・ムザヒド氏は述べています。「我々は、パフォーマンス・リグレッションを診断するための便利なツールを設計しました。このツールは、さまざまなソフトウェアやプログラミング言語に対応しており、その有用性は大きく広がります」

パフォーマンスカウンター

ソフトウェア内のエラーの発生源を特定するため、デバッガーは多くの場合、中央処理装置内にあるパフォーマンスカウンターの状態を確認します。これらのカウンターは、例えばメモリ内でプログラムがコンピュータのハードウェア上でどのように実行されているかを監視するコードの行です。ソフトウェアが動作すると、カウンターは、特定のメモリ位置にアクセスした回数、そこにとどまる時間、終了のタイミングなどを記録します。そのため、ソフトウェアの動作に異常が生じた場合にも、診断のためにカウンターが再び使用されます。

「パフォーマンスカウンターは、プログラムの実行状態の健全性を示す指標になります」とムザヒド氏は述べています。「そのため、あるプログラムが本来の通りに動作していない場合、これらのカウンターには通常、異常な動作を示す特徴的な兆候が現れます」

しかし、最新のデスクトップ機やサーバーには数百ものパフォーマンスカウンターがあり、その状態をすべて手動で追跡し、パフォーマンスエラーを示す異常なパターンを探すことは、事実上不可能です。ここでムザヒド氏の機械学習が役立ちます。

バグを見つける

ディープラーニングディープラーニングを用いることで、研究者らは多数のカウンターから得られるデータを同時に監視できるようになりました。これは、画像形式を変えることで高解像度の画像を元のサイズの一部まで圧縮するのと似た方法で、データのサイズを縮小することによって実現しました。低次元化されたデータに対して、アルゴリズムは通常の状態から逸脱したパターンを探すことができます。

アルゴリズムが完成すると、研究者らは、企業が数値やデータを管理するために使用している市販のデータ管理ソフトウェアで、パフォーマンスのバグを発見・診断できるかどうかを検証しました。まず、古い不具合のないバージョンのデータ管理ソフトウェアを実行し、通常のカウンターデータを認識するようアルゴリズムを学習させました。次に、バグのある更新版ソフトウェアでアルゴリズムを実行しました。その結果、アルゴリズムは数時間以内にバグを特定して診断できることが分かりました。ムザヒド氏は、このような分析を手作業で行うと、かなりの時間を要する可能性があると述べています。

ムザヒド氏は、ソフトウェアのパフォーマンス・リグレッションの診断に加えて、このディープラーニング・アルゴリズムは、自動運転に必要な技術の開発など、他の研究分野においても応用できる可能性があると指摘しています。

「基本的な考え方は、やはり同じです。異常なパターンを検出できるかどうかということです」とムザヒド氏は述べています。「自動運転車は、前方に車があるか人がいるかを検出し、それに応じて行動できる必要があります。つまり、これもまた異常検知の一形態であり、良いニュースは、我々のアルゴリズムがまさにそのために設計されていることです」

研究者らは、その研究成果を、12月に開催された神経情報処理システム国際会議で発表しました。

本研究は、米国国立科学財団およびインテルの支援を受けました。

ライセンスと再掲載について
世界経済フォーラムの寄稿文は、クリエイティブ・コモンズ表示-非営利-改変禁止 4.0 国際ライセンスおよび同フォーラムの利用規約に従い、再掲載が可能です。