AI は山ほどのコードも作成します!調査によると、GitHub Copilot のコードは保守性が低く、リファクタリングや既存コードの再利用よりも「無意識の書き換え」を好む傾向があることがわかった。

AI は山ほどのコードも作成します!調査によると、GitHub Copilot のコードは保守性が低く、リファクタリングや既存コードの再利用よりも「無意識の書き換え」を好む傾向があることがわかった。

プログラマーは皆、AI はコードの作成に役立つと言いますが、コードの品質は本当に信頼できるのでしょうか?

結果はあなたを驚かせるかもしれません。

GitClear という会社は、過去 4 年間で 1 億 5000 万行を超えるコードを分析し、GitHub Copilot ツールを追加したことで、コードの変更率(つまり、コードが作成された直後に再作業、変更、または削除される状況) が大幅に増加したことを発見しました。

2020年の3.3%から2023年には7.1%となり、倍増することになる。

それに応じて、コードの再利用率も大幅に低下しました。

つまり、AI によって作成されたコンテンツの多くは「ゴミの山」に等しく、ビジネスの変化に応じて変更することが難しいということです。

AI プログラミング ツールは宣伝されているほど使いやすいとは程遠いようですね。

Copilotはコードを直接追加することを好み、再利用を推奨しません。

GitClear が収集した 1 億 5000 万行のコードのうち、3 分の 2 は匿名の民間企業からのものであり、残りの 3 分の 1 は Google、Meta、Microsoft のオープンソース プロジェクトからのものである。

これらすべてでは、複数のブランチでコミットされた同一のコード、空白行、その他の意味のないコード行などの「ノイズ」データが除外されます。

調査の主な対象は、Microsoft の GitHub Copilot です。

同社は2021年6月にベータ版をリリースした。CEOによると、2023年第3四半期の時点で、このツールのサブスクリプション料金を支払っている開発者は100万人を超えており、開発者はコードの46%を記述し、コーディング速度を55%向上させることができるという。

しかし、ここでは、GitClear はコーディング速度ではなく、品質のみを重視します。

「AI プログラミング ツールは、慎重で細心の注意を払う上級開発者のようなものでしょうか。それとも、目の前のタスクを完了することだけを気にする短期契約者のようなものでしょうか。」

この目的のために、彼らは 1 億行を超えるコードの追加、削除、更新、移動、コピー/貼り付けなどを数え、次のような傾向表を作成しました。

このことから次のことがわかります。

Copilot によるコードの追加とコードのコピー/貼り付けの割合は、更新、削除、移動の割合よりも大幅に増加しました。

また、モバイル コードの割合が 2020 年の 25% から 13.4% に低下していることも明確にわかります。これは、すべてのデータの中で唯一の逆の例外です。

移動が減るということは、リファクタリングと再利用が減り、コードの追加やコピー/貼り付けが大幅に増加することを意味します。これは次のことを意味します。

AI プログラミング ツールは、コードの再利用や既存コードの変更を推奨せず、「無意識の書き換え」を推奨する傾向があります。

ここで、GitClear は、新しいコードの過度の追加やコピー/ペーストも、コードの長期的な保守性に非常に悪影響を及ぼすと指摘しています。

これは実は、人間のプログラマーの間で古くからある問題です。プログラマーは、既存のコードを再利用して統合する方法を考えるよりも、現在の問題を解決する方が速くて簡単だと感じているのかもしれません。また、同じプロジェクト チーム内の開発者間のコミュニケーションが不十分なことが原因である可能性もあります。

被害を受けるのは後ろにいる整備員たちだ。

Copilot のコード品質の低下は、コード離脱率(Churn)にも反映されています。

ここでの標準的な定義は、作成後 2 週間以内に変更されるコードの割合です。

表を見ると、解約率は 2020 年は 3.3% (当時は Copilot は使用されていませんでした)で、2023 年には 5.5% に増加していることがわかります。

GitClear は、この割合が 2020 年から 2024 年には 7.1% に倍増すると予測しています。

これは、AI の高速化によって十分な品質のコードが生成されないことを示しています。

上記の結論に加えて、GitClear は、Copilot のコード提案アルゴリズムが、常にユーザーに受け入れられる可能性が最も高い提案を行うように設計されていることも発見しました。

この選択は一見合理的に思えるかもしれませんが、実際にはコードを簡潔で読みやすい状態に保つことの重要性を無視しています。

全体的に、この結果は、AI プログラミング ツールが人間のプログラマーに取って代わるのではないかと心配する人々を安心させるのに十分です。

GitClear の調査結果を裏付ける最近の研究が数多くあります。

たとえば、CodeScene のレポートでは次のように述べられています。

AI はコーディング作業において人間に取って代わるには程遠く、現在の AI は誤りやすく、既存のコードを安全に修正できるには程遠い状態です。

ネットユーザーの経験もほぼ同じ

Copilot を実際に使用した人はどのように言っているのでしょうか?

あるネットユーザーはこう言った。

AI によって与えられたコードをチェックし、バグを修正するのにあまりにも多くのエネルギーを費やしたため、2 か月後にメンバーシップをキャンセルしました。

彼の意見では、この段階では自分でコンテンツを書く方がはるかに簡単です。なぜなら、自分が書きたいことがわかっているし、ロボットのバグを修正するよりも自分のバグを修正する方が常に簡単だからです。

Copilot の代わりに ChatGPT を使用している人も、TA の言葉に同意しました。

AI の能力には驚かされますが、それでも「良いコード」とは呼べません。

もちろん、Copilot は誰にとってもまったく役に立たないわけではありません。

20年以上ウェブ開発に携わってきたプログラマーはこう言います。

本格的な SQL や TypeScript コードを記述しようとすると常に失敗しますが、テスト、リクエスト処理、React スタイルなどを作成するときには、多くの時間を節約できます。

Copilot (または他の AI コーディング ツール)の使用感はいかがですか? GitClear の調査結果に同意しますか?

<<:  GenAI の成功への道における 10 の「落とし穴」

>>:  MoEの大型モデルをゼロから構築するための神レベルのチュートリアルが登場

ブログ    
ブログ    

推薦する

...

...

開発者に人気の機械学習 API 10 選

つい最近まで、人工知能には科学者が白衣を着て研究室で研究を行う必要があると考えられていました。この科...

生成型 AI は急速な発展期を迎えています。その応用はどのように実装されるのでしょうか?

先月、国際的に有名な学術誌「ネイチャー」が2023年のトップ10を発表しました。世界的な科学イベント...

人間をより人間らしくし、機械に触覚を与えましょう!電子皮膚の専門家4人の最新の成果のレビュー

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

テスラは、Dojo スーパーコンピューターの秘密を盗み、偽のコンピューターを使用して検査を欺いたとして元エンジニアを訴える

テスラは、元エンジニアのアレクサンダー・ヤツコフ氏を提訴した。同氏は、同社内部のスーパーコンピュータ...

ジェネレーティブAIがファッション業界にもたらす変化

業界ではデザインやスキンケアに AI 技術が活用されています。一部の企業は、生成ツールを超えて、コン...

人工知能技術は民族言語の保護に大きな可能性を秘めている

現在、経済や文化の交流のグローバル化に伴い、主流言語や共通言語が勢力を増し、不利な立場にある言語は絶...

機械学習と予測アプリケーションに必要な50のAPI

[[231536]] API は、ソフトウェア プログラムを構築するためのプロトコルとツールのセッ...

準備はできたか? GNN グラフ ニューラル ネットワーク 2021 年の主要なアプリケーション ホットスポット 5 つ

[[378224]]今年から始めます。グラフニューラルネットワークは研究者の間で話題になっており、こ...

マイクロソフト リサーチの新たな成果: 携帯電話のカメラを使用して心肺バイタル サインを遠隔測定

Microsoft Research は、消費者の手に握られたスマートフォンのカメラを使用して、遠隔...

...

ソフトウェア開発プロセスの近代化における生成AIの役割

近年、ソフトウェア エンジニアリングでは、自動化の強化と開発プロセスの合理化に向けて大きな変化が見ら...

...