AIコード品質の「だらしなさ」を測定する
원제: Measuring the sloppiness of code
왜 중요한가
コード生成の「正確性」は解決済みでも、品質・保守性の定量評価手法は未確立であり、AIコーディングツールの次の競争軸となる。
Earendilのエンジニア Sebastian氏は2026年9月、LLMが生成するコードの「だらしなさ(sloppiness)」を定量的に測定する研究をブログで公開した。LLMは構文的に正しいコードを生成できるが、不要な抽象化や重複、悪い設計判断を排除できず、プロジェクトのコード行数(LOC)が爆発的に増加する問題があると指摘している。
LLMはコード生成においてほぼ完璧な正確性を達成した。これはコードが「テストで検証できる」という特性のおかげだ。しかし、コードが動くことと、コードがきれいであることは別問題だ。
Sebastian氏は、現在業界で使われているコード品質評価手法を3つに整理して批判的に検討した。
**AIが審判する方法**:最も普及しているが信頼性が低い。1〜10のスコアでモデルに自己評価させる単純な方法はほぼランダムに等しく、AとBの2解を比較させる手法でもラベルを変えるだけでモデルの好みが変わる「position bias」が存在する。
**人間が審判する方法**:正確性は最も高いが、スケールしないという致命的な欠点がある。大規模なベンチマークや複数モデルの比較評価には使えない。
**シンプルな定量指標**:LOCの変化量は「sloppiness」の代理指標として意外に有効だとされた。ただし、これを最適化目標にした途端にMeasure自体が意味を失うという「Goodhartの法則」的な問題がある。さらにSebastian氏は、SlopCodeBenchという論文で紹介されたVerbosity(冗長性)などの指標も有望として挙げており、LLM生成コードをレガシーコードベースから統計的に区別できる点を評価している。
氏の結論は、現時点でコードの「sloppiness」を確実に測定する方法は存在しないというものだ。AIエージェントに任せても問題は解消されず、human agencyの維持が引き続き重要だと主張している。