GitHub、Copilot、ChatGPT、Claudeは、AIコーディングアシスタントです。これらはソフトウェア開発者がより迅速にコードを作成できるようにします。これにより、開発者の生産性は劇的に向上しました。しかし、そのスピードアップには隠れたリスクも伴います。ソフトウェアのサプライチェーンのセキュリティ、著作権問題、採用の公正性など、あらゆる面で影響が及んでいます。
スタンフォード大学のMOSSは、一般的にスクリプトがAIによって生成されたものかどうかを判別できますが、熟練した開発者であれば、メソッドの順序を調整したり変数を変更したりすることで、検出を逃れることが可能です。また、このツールは非商用利用に限定されています。コードがAIによって生成されたものかどうかを実際に判別するには、専用のインフラストラクチャが必要です。現在、Pangramのようなエンタープライズ向けプラットフォームが参入し、AIコード検出に特化したサービスを提供しています。
「AIが生成したコードは検出できるのか」という疑問をお持ちなら、答えは「はい」です。AIコードの検出は、AIテキストの検出とは根本的に異なり、より困難です。このガイドでは、以下の点について解説します:

開発者向けパングラムAI検出
プログラミング言語には「自由度」が少ないため、AIが生成したコードは人間が書いたコードよりも見分けがつきにくい。開発者が選択できる文体や構造の選択肢は限られているからだ。これは、著者が利用できる数多くの文体や構造の選択肢と比較すると、特に顕著である。
C言語やアセンブリ言語のような言語は、構文の要件が非常に厳格です。人間が問題を解決しようとする場合、その問題に対して最も効率的な関数を開発するかもしれません。AIもまた、それが最も効率的な関数であるため、同じコードを開発する可能性があります。人間もAIも、数学的には全く同じコードを生成する可能性があります。
標準的な定型コードには、統計的な特徴がほとんど含まれていません。AI検出ツールでは、この種のコードを「AI生成」か「人間による記述」か、確信を持って判定することはできません。これは単純な設定ファイルについても同様です。
CTOや法務運用チームは、AIコード検出ツールを活用してコードベースの出所を確認しています。これは、開発者が著作権の対象とならないAIの知的財産や、誤ったロジック、あるいは脆弱性のあるロジックを公開していないことを確認するためです。
米国では、AIによって完全に生成されたコンテンツは著作権の対象となりません。スタートアップ企業の主力製品が、人間の監督なしにCopilotによって完全に生成されたものである場合、そのスタートアップ企業はこの製品について著作権を取得できない可能性があります。
AIコード検出ツールは、セキュリティワークフローにおける極めて重要な第一歩です。コードが100% AI生成であると判定された場合、厳格な手動によるセキュリティレビューを行う必要があります。このレビューは、コードがマージされる前に実施されなければなりません。
採用担当者は、技術系の持ち帰り課題に対してAIコード検出ツールを使用しています。彼らは、候補者が提出するコードのロジックを理解していることを確認するために、これらの課題にAIコード検出ツールを活用しています。採用担当者は、ChatGPTの出力を単にコピー&ペーストするだけの候補者を求めているわけではありません。彼らは、その出力の背後にあるロジックを理解している候補者を求めているのです。
コーディングテストに合格するためにLLMに全面的に依存している開発者は、複雑でドキュメントのないレガシーシステムのデバッグを求められた際、おそらく失敗するだろう。コードは複雑なものだ。ChatGPTなしではこうした複雑さを乗り越えられない開発者は、その役割を果たせない可能性がある。
採用担当者はAIを 全面的に禁止するのではなく、検知ツールを活用して 面接の質問を導き出しています。 例えば、「この機能はAIの支援に大きく依存しているようですね。モデルがなぜこの特定のループ構造を選んだのか、詳しく説明していただけますか?」といった具合です。
AI検出の精度を高めるにはソフトウェアが必要です。しかし、処理量が少ない場合は、手動でのレビュー担当者が以下の点を確認することでAIコードを検出できます:
ClaudeやChatGPTのようなAIモデルは、役立つように訓練されています。その結果、コードの各行に対して、冗長で不自然なコメントを挿入してしまうことがあります。人間の開発者がこのようなことをすることはめったにないため、この種のコメントはAIによるものだと見抜く手がかりとなります。
学術分野や採用の場面では、AIによるコードは複数の提出物間で同一に見えることがよくあります。MOSSはこの類似性を指摘することができます。これにより、MOSSはAI生成の二次的な指標として機能します。他のツールでも同様の機能があります。
コードがAIによって生成されたものかどうかを確認するため、Pangramはディープラーニングを活用しています。ディープラーニングは、AIモデルの統計的な特徴を特定するために使用されます。
Pangramの精度は96.2%です。また、誤検知率は0.3%と、ほぼゼロに近い水準です。これは主にディープラーニングによるものです。

40行を超えるコードにおけるパングラムの正確性
他のAIコード検出ツールとは異なり、Pangramは意図的に保守的な設計となっています。一部のAIによる定型コードを見逃すように設計されており、長いコードスニペットに対しては8.5%の偽陰性率を示します。これは、人間による開発者を誤ってAIの仕業だと断定することがないよう、慎重を期すためです。
エンジニアリングチームや採用チームは、Pangramを自社のワークフローにシームレスに統合できます。これには、PangramのAIコード検出用Python SDKを利用する方法と、PangramのAPIを利用する方法があります。どちらの方法でも、既存のGitやATSのワークフロー内でAIによるコードチェックを自動化することが可能です。
コードの完全性の検証
AIコーディングアシスタントは、あらゆる種類のソフトウェア開発を加速させる強力なツールです。しかし、安全で独自のインフラストラクチャを構築する際、それらを盲目的に信頼することはできません。
正確なAIコード検出ツールをワークフローに組み込むことで、エンジニアリングチームや採用チームは以下のことが可能になります:
業界で最も精度の高いAI検出プラットフォームを活用し、コードベースの出所と独自性を確認してください。