Code Defect AI
Altran は、バグのリスクが高いソース コード ファイルを予測する、機械学習分類器を開発しました。 開発者には、特定の予測の際に使用された説明と要因が提示されます。
Code Defect AI の詳細を見る
ニーズ
バグは、ソフトウェア開発において確実に存在します。 開発ライフ サイクルにおいてバグが見つかるのが遅ければ遅いほど、修正するコストがより高くなります。 デプロイ後に不具合が見つかると顧客に影響が及び、開発者は問題を再現するのに多くの時間を費やしてから修正プログラムを発行します。 このようなバグ - デプロイ - 分析 - 修正といったプロセスには、時間とコストがかかります。
アイデア
ソフトウェア プロジェクトのコード ベースの特定のパターンは、バグを引き起こすリスクを高めます。 これらのパターンは分類学習アルゴリズムによって学習でき、ファイルにバグがある可能性を予測できます。 これにより、不具合の早期発見が可能になり、バグ修正のコストを最小限に抑えることができます。
ソリューション
カスタム分類モデルが、過去のコミットに関連付けられたメタデータに基づいて、GitHub プロジェクト用に作成されています。 Code Defect AI が新しい開発者のコミットを検出すると、コミット内のファイルに欠陥のリスクがあるかどうかを予測します。 予測の背後にある根拠は Local Interpretable Model-Agnostic Explanations (LIME) を使用して提示されるため、開発者は予測を信頼して学ぶことができます。
デプロイ前にバグをキャッチ
ソフトウェアは、コーディング、テスト、バグの発見、修正のためのコーディングに戻る、というサイクルを多く経て開発されます。 Altran と Microsoft は、Azure に機械学習モデルを導入し、サイクルを減らして開発の初期段階でバグのリスクを特定できるようにしました。これにより、時間とコストが節約できます。
Code Defect AI 実験の技術的詳細
機械学習の教師あり学習により、アルゴリズムは入出力ペアの履歴例、つまりラベル付きデータに基づいて出力を予測できます。 出力変数が離散変数である場合、教師あり学習は分類問題と呼ばれます。 ソフトウェア プロジェクトのコード ベースの特定のパターンは、バグを引き起こすリスクを高めます。 たとえば、新しい開発者が以前からバグの発生率が高いファイルに変更を加えている場合、コミットには複数のディレクトリにまたがるファイルが含まれるか、コードの更新がファイルの複数の領域に分散されます。 これらのパターンは分類学習アルゴリズムによって学習でき、コミットのファイルにバグがある可能性を予測できます。 これにより、不具合発見の左シフトが可能になり、不具合修正のコストを最小限に抑えることができます。
3 つのカスタム分類モデルは、履歴コミットに関連付けられたメタデータに基づいて、3 つの GitHub プロジェクト用に作成されています。 モデルをトレーニングするためのラベル付きデータは、GitHub リポジトリから収集されたメタデータを使用して作成されています。 Code Defect AI は、新しい開発者のコミットを検出すると、各コミットとコミット内ファイルのメタデータを取得します。 次に、プロジェクト固有のモデルを使用して、コミット内のファイルのいずれかにバグが発生するリスクがあるかどうかを予測します。 従来の機械学習モデルはブラック ボックスであり、モデルの予測の裏付けに根拠はありません。 ユーザーが予測に対して信頼をより高めることができるように、Local Interpretable Model-Agnostic Explanations (LIME) を使用して予測の裏付けの根拠を示します。
リソース:

Sketch2Code
Sketch2Code は、手書きの図面を HTML プロトタイプに変換します。 デザイナーがホワイトボードでアイデアを共有すると、変更が即座にブラウザーに表示されます。これにより、デザイナー、開発者、顧客間のコラボレーションが向上します。

JFK Files
JFK Files は、写真、手書きドキュメント、政府ドキュメントなどを含む 34,000 ページもの複雑なファイルを取り込み、判読可能な情報を抽出します。 この知識は、新しい方法で情報を探索できるよう整理されます。

Spektacom
Spektacom は、クリケットのバットに小さなシール式センサーを貼り付けて、打質、バットの速度や角度、打ち方に関するデータを収集します。 このデータはショットの質を分析するために使用され、プロ、アマチュア、コーチがスキルを改善するのに役立ちます。

PoseTracker
PoseTracker は、ディープ ラーニングを使用して、オブジェクトの位置と方向を追跡します。 このソリューションでは、スマートフォンのカメラを使用して、アイテムの角度、向き、距離をリアルタイムで測定および追跡します。