ホーム » 情報 » (AIはバグの発見に役立ちます。IntelのオープンソースコードプログラミングツールControlFlag)

(AIはバグの発見に役立ちます。IntelのオープンソースコードプログラミングツールControlFlag)

Posted by: Yoyokuo 2021-12-03 (AIはバグの発見に役立ちます。IntelのオープンソースコードプログラミングツールControlFlag) はコメントを受け付けていません

コードのデバッグ時間とコストを削減

コードのデバッグはプログラム開発に不可欠であるため、ソフトウェアエラーを最大限に回避するには、ほとんどすべての大規模ソフトウェアをデバッグする必要があります。

しかし、ほとんどの開発者にとって、このプロセスは非常に時間がかかるだけでなく、ほとんどのデバッグは手動でしか実行できません。 ソフトウェアの欠陥の修復には数日、数週間、さらには数か月かかる場合があるため、ソフトウェア開発時間の最大50%がプログラムのデバッグに費やされていると推定されます。 これは、ほとんどのエラーが根本原因を特定して評価するためにセマンティック分析を必要とし、最も高度なデバッグシステムでさえこの分析を効果的に実行できないためです。

IntelLabsのチーフ人工知能科学者であるJustinGottschlich氏も、次のように述べています。 これは、デバッグの主な理由でもあります。 人間主導のプロセスの主な理由。」

さらに、コードをデバッグするための予算も非常に高くなります。 Intelの公式紹介によると、IT業界は2020年にコード関連リンクのデバッグに約2兆米ドルを費やし、平均IT予算の約半分を占めています。

「スーパーパワー」ControlFlag

このシステムは、IntelのMachine Programming Research(MPR)プロジェクトの一部であると報告されています。 プロジェクトの全体的な目標は、自動化によってソフトウェアの開発に必要な時間を1,000分の1に短縮することです。 たとえば、Gottschlichのチームが取り組んでいる分野の1つは、最終的にControlFlagの機能を拡張して、検出したエラーを自動的に修正することです。

昨年の発売以来、Intelはさまざまなソフトウェアシステムで機械学習ツールをテストし、満足のいく結果を達成してきました。 「最初にシステムを設計したとき、非常に複雑な欠陥が見つかるとは思っていませんでした」と、IntelLabsの主任人工知能科学者であるJustinGottschlich氏は述べています。 「しかし、その自己監視設計により、ControlFlagは非常に複雑で微妙なソフトウェアの欠陥を見つけることができ、それを構築した私たちでさえショックを受けました。」

Intelチームは、「教師なし」学習方法を使用して、ControlFlagがより広いリポジトリでエラーを検出できるようにしました。 このシステムは、10億行を超えるラベルのないソースコードからコーディングパターンを学習し、高精度を実現し、開発者のスタイルに適応して、ソフトウェアの異常やプログラミング言語のスタイルの変更を区別できるようにします。

ControlFlagは、制御構造(C / C ++など)を含むすべてのプログラミング言語に適しており、ControlFlagは、マークされていないソースコードから継続的に学習し、新しいデータの導入によって「進化」して、それ自体を改善します。 検出したコードエラーを自動的に解決することはできませんが、ツールは開発者に潜在的な変更の提案を提供できます。

Justin Gottschlichはまた、これまでに2つのプロプライエタリソフトウェアリポジトリでのみControlFlagを使用して、本番品質と展開されたプログラムに300を超える欠陥が発見されたと述べました。 たとえば、昨年、ControlFlagは、クライアントURL(cURL)と呼ばれるコンピューターソフトウェアプロジェクトでコードの異常を検出しました。このプロジェクトでは、さまざまなネットワークプロトコルを使用して、1日に10億回以上データを送信していました。 異常をcURLチームに報告した後、彼らはControlFlagの発見に同意し、問題を修正するためにコードを再設計しました。

ControlFlagを継続的に改善

IntelチームはControlFlagの開発に取り組んでいるため、この1年でかなり多くの学習ポイントがもたらされました。 Gottschlichは、改善のための2つの重要な領域は、ツールによって報告される誤検知の数を減らすことと、より高度なセマンティックアナライザーをControlFlagの推論に統合することであると考えています。

ただし、Intelのマシンプログラミングツールスイートの1つになるシステムとして、ControlFlagは進化し続けます。 「ControlFlagの進歩が止まる可能性は低いです」とGottschlich氏は強調しました。 「これは主に、ソフトウェアプログラミング言語、ハードウェア記述言語、およびコンピューティングデバイスの開発に伴い、ControlFlagもそれらに対応するために進化する必要があるためです。」

同時に、インテルのMPRチームは、ソフトウェア開発の簡素化に焦点を当てたプロジェクトに取り組んでいます。 たとえば、昨年、同社はマサチューセッツ工科大学の研究所と共同開発したツールをリリースしました。このツールは、コードスニペットを調べて、ソフトウェアの目的を理解することができます。 このシステムはMISIM(Machine Inferred Code Similarity)と呼ばれ、既存のコードカタログを使用して新しいアルゴリズムの背後にある意図を理解し、エンジニアが他のプログラミング方法を提案したり、コードをより効率的にするためのオプションを提供したりすることでソフトウェアを開発するのに役立ちます。

Gottschlichは、MISIMがいつかControlFlagで動作することを期待しています。 「適切なアイデアが融合されたとき、ControlFlagが現在検出できるすべての欠陥と、潜在的な複雑さのために現在検出できない何百もの欠陥を検出できる、より強力な新しいシステムを構想しました。 「ゴットシュリッヒは言った。