AIが勝手にコピペしていた
「ChatGPTに頼んでプログラムを作ってもらった」「GitHub Copilotが自動で補完してくれた」――いまや、こうした光景は開発現場の日常だ。しかし、その便利さの裏側で、深刻な問題が静かに広がっている。
AIが生成するコードの中に、既存のプログラムとそっくりな"コピペコード"が大量に紛れ込んでいるのだ。
国際的な研究会議FSEで2025年に発表された調査によれば、商用のAIツールが出力するコードの最大7.5%が、既存コードとほぼ同一か、変数名をちょっと変えただけのものだという。これは決して小さな数字ではない。100行のコードを書けば、7~8行は「どこかで見たことがあるコード」なのだ。
なぜこんなことが起きるのか。理由は単純だ。AIは過去のプログラムを大量に学習して育っている。そのため、よくあるパターンの処理を頼まれると、学習した既存コードを「思い出して」そのまま出力してしまうことがあるのだ。
問題は、開発者の多くがそれに気づいていないことだ。「AIが作ったから新しいコード」と信じ込んで、そのまま自社のシステムに組み込んでしまう。すると、企業の中に出所のわからないコピペコードが静かに積み重なっていく。
「見た目は違うのに中身は同じ」という厄介さ
さらに厄介なのは、見た目はまったく違うのに、やっていることは同じというコードが増えていることだ。
たとえば、「数字を合計する」という処理をAIに頼んだとしよう。あるときはPythonで、あるときはC++で、別の機会にはJavaで――AIは毎回、言語に合わせて違う書き方をしてくれる。一見すると別々のコードに見えるが、実は中身のロジックはまったく同じなのだ。
これを専門用語で「意味的クローン」と呼ぶ。困ったことに、従来のチェックツールでは、この種の重複を見つけられない。文字列を比較するだけでは、「見た目が違えば別物」と判断されてしまうからだ。
2024年の研究では、最新のAI検出ツールでも、文字が似ているコピペは見つけられるが、この「意味的クローン」になると精度が急激に落ちることが確認されている。つまり、AIが作る"目に見えない重複" が、企業のシステムの中でどんどん増えているのだ。
じわじわ広がる三つの危機
こうしたコピペコードの蓄積は、企業にどんな影響を及ぼすのか。大きく分けて三つのリスクがある。
1. 品質が落ち、保守が地獄になる
似たようなコードがシステムのあちこちに散らばっていると、何か問題が見つかったとき、全部を修正しなければならない。しかも、どこに何があるか把握できていないので、修正漏れが起きる。
2023年の研究によれば、コピペの多いプログラムほどバグが多く、長期的に品質が劣化していくことが確認されている。実際、修正が必要な重複コードの57%以上がバグに関係していたというデータもある。
開発当初は順調でも、数年後には「誰も触りたくない複雑なシステム」になってしまう危険がある。
2. セキュリティの穴が一気に広がる
もしAIが生成したコードに脆弱性があったとしよう。それが複数の場所にコピーされていれば、セキュリティの穴が一瞬で会社全体に広がることになる。
さらに深刻なのがライセンスの問題だ。AIが学習した元のコードには、GPLなどの厳しい利用条件がついていることがある。気づかずに使ってしまうと、「自社のプログラムもソースコードを公開しなければならない」という義務が発生することもある。ある企業では、製品出荷後にこの問題が発覚し、2カ月間も販売を停止せざるを得なくなった。
3. 会社の信用が傷つく
「AI導入で開発が革新的に!」と対外的にアピールしている企業ほど、裏でこうした問題が起きたときのダメージは大きい。「AI導入による開発革新」が「AI依存による品質崩壊」と受け取られれば、ブランド価値は一気に失墜する。
現場で起きている「あるある」トラブル
実際、こんなトラブルが各地で起きている。
ある製造業では、工場管理部門とデータ分析部門がそれぞれ別々にAIを使って開発を進めた結果、まったく同じ処理をする関数が、別々の言語で存在していることがわかった。バグが見つかっても、それが共通の原因だと気づくのに数週間かかったという。
別のソフトウェア企業では、開発者が便利だからとAI生成コードをそのまま貼り付けていたところ、半年後に同じようなログ出力の関数が5カ所に散らばっていることが判明。微妙に書き方が違うため、システム間で連携エラーが頻発した。
IoT機器メーカーでは、AIが作った暗号化プログラムを製品に組み込んだが、後になってGPLライセンスのコードが含まれていると外部から指摘された。すでに出荷済みだったため、販売停止と再検査で大きなコストと信用の損失を被った。
「便利だから使う」だけでは済まない時代
では、どうすればいいのか。
まず技術的な対策として、AIが生成したコードには必ず「いつ、どのツールで、どんな指示で作られたか」という記録をつける。万が一問題が起きたとき、すぐに追跡できるようにするためだ。
また、従来の文字列チェックだけでなく、「意味が同じコード」を見つけられるAI検出ツールを併用する。よく使う処理は、AIに毎回作らせるのではなく、あらかじめ標準の部品として用意しておくことも有効だ。
次に組織的な対策。「AIが作ったコードはそのまま使わず、必ず人がレビューする」というルールを明文化する。ライセンスをチェックする専用ツールを導入し、危険なコードが紛れ込んでいないか事前に確認する体制も必要だ。
そして何より大切なのは、開発者の意識改革だ。「AIの出力は完成品ではなく、素材に過ぎない」という認識を持つこと。便利だからといって鵜呑みにせず、自社の基準に照らして精査し、必要なら手を加える――そうした文化を根付かせることが、長期的には最も重要になる。
「使う覚悟」より「管理する仕組み」を
AIによるコード生成は、もはや止められない流れだ。問題は、それを「どう使うか」である。
ある研究者はこう指摘する。「AIがもたらす最大の恩恵は『速さ』ではなく『知の再利用』です。しかし今は、その再利用が『無自覚なコピペ』になってしまっている。これでは、むしろ企業の競争力を損なってしまいます」
今必要なのは、「AIを使う覚悟」ではなく、「AIを管理する仕組み」 だ。
AI生成コードを「即戦力」として盲信するのではなく、「検証が必要な知的資産」として扱う。品質を確保し、リスクを管理しながら、スピードも損なわない――そんなバランスを取れる企業だけが、AI時代の信頼を勝ち取ることができるだろう。
便利な道具は、使い方次第で薬にも毒にもなる。AIというパワフルな道具を手にした今こそ、その「正しい使い方」を真剣に考えるときなのかもしれない。