コードが AI で生成されたものかどうか、どうやって見分けるのか
構造的な特徴から、生成されたコードで躓く質問まで、AI で生成されたコードや説明文を見分けるための実践的なシグナル。
教官、採用担当者、CTF オーガナイザーが何らかの形でこれについて尋ね続けている。単一の信頼できるディテクタは存在しないが、特に 1 つの分離されたファイルではなく、複数の提出物をまとめて評価している場合に、十分に有用なパターンが現れることがある。
生成されたコードの構造的な特徴
生成されたコードは特定の方法でコメントが過剰になる傾向がある。そのコードが何をするのかを言い直すコメント(# increment the counter)であって、なぜそれが存在するのかについてのコメントではない。時間に追われている人間のコードは明白なコメントをスキップして、奇妙な部分だけを説明する。生成されたコードはまた、関数の長さが均一で、一貫性のある教科書的に完璧なエラーハンドリングがあちこちにあり、人間が怠け始めたり以前のバグから学んだショートカットを使ったりしたような部分でさえもそうである。
もう 1 つの特徴:変数と関数の名前が、同時にやや説明的でジェネリックすぎる。calculate_total_price_with_tax ではなく、実際のコードベースが集約する何らかのショートハンド calc_total の代わり。実際のプロジェクトは、異なる人がファイルに触れるにつれて、時間の経過とともに命名の不一貫性を蓄積する。初心者によって書かれたとされている 300 行にわたって、疑わしいほど一貫性のある命名規則を持つ単一のファイルは、もう一度見る価値がある。
実行されていない部分について尋ねる
最速の実践的なチェックは、コードを読むだけでは明白でない特定の決定を説明するよう、その人に尋ねることだ。例えば
この記事は AI の支援を受けて執筆し、Korra Studio の Michal Pilch(CISSP)が確認のうえ公開しました。
これは Korra Studio ナレッジベースの 1 つのノートです。プラットフォームはすべてのトピックと 1 対 1 メンタリングをペアで提供します。
無料で始めるarrow_forward