大きな工場の事務
見出し
情報
Dao Wei
超神経質で
有名なゲーム開発会社 Ubisoft とオープンソース技術メーカー Mozila は最近、エンジニアにバグ警告および修正機能を提供するために共同開発したプログラミング支援ツール Clever-Commit をリリースしました。
「Python の作成を支援することは、AI がプログラマーを置き換える最初のステップにすぎません」という記事を公開し、エンジニアがコードを書くプロセスでコードの品質と作業効率を向上させるのに役立つ AI ツールが増えていることを紹介しました。
たとえば、GitHub CEO が投資した Kite は、現在の運用環境に基づいて、コード スニペット、関数呼び出し、ドキュメント デモ クエリをインテリジェントに完了できます。 Kite のせいで、AI の野心は人間を助けるだけでなく、最終的にはエンジニアの機能に取って代わることでもある、と私たちはかつてからかったことがあります。
もちろんこれらは冗談ですが、今後、AIが職人を完全に置き換える可能性は高くないと思われます。
最近、Mozila と Ubisoft が共同開発した AI コーディング アシスタント Clever-Commit が登場しました。その役割は、Firefox を支えるエンジニアをバグから救うことです。 Mozila は 2 月 12 日、Ubisoft と協力してこのツールの使用を開始し、コード作成の効率を高め、Firefox ユーザーに優れたブラウジング エクスペリエンスを提供するというメッセージを発表しました。
Clever-Commit の前身は、Ubisoft が昨年発売した Commit-Assistant です。
Commit-Assistant は、バグを見つけて修正を推奨するシステムで、開発者がゲーム エクスペリエンスを向上できるように支援するコード アシスタントです。この AI アシスタントの誕生は、その膨大なコード ベースの恩恵を受けています。トレーニングの際には、多くのバグが修正されたコードを含む、ユービーアイソフトの約10年分の動作コードを受け取ったという。
このような背景から、Mozlia と Ubisoft は協力して、Clever-Commit のアップグレード バージョンをリリースしました。
Clever-Commit は補助プログラミング ツールで、簡単に言うとコードをチェックするための AI アシスタントです。開発者がコードの変更を Firefox コードベースに送信すると、新しく追加されたコードと以前のコードを比較して、特定されたバグに類似しているかどうかを確認できます。新しく送信されたパーツが疑わしいとアシスタントが判断した場合、開発者に警告します。
アシスタントの判断精度が高ければ、ソースリポジトリに送信される前にバグを検出して警告できることになります。一部のバグについては、Clever-Commit が適切な修復提案を行うこともできます。
Mozilla は、まずコードレビュー中に Clever-Commit を使用し、その後時間をかけて他の開発フェーズに拡張する予定です。 Mozilla が Firefox に使用する 3 つの言語 (C++、JavaScript、Rust) で完全に動作することは言及する価値があります。
実際、その出現は避けられず、障害を自動的に防止し解決することがソフトウェア開発の唯一の方法です。既存の方法では、コードとプロセス メトリクスを利用してメトリクス ベースのモデルを構築し、ソフトウェア プロジェクトへの欠陥の挿入を効果的に防止できます。
ここで使用されているテクノロジーは CLEVER と呼ばれます。これは、ユービーアイソフトとコンコルディア大学の研究者によって最初に開発されたもので、かつて「CLEVER: 大規模産業プロジェクトにおけるジャストインタイムの障害防止と解決のためのコード メトリクスとクローン検出の組み合わせ」という論文を執筆しました。で詳細が説明されており、一般に、レベルのバグ防止と解決を組み合わせたテクノロジです。
記事のアドレス: https://montreal.ubisoft.com/wp-content/uploads/2018/05/ICSE-CE-MSR-165.pdf
その主なポイントは、コードを追加するときにそれが危険な部分であるかどうかを正確に判断し、それを傍受または修復することです。
実装方法には主に 2 つの段階があります。最初の段階では、新しく追加されたコードが危険なコードに類似しているかどうかを判断できるライブラリを構築します。2 番目の段階では、これらの一見危険なコードをクローン領域に追加します。コードを確認し、それが危険なコードかどうかを判断します。
また、CLEVERは現在のプロジェクトの評価だけでなく、関連する他のプロジェクトも考慮して判断するため、より高いインテリジェンスを実現します。コードベースのマッチングとこれまでのデータ蓄積に基づいて、CLEVER はバグの特定率と改善提案の点でトップレベルにあります。
CLEVER がなぜ優れているかといえば、その背後に強力なリソースがあるからです。 Ubisoft はビデオ ゲーム界の巨人で、高予算ビデオ ゲームの設計と実装を専門としています。
Ubisoft ソフトウェア システムは高度に結合されており、数百万のファイルとコミットが含まれており、6 大陸の 29 か所で 8,000 人を超える開発者によって開発および保守されています。これは、CLEVER の開発とトレーニングに特有の利点です。
CLEVER のパフォーマンスを比較するために、12 台の Ubisoft システムでテストを実施しました。その結果、CLEVER は危険なコードの提出に対して 79% の精度と 65% の再現率を達成し、同様の手法である Commit-guru (66) を上回りました。 % の精度と 63% の再現率)のパフォーマンス。さらに、CLEVER は、危険なコミットの 66.7% を修正する方法を開発者に推奨することができました。
CLEVER テクノロジーを応用した Clever-Commit は、Mozilla の開発プロセスに完全に統合されれば良好な結果が期待され、開発者の苦痛も大幅に軽減されます。提出する前に 4 ~ 5 つの脆弱性を発見すると、提出後に発見するよりも多くのリソースを節約できます。
Firefox のエンジニアリング チームは、コード作成、テスト、リリースのプロセスで Clever-Commit の使用を開始すると発表しました。このアプローチにより、脆弱性リスクの分析と検出にかかる数百時間の節約が期待されています。
機械学習を使用して大規模なコードベースのバグをトラブルシューティングする試みは他にもあります。
昨年、Microsoft は Visual Studio で同様のツール IntelliCode をリリースしました。
IntelliCode は、最も人気のあるパブリック GitHub リポジトリ (それぞれ 100 以上のプロジェクトからなる 2,000 以上のプロジェクト) を調査して、ベスト コーディング プラクティスの特徴を発見したと報告されています。
IntelliCode の当初の目的は非常に保守的で、他のプロジェクトが同じ API を使用する方法に基づいて、どの提案が使用される可能性が高いかを理解することにより、よりスマートな IntelliSense 補完提案を提供します。また、コード記述スタイルに似た方法でコードを記述できるように、コーディング スタイルと空白の使用を検出するためにも使用されます。
Clever-Commit と同様に、IntelliCode を使用してバグを見つけることができます。開発者の欠点をタイムリーに修正します。