研究ノート

予測可能なコード生成には保持契約が必要

決定論的サンプリングだけでは不十分な理由と、観測可能な保護対象の性質および受入検査によってコード生成の振る舞いを検証可能にする方法。

この研究ノートを共有共有

端的な回答

コード生成を、単に制御可能なだけでなく予測可能にするものは何か?

予測可能性を確保するには、変更可能なもの、安定して維持すべきもの、各特性の測定方法、出力を棄却する条件を、生成前に観測可能な契約として定める必要がある。固定されたプロンプト、シード、マスク、文法、潜在コードは、いずれも単なる仕組みにすぎない。

区別が重要である理由

手法と主張する保証には、同一の観測可能な境界が必要である。

決定論的生成は、条件を固定すると同じ出力を反復する。予測可能な生成では、宣言した性質を検証可能にする。たとえば、APIシグネチャが変わらない、編集が領域内に収まる、構文の妥当性が保たれる、テストスイートに引き続き合格するといった性質である。

この区別が重要なのは、制御入力だけではその効果が定まらないためである。潜在位置の固定、シードの固定、または文法への制約により生成を検証しやすくできるが、保護対象の特性は復号後にも測定しなければならない。

実践的な手順

  1. 保護対象の性質を宣言する

    所定の許容範囲内に維持すべきソース領域、構造、インターフェース、振る舞い、または分布を明示する。

  2. 要件に対応する制御機構を選択する

    保護する性質に応じて、ソースの再利用、編集マスク、形式制約、潜在表現の固定、または提案後の検証を用いる。

  3. サンプリング前に受入基準を定める

    出力を確認する前に、構文解析、コンパイル、テスト、構造検査、局所性の閾値、およびタスク成功基準を定める。

  4. 反復時の振る舞いを測定

    単一の例示的な結果に依存せず、反復実行における受理、棄却、安定性、多様性、不確実性を報告する。

必須とすべき証拠

主張の強さは、生成または復号後に測定した性質によってのみ裏付けられる。

  • 保護対象の特性と編集可能な特性を個別に明記する。
  • 主張するすべての保証に、観測可能なテストまたは指標が対応している。
  • タスク成功を安定性と併せて評価する。
  • 反復実行間の変動と棄却率を確認できる。
  • 未測定の性質は、主張の対象から明示的に除外する。

リンク先の研究が報告する内容

  • リンク先の実験は、短いPython関数に対する検証可能な制御面の一つとして、階層的な離散位置を公開する。
  • 上位位置4個の固定により、非固定位置の高い変更率とサンプルの高い一意性を保ったまま、構文解析成功率が向上した。
  • 本論文はこれを初期的かつ確率的なエビデンスとして報告しており、ASTの厳密な保持、意味的等価性、機能的正しさ、またはリポジトリ規模での予測可能性を主張してはいない。

出版物の概要を読む 論文全文を検索

対象範囲の境界

  • 予測可能性は特性ごとに異なる。構文について予測可能なシステムでも、振る舞いについては予測不能な場合がある。
  • 決定論的復号では、同じ誤編集や過度に広範な編集が繰り返される場合がある。
  • 本サイトで公開されている実験は、測定対象である短い関数の設定を超える保証を与えるものではない。
保存契約を定義する

主要文献と近接文献

原手法、測定結果、明記された制約については、リンク先の論文を参照されたい。

  1. Inspectable Control for Structure-Preserving Software Regeneration

    範囲を限定した主要実験と、明記されたエビデンスの限界。

  2. EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding

    変更のないソース断片を再利用する、編集指向の機構。

  3. Constrained Decoding of Diffusion LLMs with Context-Free Grammars

    明示的な形式制約を備えた機構の例。

管理者 。本ページは既存のエビデンスを要約したものであり、引用文献を超える実験結果は追加していない。

研究ノートをすべて閲覧