日々、AIによって書かれるコードは増え続けています。GoogleのCEOであるサンダー・ピチャイ氏によると、2024年後半時点で、Googleのコードの25%以上がAIによって書かれたものとなっています。 ロビンフッドのCEOは、同社でリリースされるコードの大部分が現在AIによって書かれていると述べています。「バイブ・コーディング」(アンドレイ・カーパシー氏のツイートで広まった言葉)という用語が一般に定着してきました。これは、コーディングの「バイブ」に完全に身を任せ、AIに主導権を委ねてコードを書いてもらうことを意味します。
Cursor、Lovable、Replitといったスタートアップ企業は、コーディングの参入障壁を取り除こうとしています。つまり、プログラミングを始めるのが非常に簡単になり、社内の誰もがPythonやReactの知識がなくてもコードを書いたり、本格的なウェブサイトやアプリを作成したりできるようになるということです。
「2025年StackOverflow開発者調査」によると、この傾向がいかに広まっているかが明らかになりました。開発者の84%が開発ワークフローにおいてAIツールをすでに使用しているか、使用を計画しており、プロの開発者の51%が毎日AIツールを利用しています。これは、業界全体におけるコードの書き方に大きな変化が訪れていることを示しています。
しかし、この調査からは、AIを活用した開発というこの時代における成長の痛みの兆候も浮かび上がっている。開発者の52%がAIツールが生産性にプラスの影響を与えたと回答している一方で、AIツールに対する肯定的な評価は、70%以上から2025年には60%へと低下している。AI生成ツールを試すという初期の「ハネムーン期」を経て、開発者たちは現在、それらに対してより中立的な姿勢を示しているようだ。
不満の要因は示唆に富んでいる。「あと一歩で完成しているが、完全ではないAIソリューション」に不満を感じている開発者は66%に上り、45%はAIが生成したコードのデバッグに予想以上に時間がかかると感じている。AIツールの出力を「非常に信頼している」と答えた開発者はわずか3%にとどまり、46%はAIツールの精度を積極的に疑っている。
これにより興味深いパラドックスが生じている。開発者はコード作成においてAIへの依存度を高めている一方で、AIが生成したコードを完全には信頼していないのだ。調査でも指摘されているように、開発者の75%は「AIの回答を信頼できない」場合、依然として人間に助けを求める傾向にあり、自らを「品質と正確性の最終的な判断者」と位置付けている。サイモン・ウィリソン氏によれば、彼は「各行を自分で確認しない限り、リリース予定のプロジェクトにはAI生成コードを使用しない」という。幻覚(誤った回答)のリスクがあるだけでなく、チャットボットは相手に好かれたいという心理から、実際には使えないアイデアでも「機能する」と答えてしまう可能性がある。これは、コードの修正方法を知らない私たちにとって特に深刻な問題だ。結果として、根本的な問題を抱えたソフトウェアを作り出してしまうリスクがある。
AIが生成したコードは今後も定着していくでしょうが、コードが人間によって書かれたものであることを確認すべき場面が依然として確かに存在します。
ソフトウェア開発者を採用する際、そのプログラマーがAIの助けを借りずに高品質なコードを記述できる能力を十分に備えているかどうかを評価することが重要です。さらに、業務においてAIが生成したコードやAIの支援を受けたコードの不具合を適切にデバッグ・診断できるよう、コードに対する理解度を評価することも重要です。
教育においては、AIの助けを借りずにプログラミングする方法を学生に教えることが重要です。 AIの支援に過度に依存すると、学生は基礎的な概念を見落とし、優れたソフトウェアエンジニアになるために必要なスキルを習得できなくなる恐れがあります。StackOverflowの開発者調査でも示唆されているように、実際の仕事ではAIの支援を利用することになるでしょうが、確固たる基礎がなければ、学生はAIが生成した誤ったコードを修正することはおろか、そもそも何が間違っているのかさえ理解できなくなるでしょう。
コンプライアンスとセキュリティ。多くのコンプライアンス・フレームワークでは、AIが生成したコードは、誤った出力を生じたりバグが含まれたりする可能性があるため、リスクが高いと見なされています。また、ライセンスや著作権に関する重要な考慮事項もあります。AIモデルが意図せず互換性のないライセンスを持つコードを複製してしまう可能性があり、それがコンプライアンス違反につながる恐れがあるからです。さらに、AIが生成したコードを専有物と見なせるか、あるいは著作権の対象となり得るかについては、未だ解決されていない課題が残されています。
コードの由来と追跡。AIが登場する前は、git blameのようなツールを使えば、各コード行を誰が書いたのか、なぜ変更が行われたのかを簡単に追跡することができました。しかし、AIが大量のコードを生成するようになったことで、開発者がすべてのコード行の背景や意図を記憶しておくことは難しくなっています。 AI生成コードを検出して追跡できることは、コードの保守、デバッグ、リソース管理に役立ちます。CTOやエンジニアリングリーダーは、この情報を活用してさまざまなAIモデルの有効性を評価し、チームが最適なツールを使用していることを確認できます。
全体として、Pangramは、特にコードの長さが40行を超える場合、AI生成コードの大部分を保守的に検出することができます。Pangramが保守的である理由は、人間が書いたコードをAI生成コードとして誤検知することはほとんどない一方で、AI生成コードの約8%を見逃し、それを人間が書いたコードであると誤って判定してしまうためです。
すべてのコードスニペットを分析すると、PangramはAI生成コードの約20%を見逃してしまいます。これは、短いAI生成コードスニペットの多くが、人間のコードと見分けがつかない定型コードであるか、あるいは検出されるのに十分な特徴を持たないためです。
| メートル法 | スコア |
|---|---|
| 正確性 | 96.2%(22,128/22,997) |
| 偽陽性率 | 0.3%(39/13,178) |
| 偽陰性率 | 8.5%(830/9,819) |
| メートル法 | スコア |
|---|---|
| 正確性 | 89.4%(41,395/46,319) |
| 偽陽性率 | 0.4%(99/25,652) |
| 偽陰性率 | 23.3%(4,825/20,667) |
この分析にはGitHubのデータセットを使用します。AIコードについては、単純な2段階の合成ミラーリング手法を採用しています:
データセットの作成には、GPT-4o、Claude Sonnet、Llama 405b、Mistral 7B、Gemini 1.5 Flash、およびGemini 1.5 Proを使用しています。
AIが生成したコードは、AIが生成した文章よりも検出が困難です。その理由は、自由度が著しく低いことにあります。つまり、プログラマーが下す恣意的なスタイルの選択は、ライターに比べて少ないからです。 私たちが観察した誤検知(false negatives)からもわかるように、定型的な自動生成コードや設定ファイルなど、多くのファイルには創造性や柔軟性を発揮する余地がほとんどない。C言語やアセンブリ言語、コンパイラコードなどの低レベル言語も、構文がはるかに厳格であるため、コードがAIによって生成されたものかどうかを判別できる手がかりが少ない。
AIが生成したコードの特徴を探している場合は、以下の点を確認することをお勧めします:

ブラッドリーはAI研究者であり、産業界におけるディープラーニング製品の構築の専門家です。最近では、生成AIを活用した創薬企業であるAbsciでディープラーニング研究グループを率いており、それ以前はテスラのオートパイロット部門におけるコアコンピュータビジョンチームのメンバーでした。
大学院生時代、ブラッドリーはスタンフォード・ビジョン・ラボに所属し、ディープラーニング研究に関する複数の論文を発表しました。スタンフォード大学で物理学の学士号と人工知能の修士号を取得しています。AI以外にも、教育や哲学に関心を持ち、熱心なゴルファーでもあります。