コードのずさんさを測る:冗長性と侵食の指標

✍️ OpenClawRadar📅 公開日: September 12, 2026🔗 Source
Ad

LLMはテストに合格するコードを生成するのが非常に上手くなりました。しかし、正確なコードでも雑になることがあります。重複した行、不要な抽象化、悪い設計判断でいっぱいになるのです。著者が指摘するように、「コードが形式的に正確だからといって、不要な抽象化を導入したり、重複を作成したり、全体的に悪い決定を下したりしていないわけではない」のです。その結果、コード行数(LOC)が爆発的に増え、人間が追いつくのが難しくなります。そして、一部の主張に反して、エージェントもこの雑さを管理できません。

LLMを審判として使うのがうまくいかない理由

この記事は、AIを使ってコード品質を判断するという一般的な業界アプローチを否定します。モデルにコードを1~10で評価させるのは「基本的に乱数生成器と同じ」です。ペアワイズ比較(A対B)は不安定で、ソリューションの名前を変えるだけでモデルの好みが反転することがあります。ルーブリックやLLMが書いたテストは役立ちますが、「実際に雑さを取り除くにはほど遠い」のです。

最も単純な指標:LOCの変化

驚くほど効果的です。単にコード行数の変化を追跡するだけです。著者は皮肉を込めてこう述べています。「もしそれを最適化し始めたら、意味のある指標ではなくなるだろう」と。

冗長性

重複した行や不要に冗長な行を測定します。AST-Grepでフラグが立てられた行またはクローンとしてマークされた行の割合を、総LOCで割ったものです。

冗長性 = |AST-Grepでフラグが立てられた行 ∪ クローン行| / LOC
Ad

侵食

コードベースの質量が、いくつかの大きく複雑な関数にどれだけ集中しているかを測定します。まず関数の質量を定義します。

質量(f) = CC(f) * sqrt(SLOC(f))

ここでCC(f)は循環的複雑度、SLOC(f)はソースコード行数です。次に侵食は、循環的複雑度が10を超える関数が総質量に占める割合です。

侵食 = ∑_{f: CC(f) > 10} 質量(f) / ∑_f 質量(f)

論文SlopCodeBenchで導入されたこれら2つの指標は、著者のテストでは、レガシーコードベースとLLMが生成した雑なコードをかなりうまく区別しました。

要点

  • LLM審判はコード品質に対して信頼できない。名前を変えると好みが反転する。
  • LOCの変化は驚くほど強力な雑さのシグナルだが、直接最適化すると壊れる。
  • 冗長性はAST-Grepフラグとクローン検出をLOCで割ったものを組み合わせる。
  • 侵食はCC > 10の関数における複雑度の質量を捉える。

LLM生成コードを大規模に提供するチームにとって、これらの指標は感覚に基づく評価に代わる定量的な選択肢を提供します。

📖 Read the full source: HN LLM Tools

Ad

👀 See Also

Claude Opus 4.6における実用的な機能強化:メモリのアップグレード
News

Claude Opus 4.6における実用的な機能強化:メモリのアップグレード

Claude Opus 4.6は、100万トークンのコンテキストを備えた大幅なアップグレードを特徴としており、複雑なタスクにおけるメモリ保持とパフォーマンスを向上させています。

OpenClawRadar
オートリサーチにより、SSDストリーミングを介してM5 Max上でQwen3.5-397Bが20.34 tok/sを達成
News

オートリサーチにより、SSDストリーミングを介してM5 Max上でQwen3.5-397Bが20.34 tok/sを達成

開発者は、MacBook Pro M5 Max(128GB RAM)でSSDストリーミングと36回の体系的な実験を用い、209GBのQwen3.5-397Bモデルに対して20.34トークン/秒の推論速度を達成しました。この結果は、M5 Maxのベースラインと比較して2倍、元のM3 Maxの結果と比較して4.67倍の高速化を実現しています。

OpenClawRadar
ウィキペディアのAIポリシー:記事作成における大規模言語モデルの使用は禁止、ただし校正や翻訳については例外とする
News

ウィキペディアのAIポリシー:記事作成における大規模言語モデルの使用は禁止、ただし校正や翻訳については例外とする

Wikipediaは、LLMを使用した記事の生成や書き換えを禁止しており、基本的なコピー編集と翻訳に限り例外を認めています。違反があった場合、即時削除(G15)やトークページでのAI生成コメントの除去対象となります。

OpenClawRadar
Qwen3.5-122B on Blackwell SM120: fp8 KVキャッシュの破損問題と性能調査結果
News

Qwen3.5-122B on Blackwell SM120: fp8 KVキャッシュの破損問題と性能調査結果

8x RTX PRO 6000 BlackwellハードウェアでのQwen3.5-122Bのテストでは、fp8_e4m3 KVキャッシュがエラーなしに壊れた出力を静かに生成することが判明し、代わりにbf16 KVキャッシュが必要でした。MTP最適化により単一リクエストの速度が2.75倍向上しましたが、DeltaNetの制約により他の最適化はブロックされました。

OpenClawRadar