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の大型モデルをゼロから構築するための神レベルのチュートリアルが登場

ブログ    
ブログ    

推薦する

人工知能システム:無制限の核融合反応を現実のものに

近年、研究者らはトカマクの停止や損傷の原因となる核分裂反応を研究している。核分裂反応を予測・制御でき...

人工知能はスポーツや芸術教育における革新的な発展をどのように促進できるのでしょうか?

[[407981]]著者テンセント研究所の上級研究員、周丹氏趙雲傑 テンセント研究所 研究助手20...

ChatGPT-4 に基づく IDEA スマート アシスタントの使い方を教えます

遅れて気づいて申し訳ありません。この記事を読んでいる友人の中には、すでにこのプラグインをインストール...

最初のソフトウェア特許取得者は93歳で亡くなった。彼はソフトウェアの知的財産権保護を獲得した。

世界初のソフトウェア特許を保有していた人物が亡くなった。彼の名前はマーティン・アルビン・ゲッツで、「...

Keras+LSTM+CRF を使用した固有表現抽出 NER の練習

[[339715]]テキスト分割、品詞タグ付け、固有表現認識は、自然言語処理の分野では非常に基本的な...

...

...

Google BardとChatGPT、どちらを選ぶべきでしょうか?

こんにちは、ルガです。今日は、人工知能 (AI) エコシステムに関連するテクノロジーについて、Goo...

AIが70年間で急成長した理由が明らかに!タイム誌の4枚の写真がアルゴリズムの進化の謎を明らかにする

過去 10 年間の AI システムの進歩のスピードは驚くべきものでした。 2016年の囲碁対局でアル...

VRシルキーパノラマはもうすぐそこ? Googleの360°NeRFは人々に未来を垣間見せる

少し前に、CVPR 2022 が今年の論文採択結果を発表しましたが、これは提出された論文がようやく沈...

...

ディープラーニングの父が懸念:データ漏洩、AI兵器、批判の欠如

[[254553]]マーティン・フォードは2015年に出版した『ロボットの台頭』で大きな話題を呼びま...

...