過剰編集とは、必要以上のコード改変を行うモデルの動作を指します。

2026/04/23 2:51

過剰編集とは、必要以上のコード改変を行うモデルの動作を指します。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

大規模 AI コードツールは頻繁に、単純なエラー(例えば、オフバイワンエラーの修正)に対して機能するコードを不必要に広範に書き換えるという深刻な「過剰編集問題」を抱えています。「より多くのテストを書く」という既存のアドバイスはこの問題を検出できず、その理由としては、不要な構造的変更がなされたとしてもテストスイートはパスし続ける点、および標準的な指標では元アーキテクチャに対する忠実性の不足を捉えられない点が挙げられます。最近の研究では、コード構造を維持するための特定の指示を用いることでこの問題を実効的に軽減できることが示されており、また監督微調整(SFT)がドメイン外への一般化に失敗するのと異なり、コーディング能力を損なわずに良好に一般化する全リニューアランスレーニング(RL)や、バグのある報酬関数を用いた RL 微調整も同様に有効であることが示されています。LoRA 微調整といった高度な技術では、フル RL のパフォーマンスにほぼ匹敵しつつ fewer な調整だけで実現でき、これらの改善への軽量なアプローチを提供します。結局のところ、これら戦略を採用することで開発者は、AI コードアシスタントの信頼性を確保し、破壊的な書き換えではなく最小限かつ高品質な更新を行う方向へと誘導できます。

本文

コードはこの投稿で入手可能です。

AI 支援のコーディングが標準となり、Cursor や GitHub Copilot、Claude Code、Codex といったツールを用いることで、モデルによるコードへの介入が増えています。もし過去 1 年間にこれらのツールのいずれかを試したことがあるなら、おそらく以下の現象を経験されたことでしょう:単純なバグ(オフ・バイ・ワンエラーなど、あるいは演算子の誤用)の修正をモデルに依頼すると、モデルはバグを修正しますが、関数の半分まで書き換えられてしまいます。追加のヘルパー関数が出現します。本来問題ない変数名が改名されます。正当な入力検証ロジックが追加されます。結果として生じる差分(diff)は甚大です。

私はこの現象を**「過剰編集(Over-Editing)」問題**と呼んでいます。モデルが、実際には書き換え无须のコードまで書き換えてしまう傾向を示すことを指します。これは想像するよりも重要度の高い問題です。コードレビューはすでにボトルネックとなっており、レビュワーが「何が変化したか」「なぜ変化したのか」「変更が安全か」を理解する必要があります。正しい修正にもかかわらず関数の全体を書き換えてしまうモデルの場合、コードは完全に無識別となり、この作業は劇的に困難になります。

本投稿では、既存の大規模言語モデル(LLM)に過剰編集の傾向があるかどうか、そしてモデルをより忠実な編集者として訓練することはできるかを調査します。

過剰編集(Over-Editing)

図 1: 過剰編集問題の典型的な例です。GPT-5.4(高推論設定)は、正しい修正が単に

range(len(x) - 1)
range(len(x))
とすることだけであるにもかかわらず、関数全体を書き換えます。

過剰編集とは、手元の問題を解決するために厳密に必要なものを超える範囲でコードをモデルが変更することを指します。正確に言うと:モデルの出力が機能的に正しいものであっても、元のコードから構造的な乖離が、最小限の修正が必要とする度合いよりも大きい場合、モデルは過剰編集を行っているといいます。

図 1 の例はこの点をよく表しています。バグは

range()
呼び出しにおける単一のオフ・バイ・ワンエラー(
range(len(x) - 1)
range(len(x))
でなければならない)であり、正しい修正は一行だけです。GPT-5.4(高推論設定)は、関数全体を再記述することで応答します:明示的な
None
チェックの追加、
dtype=float
を伴う
np.asarray
変換の導入、有限値マスキングの追加、配列サイズの検証、
curve_fit
呼び出しシグネチャの変更、そしてプロットロジック全体の置換などです。出力がテストを通過し機能的に正しいものであっても、差分は膨大であり、それらの追加のうち一つも求められておらず、必要もありませんでした。

この問題は、行われている作業の種類から考えることで理解しやすくなります。ソフトウェア工学は広範にわたって 2 つのモードに分けられます:グリーンジールド(Green-field)(ゼロから新しいものを構築する)と ブラウンフィールド(Brown-field)(既存のコードベース内で働く)。特にブラウンフィールドにおいては、既存のコードはチームによって理解され、意図的にそのように記述されてきました。モデルの仕事は問題を修正し、それ以外をすることだけです。

AI コーディングツールを使う際の一般的なアドバイスとして、「テストを書けば書くほど良いので、テストが通ればコードは問題ない」と言われることがよくあります。しかし、過剰編集はブラウンフィールドにおける失敗であり、正しさの失敗とは異なり、テストスイートには見えないという特徴があります。モデルからより多くのコードが生み出されるとエンジニアのレビュー負荷が増大し、過剰編集はそのことを難しくします。解析すべき複雑な論理が増え、読み込むコード行数が増え、全体的なコードベースの品質が静かに低下する確率が上がります。

過剰編集の評価方法

過剰編集を研究するためには、ある程度の「最小性(minimality)」を持つ、「真実値(ground truth)」の編集が明確に定義されたコードエディットのデータセットが必要です。既存のベンチマークで行われている別の LLM を使ってバグを導入するというアプローチをとるのではなく、BigCodeBench から 400 の問題をプログラム的に破損させることで、より細粒度な制御を得られます:比較演算子を反転(

<
<=
)、
+
-
を入れ替えたり、ブール値を変更(
True
False
)したりするなどの処理です¹。各破損サンプルは構文的に有効であり、対応するテストケースを確実に破損させることを検証しています。これにより、真実値の編集は単なる破損の逆転であり何ら追加ものではないため、この編集は構築上として最小のものとなります。こうして、モデルがバグを修正したかどうかだけでなく、その過程で他にどの程度変更を加えたかを評価できます。

指標

多くのコーディングベンチマークは Pass@1 のあるバリエーションを用いて正しさをモデルで評価します。しかし、Pass@1 は必要ですが十分ではありません。モデルは Pass@1 で完璧なスコアを出しながら、触れたすべての関数を完全に書き換えることができます。この実験では、モデルが必要以上にどの程度変更したかを捉える指標が必要です。

  1. トークンレベルの Levenshtein 距離通常の Levenshtein 距離が一つの文字列を他の文字列へ変形するために必要な文字挿入、削除、置換の最小数を数えるのに対し、ここでは Python のトークン化バリエーションを使用します。コードはまず Python のトークナイザーを通し、原子的な構文単位(

    def
    ,
    add
    ,
    (
    ,
    a
    ,
    ,
    ,
    b
    ,
    )
    ,
    :
    ,
    return
    ,
    +
    など)に分割されます。Levenshtein 距離はこのトークンシーケンス上で計算され、生字符レベルではなく行われます。 例として、以下の 2 つの関数を考えます:

    def add(a, b):
        return a + b
    
    def someotherfunctionname(a, b):
        return a + b
    

    文字レベルの Levenshtein は距離を 19 と与えます。トークンレベルの Levenshtein は

    someotherfunctionname
    が単一のトークンになるため距離を 1 と与えます。異なる長さの関数間でスコアを比較可能にするために、総トークン数で正規化します。

    また、モデルの出力を真実値(ground truth)に単純に比較するのではなく、両方を破損した入力に対して比較します。$C$ を破損した解、$G$ を真実値、$M$ をモデルの出力としましょう。真の実在的な最小編集(単なる破損の逆転)は $D_{\text{true}} = d(G, C)$ であり、モデルの編集は $D_{\text{model}} = d(M, C)$ です。これにより相対パッチスコアが得られます:

    $$S(M) = D_{\text{model}} - D_{\text{true}}$$

    値がゼロに近いほど、モデルのパッチは真の最小修正に類似しています。直感的には、未破損の元の解を破損した解への最良の編集と解釈し、この最良パッチのスコアを計算し、それをモデルの出力と比較することができます。

  2. **追加された認知複雑性(Added Cognitive Complexity)**認知複雑性(サイクルマティック複雑性の改善版)は、コードを理解する難易度を測ります。ネスティング(入れ子構造)、再帰、混合論理演算子、直感的でない制御フローをペナルティとします。例えば、分岐がない真っ直ぐなコード行よりも、ステートを保持する必要があるもの(

    if
    文、ループ、または
    try/except
    など)の方が読み取り難いです。例が下にあります:

    def process(items):
        result = []
        for item in items:          # +1
            if item > 0:            # +2 (ネスティングペナルティ: ループ内で)
                if item % 2 == 0:   # +3 (ネスティングペナルティ: 二重に深い)
                    result.append(item)
        return result
    

    認知複雑性:6

    私たちのすべての破損は値を変更するだけで構造を変えるものではないため、正しい修正は常に認知複雑性をゼロ追加する必要があります。モデルの出力で増加したあらゆるものは、依頼されずに導入されたもので不必要です。忠実な最小編集であればゼロであるべきオリジナルとの絶対差分を報告します。0 未満の値も望ましくありませんが、コードの不必要な単純化も好ましくないためです。

モデルは過剰編集しますか?

はい、最先端モデルでもそうしています。

モデルPass@1 ↑正規化 Levenshtein ↓追加認知複雑性 ↓推論モード
GPT-5.40.7230.3952.313はい
Claude Opus 4.60.9120.0600.200はい
Gemini 3.1 Pro Preview0.8580.1450.501はい
GLM 5 High0.8590.0990.320はい
Qwen 3.6 Plus0.8580.1450.048はい
Kimi 2.50.8350.1510.770はい
DeepSeek R10.8200.2320.673はい
DeepSeek Chat V3.10.7950.2320.694はい
GPT-5 High0.7130.4383.832はい
GPT-5.4 (非推論)0.7700.3271.563いいえ
Claude Opus 4.6 (非推論)0.9000.0790.313いいえ
Gemini 3.1 Pro Preview (非推論)0.8600.1290.358いいえ
GLM 5 (非推論)0.8400.0970.235いいえ
Qwen 3.6 Plus (非推論)0.8700.1060.605いいえ
Kimi 2.5 (非推論)0.7700.1400.687いいえ
DeepSeek V3 (非推論)0.8000.2010.803いいえ

表 1: 推論および非推論モデルのパフォーマンス比較。両方に登場するモデルはハイブリッドモデルです。各指標での最高スコアは太字で強調されています。

最新最先端モデルの間では、GPT-5.4 が最も過剰編集を行います。推論モードでは Levenshtein 距離が 0.39 で非推論では 0.33、追加認知複雑性がそれぞれ 2.31 と 1.56 です。にもかかわらずその Pass@1 は 0.723 と 0.770 であり、最弱の正しさパフォーマンスのモデルの一つでもあります。Claude Opus 4.6 は評価されたすべてのモデルで最高の Pass@1(推論で 0.912、非推論で 0.900)を達成し、Levenshtein 距離が 0.06 と 0.08 の最小の差分と、追加認知複雑性が 0.20 と 0.31 をもたらします。Gemini 3.1 Pro Preview は同様の領域にあり、GLM 5 はオープンウェイトモデルの中で最も保守的なモデルとして議論されています。

プロンプト化は役立ちますか?

新しい LLM の故障モードを開発すると主張する多くの論文は、最初にモデルが直接指示された場合のタスク実行能力をテストしていません。一つの設定では不可能に見える振る舞いが、明示的なプロンプトの下では簡単になる可能性があります。そのため、「IMPORTANT: できるだけ元のコードとその論理を保証すること」(重要:元のコードとその論理を可能な限り維持してください)を追加するプロンプトの影響を調査しました。

図 2: モデルが明示的に編集を最小限に保つよう促された場合の Pass@1 と Levenshtein 距離の変化。モデルは推論モードによって色分けされています。

明示的なプロンプト化により、すべてのモデルが改善し Levenshtein 距離を減少させます。DeepSeek R1/v3 を除き Pass@1 も改善します。一つの解釈として、最小限の編集という制約が結果的に可能となる修正の探索空間を狭め、より正確でターゲット指向の変更へモデルを誘導することに繋がります。Levenshtein 距離への影響は推論モデルにおいて顕著であり、これはおそらく強力な指示追従能力の結果です。

推論=過考慮と過剰編集を意味しますか?

推論モデルは一般的にコーディングタスクにおいて優れていると考えられており、Pass@1 でも高スコアを得ます。しかし、これらの編集のスタイルに興味があるため、異なる視点から結果を検討する必要があります。

図 3: 推論および非推論モデルの Levenshtein 距離比較。モデルは家族ごとに一つの推論モデルと一つの子推論モデルのペアにグループ化されています。低い棒の方が良いです。各ペアの上のラベルは両方のモデルが正解を得た問題数を示しています。

図 3 では、各ペアに同じファミリーからの推論モデルと非推論モデルを含まるようにモデルをグループ化しています。各ペアについて、両方のモデルが正解を得たサンプルのみの Levenshtein 距離をプロットします。これにより、モデルが失敗する頻度が多い(過剰編集すべきサンプルが少ない)場合バイアスがかかることなどを分離し、編集最小性と正しさを分離することができます。

一般的な設定(上部)では、推論モデルは大多数のペアで非推論対応よりも過剰編集を行います。DeepSeek V3、GPT-5、GPT-5.4、Gemini 3.1 Pro Preview、Qwen 3.6 Plus、Kimi 2.5 はすべて推論棒が高いことを示します。推論モデルは自然により詳細な書き換えを行い、モデルが推論を通じて「より良い」実装へと至るのではなく最小限の修正へと達します。顕著な例外は Claude Opus 4.6 で、その非推論対応よりも大幅に少ない編集を行います。

明示的な設定(下部)では状況が大きく変わります。モデルが元のコードを保存するよう告げられると、推論モデルは非推論対応よりもずっと低い Levenshtein 距離を持ち、ほぼすべてのペアでそれらと一致または上回ります。Claude Opus 4.6(推論版)はこの設定で最低の Levenshtein 距離に低下します。GPT-5 と GPT-5.4 の両方とも推論バリエーションが大幅に低下しますが、GPT-5.4 の非推論モデルもわずかに優勢です。

したがって、要点としては、多くの推論モデルのデフォルト動作は過剰編集を行うことです。制限されていない場合、拡張された推論によりモデルには「改善」する必要があるコードに対してより多くの余地が与えられます。しかし、その同じ推論能力は、指示が与えられた際にそれらをより忠実に追うようにもさせます。一般的な設定と明示的な設定の間のギャップは常に推論モデルで大きくあり、過剰編集は根本的な制限ではなく、オーバーライド可能なデフォルト動作であることを示唆しています。

学習(トレーニング)

次の自然な質問:モデルをより忠実な編集者として訓練することはできるか?この実験では、Qwen3 4B 2507 Instruct を基盤モデルとして開始します。明示的な指示で元のコードを保存するだけでなく、0-shot と 8-shot プロンプティングを両方使用して基準を設定します。すべての他のメソッドは評価時に明示的な指示なしで一般的な設定でプロンプト化されます。

セットアップ

まず、前述のアプローチと同じ方法を使用して DeepCoder から破損された問題の合成データセットを作成します。このプログラム生成されたデータセットに加えて、基盤モデル Qwen3 4B 2507 Instruct も使用して自己蒸留を通じて合成データセットも作成します。具体的には、問題ごとに 8 つの完了を生成するようにモデルに促し、機能的に正しいサンプルのみを保持し、Levenshtein 距離でランク付けします。その後、明示的な指示なしでコンテキスト蒸留のようにトレーニングします。

4 つの違いする方法を評価します:

  • SFT(教師あり微調整): プログラム的に生成されたデータセットに対して直接教師あり微調整を行います。
  • rSFT(棄却サンプリング SFT): 自己蒸留データセットから各サンプルで最低 Levenshtein 距離の 3 つの完了を使用してトレーニングする棄却サンプリング SFT です。
  • DPO(直接最適化): 自己蒸留データセットから各サンプルについて最高と最低 Levenshtein 距離の完了間の優先度最適化です。
  • RL(強化学習): 機能的正しさと Levenshtein ベースの編集最小性を組み合わせた報酬を持つ強化学習です。報酬構造は Levenshtein 距離の加重和とテストケースを通過しないためのペナルティの合計です:
    r = r_edit + 0.1   # 生成がすべてのテストケースを通過する場合
    r = -0.2           # それ以外の場合
    
    # r_edit は正規化された Levenshtein ベースの報酬
    

それは機能しますか?

モデルPass@1 ↑正規化 Levenshtein ↓追加 CC ↓
ベンチマーク (0-shot)0.7350.1690.731
ベンチマーク (8-shot)0.7750.1150.479
SFT0.9320.0020.000
rSFT0.7820.1000.435
DPO0.7520.0210.113
RL0.8020.0460.112

表 2: ドメイン内のデータにトレーニングされたさまざまな微調整方法のパフォーマンス比較:トレーニングセットとテストセットは同じ破損タイプを持っています。

最初の試みでは、SFT が疑わしすぎるほど良い結果であり、生成されたモデルが完全にタスクを学習したように見えます。これは非常に驚きで、この一連の破損に対して単に逆転を暗記しているだけではなく、一般的な最小編集動作を学習するのではなく、モデルがただ逆転を暗記していただけだと最初の仮説を持っていました。その結果、合成データセットを両方再作成しましたが、評価セットとは完全に異なる破損タイプを使用して汎化を検証するために使用しました。コアの仮説は、モデルが単に特定の一連の破損を逆転することを学習しているだけだということです。

それは汎化するでしょうか?

モデルPass@1 ↑正規化 Levenshtein ↓追加 CC ↓LiveCodeBench の変化 ↓
ベンチマーク (0-shot)0.7350.1690.731
ベンチマーク (8-shot)0.7750.1150.479
SFT0.458-0.0080.006-0.149
rSFT0.7800.1070.501-0.069
DPO0.7870.0920.348-0.046
RL0.7820.0500.185+0.006

表 3: ドメイン外のデータにトレーニングされたさまざまな微調整方法のパフォーマンス比較:トレーニングセットとテストセットは異なる破損タイプを持っています。

SFT はドメイン外で完全に崩壊します。Pass@1 は 0.458 に低下し、モデルが何かを修正するかに関わらず特定の最小変化を生むことを学習したためです。rSFT と DPO の両方がより良いですが、8-shot ベンチマークと比較して全体的な改善はわずかであります。これは、基盤モデル自体から蒸留された痕跡のトレーニングが汎化の一定レベルを誘発するのに十分なことを示しています。RL はのみ一貫して汎化する手法であり、すべてのベンチマークで 3 つの指標を改善します。RL モデルが Levenshtein 距離と追加認知複雑性での改善が Pass@1 よりも大きいことは、単に破損の逆転を暗記しているのではなく、実際に最小編集へ汎化していることをさらに証拠として示しています。

SFT モデルがバグさえ修正できないため、 Catastrophic Forgetting(過酷な忘却)についても見ることも望みました。具体的には、最小編集のための微調整が一般的なコーディング能力を劣化させるかどうかです。すべての微調整されたモデルを LiveCodeBench v6 で評価し、元のアダプト済みモデルと比較します。理想的にはトレーニング後にパフォーマンスは似ているべきです。

SFT は 43% のパフォーマンス低下を示しており、基本的なバグを識別して修正できなくなるという私たちの以前の発見と一致します。rSFT と DPO モデルはわずかな劣化を経験し、元のモデルによって生成されたサンプルでトレーニングされていたにもかかわらず、タスクの性質が依然としてある程度の Catastrophic Forgetting を引き起こすことを示しています。RL モデルはどのような低下も経験しません。さらにそれが最高のパフォーマンスを出すという事実と組み合わせて、RL は以前獲得した能力を劣化させずにモデルに新しい動作を教えることが可能です。これは SFT が暗記し RL が汎化する広いワークを示すことと一致します。

他のワークで示されている RL の KL 最小化ソリューションへのバイアスにより忘却が減少することから、これらの結果を分布の視点から解釈できます。具体的には、プログラム的に生成されたデータセットの分布はモデルの元の分布とは非常に異なっています。その結果、SFT モデルの分布は大きく修正され、したがって Catastrophic Forgetting を被ります。対照的に、rSFT と DPO の両方の場合、自己蒸留データセットの分布はより整合しており、したがってトレーニングされたモデルの分布を形成する際により少しくわしい性質を持っています。したがって、Catastrophic Forgetting の程度は、モデルの元の分布とタスクトレーニングデータの分布との差に比例している可能性が高いです。

追加実験:LoRA を使用した RL

フルな微調整は必要でしょうか? このタスクは新しい知識を教えることよりも、既存のタスクにおけるスタイルを調整することに少しかかるため、LoRA が十分かどうかも探りました。基盤モデルには既にコードを編集してバグを修正する能力があるため、フルな微調整は必要でない可能性があります。

ランクPass@1 ↑正規化 Levenshtein ↓追加 CC ↓LiveCodeBench Δ ↑
10.7380.1660.676-0.022
80.7750.1120.426-0.022
160.8050.0870.328-0.005
320.7950.0650.235-0.011
640.7970.0510.160+0.001
フル RL (最良)0.8020.0500.185+0.006

表 4: さまざまな LoRA ランクのパフォーマンス比較。

結果は仮説を支持します。ランク 64 の LoRA は Levenshtein 距離でフル RL にほぼ匹敵し、追加認知複雑性ではそれを上回ります。LiveCodeBench は低いランクでわずかに低下しますが、ランク 64 では実質的に平坦であり、フル RL が全体的に最良です。両方の Levenshtein と追加 CC はランク 1 からランク 64 まで steadily 減少する明確な単調な傾向があります。ただし、改善率は均一ではなく、最大の利得は早期に発生します。ランク 1 から 16 が Levenshtein の大部分の減少(0.166 → 0.087)を担当し、ランク 16 から 64 は残りのギャップをより段階的に閉じます(0.087 → 0.051)。ランク 1 と 8 も正しさを編集最小性と交換しますが、これは十分な容量で両方の報酬関数を学習できないことで説明できます。

これは、追加の少数のパラメータだけでモデルの編集動作を変更でき、ある点を超えた容量は減少するリターンをもたらすという考えに一致します。背後にある能力が既に存在するスタイルレベルの行動変化については、LoRA が十分に十分で実行のコストも大幅に安いです。

報酬ハッキングに関する注意

元の報酬関数のバージョンには、ロールアウトで実行に成功しなかったものはハードコードされた報酬 0 を得ていたバグがありました。Levenshtein 距離を否定して「高い方が良い」ようにするためでした。これは、実行に成功したロールアウトよりも高い報酬になった結果です。この buggy な報酬関数であっても、フル RL が依然としてタスクを学習できたことが興味深かったです。LoRA のみでモデルは学習に失敗し、明らかに機能正しいコードを出力するのを学んで報酬ハッキングを行い、環境への調査を促しました。修正された報酬関数では、フル RL の結果はわずかにのみ改善されました。

スケールはどうですか?

最後に、より大きなモデルで結果を検証するために、同じ RL レシピをアウト・オブ・ドメインのデータを使用して Qwen3 14B より大きなモデルに適用します。パラメータ数が増えたとしても、Pass@1 の高さ、Levenshtein 距離の低下、追加認知複雑性の低下、Catastrophic Forgetting の兆候なしに全方向でパフォーマンス向上があります。これは、最小コード編集タスクのためのこのようなレ시피が、さまざまな規模のモデルにも拡張できることを自信にさせてくれます。

モデルPass@1 ↑正規化 Levenshtein ↓追加 CC ↓LiveCodeBench Δ ↑
ベンチマーク:14B0.7700.1360.315
RL0.8330.0590.165+0.011

表 5: Qwen3 14B でトレーニングされた RL のパフォーマンス比較。

最終的な考察

GPT 5.4 と Opus 4.6 に関する注意

最先端モデルでありながら、過剰編集タスクで苦戦しており、特に一般的な設定と Opus 4.6 に対してであることが注目されます。図 3 では、明示的に推論モードで促された際に最大の利得の一つを見せ、その前の GPT 5 に次いでおり、強力な指示追従能力を示唆しています。対照的に、Opus 4.6 は最も小さい改善の一つを示しますが、それは単にすでに強力なベースラインパフォーマンスを反映している可能性があります。このパターンは、GPT 5.4 が往々にして過剰に長大なコード(「スlop」)をデフォルトにする一方、適切なプロンプティングで効果的に誘導できるという広い見方に一致します。

まとめると、結果は過剰編集が広く測定可能であることを示唆しています。同時に、プロンプティングの結果はこれが純粋な能力の制限ではないことを示します。特に推論モデルにとって、元のコードを保存するという単純な指示はるかに忠実な編集につながり、GPT 5.4 が過剰編集する際でも、より高品質なコードへと誘導できることを示す良い兆候です。

さらに、トレーニングの結果はこの動作が改善できることを示唆します。強化学習は一般的なコーディング能力の低下なしにより忠実な編集者を生み出し、その利得は 4B と 14B の両方の Qwen3 モデルで維持されました。

admittedly、コードベンチマークの分野は単純な単一関数評価から SWE-Bench Pro などのよりエージェント的な評価パラダイムへと進みました。それらと比較して、バグ修正の評価を孤立した関数で行うことは、バグの本質から見てまだ比較的収束されたタスクです。

それでも、私の経験において、今日すべての最先端コーディングモデルを通じて過剰編集が蔓延しているにもかかわらず、現実的な設定で定量化するのは長い間困難でした。このワークはコーディングモデルの最小編集能力の評価と改善の第一歩として機能することを願います、そして Ultimately AI 生成コードの全体的な品質向上に貢献します。

謝辞

私の監督者 A/P Min-Yen Kan とアドバイザー Tongyao Zhu の指導、そして Prime Intellect がこのプロジェクトのコストと API コストをスポンサリングしてくださり感謝いたします。

© 2026. All rights reserved.

同じ日のほかのニュース

一覧に戻る →

2026/04/23 5:27

Apple、警察による iPhone の消去されたチャットメッセージの抽出を可能にしていたバグの修正を提供。

## Japanese 翻訳: Apple は緊急に重要なソフトウェア更新をリリースし、iOS 18 およびそれ以前のバージョンを実行する iPhone と iPad(すべてを含む)で、Signal や WhatsApp のような暗号化アプリから削除されたメッセージを法執行機関のフォレンジックツールが抽出できるという深刻なセキュリティ欠陥を修正しました。この脆弱性は、ユーザーがメッセージを削除してもデバイス上で最大 1 ヶ月間キャッシュとして保持され、削除されない通知データが原因でした。これにより、「セットして忘れましょう」という設計思想を持つ危険人物向け自動削除タイマーにもかかわらず、法執行機関(FBI を含む)は押収されたデバイス上の私的チャットを再構築することができました。この問題は Signal 社長メレディス・ホイッターによって確認され、当初は404 Mediaによって開示されました。問題の核心は、削除対象としてマークされた通知が予期せずにデバイス上に保持されたことです。OS 全体のアップグレードを必要とせず、即時のリスクを軽減するために、Apple は該当デバイスに修正をバックポートし、不可欠なプライバシー保護を回復するとともに、将来的なフォレンジック攻撃を防ぐためにモバイルセキュリティプロトコルにおけるより厳格なデータキャッシュ管理の必要性を強調しました。

2026/04/23 2:35

私たちが発見したのは、あなたのすべてのプライベートな Tor アカウントを相互に結びつける安定した Firefox の識別子です。

## 日本語訳: 元のサマリーは優れている—it は簡潔で明瞭であり、主要ポイントリストからのすべての主要ポイントを余計な冗談抜きに捉えている。 ## サマリー: Firefox ベースのブラウザには、プライバシー上重大な欠陥があり、ウェブサイトがプライベートモードであってもユーザーを一意に追跡できるようになっています。この問題は、`IndexedDB`(ブラウザの保存システム)がデータをどのように順序付けるかという仕組みから生じており、これは永続的な「指紋」を作り出します。この順序付けはブラウザを完全に再起動するまで安定するため、異なるウェブサイトにおいて同様のパターンを観測し、従来のクッキーを使用せずにユーザーのウェブサイトの活動同士をつなげることを可能とします。この脆弱性は、セッションデータを閉じた後で消えるかリセットすると期待して匿名性を維持するためにユーザーが依存している Tor の「新しいアイデンティティ」機能のようなプライバシー保護措置を効果的に回避します。 この欠陥がすべての Firefox 派生版で共有される `Gecko` エンジンに存在することに気づいた Mozilla は、最近のバージョン向けの緊急修正をリリースしました。解決策はデータベースリストの表示方法を標準化し、追跡を可能とした内部の保存パターンを取り除きます。その結果、ユーザーはこれらの指紋を完全にクリアするためにブラウザを再起動する必要があります。それまでの間、プライベートブラウジングモードの信頼性が損なわれ、無関係なウェブサイトがユーザーの一貫したクロスサイト行動を識別できないという根本的な信頼が破られます。

2026/04/20 0:19

微小画面向けの 5 ピクセル×5 ピクセルのフォント。

## Japanese Translation: 最も重要な示唆は、AVR128DA28 などのリソース制約の厳しい 8 ビットマイクロコントローラ向けに最適化された、非常に効率的で手作業によるフォント設計にあります。lcamtuf の `5x6 font-inline.h` に基づき、ZX Spectrum のスタイルに触発されたこのアプローチは、ベクトルフォント(メガバイト規模のデータを必要とするため)が失敗したり、限られた RAM を備えたデバイス上で文字列長の計算時に整数溢れ問題を引き起こしたりする記憶制約を解決します。このフォントは合計 350 バイトで完結しており、標準的な 128x64 OLED などコンパクトなディスプレイに適合します。主要な設計判断はグリッド寸法に集中しており、5x5 グリッドが "E" や"M"や"W"のような個別の文字を損なうことなく完全な可読性を維持するための最小サイズであることが特定されました。一方、より小さなグリッドではフォント数の大幅な減少と可読性の低下を引き起こし(例:3x5 に落とすと特定の形状が失われ、3x3 未満では文字セットが単純なコードに縮小されます)。この定幅形式はプログラミングを簡素化し、画面内の文字列長が予測可能(文字数の 6 倍)になります。これにより、厳格にストレージ制限を受けたハードウェア上でもファームウェアは軽量かつ信頼性が保たれます。プロジェクトのソースには、2026 年 4 月に開発された `mcufont.h` および`test.c` と関連するピクセルアートフォントリポジトリが含まれています。