オーバーエディティングとは、モデルが必要以上にコードを修正することを指します。
概要
- AIによるコード編集支援ツールで「過剰編集」問題が発生
- 最小限の修正のみ必要な場合でも、大幅な書き換えが行われる傾向
- 過剰編集はコードレビューや保守性に悪影響
- 明示的なプロンプトで過剰編集を抑制可能
- 各種LLMの比較と評価指標を用いた分析
AI支援コーディングにおける過剰編集問題
- Cursor、GitHub Copilot、Claude Code、CodexなどAI支援コーディングツールの普及
- シンプルなバグ修正依頼でも、モデルが関数全体を不必要に書き換える事例
- 変数名の変更や不要な入力検証、ヘルパー関数追加など、本質的でない変更が発生
- これを「過剰編集」問題と定義
- コードレビューの負担増大と可読性・保守性の低下が懸念点
過剰編集の具体例と背景
- 例:range(len(x) - 1) → range(len(x)) のみ修正すればよいバグ
- GPT-5.4は関数全体を再構築し、本来不要なコード追加や構造変更を実施
- ソフトウェア開発の「ブラウンフィールド」作業では、既存コードの意図を維持しつつ最小限の修正が重要
- テストに合格しても、過剰編集はテストでは検知できず、コード品質の劣化を招く恐れ
過剰編集の測定方法
- BigCodeBenchから400問を選び、プログラム的にバグを注入し正解修正が明確なデータセット作成
- 編集量の評価指標:
- トークン単位Levenshtein距離で編集量を測定
- Added Cognitive Complexity(認知的複雑度の増加)で可読性への影響を評価
- 最小修正との差を相対パッチスコアとして算出
モデルごとの過剰編集傾向比較
- Pass@1(正解率)、Normalized Levenshtein(編集量)、Added Cognitive Complexity(複雑度)で評価
- GPT-5.4は編集量・複雑度ともに過剰編集傾向が最も強い
- Claude Opus 4.6は最小限の編集かつ高い正解率を実現
- Gemini 3.1 Pro PreviewやGLM 5も保守的な編集を示す
プロンプトによる過剰編集の抑制
- 「できるだけ元のコードとロジックを維持するように」と明示的に指示
- すべてのモデルで編集量が減少し、Pass@1も向上傾向
- 特に推論能力の高いモデルで効果が大きい
- 明示的な制約がモデルの編集範囲を限定し、より精密な修正を促進
推論モデルと過剰編集の関係
- 推論モデルはPass@1(正解率)が高い一方で、デフォルトでは過剰編集傾向
- 明示的な最小編集指示で、推論モデルが非推論モデルよりも編集量を大きく削減
- Claude Opus 4.6(推論)は、非推論よりも編集量が少なくなる例外
- 推論モデルの「賢さ」が本来不要な改善まで行う原因となるが、プロンプトで十分制御可能
まとめと今後の課題
- LLMによる過剰編集は現状の大きな課題
- 明示的なプロンプト設計で大幅な改善が期待可能
- 今後はモデルのトレーニングによる更なる最小編集化の実現が課題
参考指標や具体的な数値、モデル間の比較表など、詳細なデータ分析は原文を参照