AI・機械学習
4回繰り返す(システムプロンプトで)
Say It Four Times (In Your System Prompt) (khola.blog)
要約
システムプロンプトで指示を繰り返すことは効果がありますが、約4回繰り返すと効果が薄れます。それ以降は迷信であり、トークンを消費するだけです。この発見は、AIコーディングエージェントに関する一般的なアドバイスを検証したもので、指示の繰り返し回数とAIの応答精度との関係を実験的に示しています。
全文翻訳
4回繰り返す
システムプロンプトで指示を繰り返すことは効果がある。
それは約4回繰り返すと効果がなくなり、平均値はそれが効果があった人を隠す。
Nitin Khola 2026年8月19日
12
共有
短いバージョン:システムプロンプトで指示を繰り返すことは本当に役立ちます。約4回の繰り返しで役立たなくなります。それ以降はすべて迷信であり、トークンを消費します。
それが発見のすべてです。それを得るのに約1ドルかかりました、そして私は火曜日に知っておくと良いちょっとしたことだと思います。
Khola.Blogを読んでいただきありがとうございます:Post-Human Engineering!新しい投稿を受け取り、私の仕事をサポートするために無料で購読してください。
購読する
これは、私がここで毎週の習慣にしたいことの最初のものです。AIコーディングエージェントに関する主張を1つ選び、週末にテストし、たとえそれが flattering でなくても、数字を公開します。研究ではありません。ただ実際に確認しているだけです。
なぜ私がそれをしたのか
あなたはそのアドバイスを見たことがあるでしょう。重要な指示を繰り返してください。それを最初と最後に置いてください。モデルが真剣に受け取るように2回言ってください。誰もがこれの何らかのバージョンを行っていますが、私自身もそうです。そして、私はそれに対して数値を添付したことがありません。
次に、私の毎日のブリーフィングで、実際の形をした論文が目に留まりました。Han-yu Wangの「When More Becomes Less: Position-Dependent Repetition Effects in Language Models」(論文:arXiv 2608.04021、ブリーフィング:8月6日)は、ターゲットのコピーを増やすとどうなるかをテストし、その答えはコピーがどこに配置されるかに依存することを発見しました。隣り合って積み重ねられたコピーは上昇してから平坦になります。モデルの読み出し位置から離れて配置されたコピーは、早いピークに上昇してから低下するこぶを生成します。
それは私が毎週やっていることに関する具体的で検証可能な主張なので、私が実際にプロンプトを書く方法と一致する半分をチェックしました。
私は最初に自分の推測を書きました。これは私が守るルールです。私の推測は、こぶ、そしてその低下を見るだろうということでした。私は間違っていました。そして間違っていたことで、論文をきちんと読み直すことになりました。それはそれ自体で小さな教訓です。
私が実際に行ったこと
セットアップは意図的に退屈です。
モデルが従うか従わないかの1つのルールを選びました:単一引用符を使用し、二重引用符は絶対に使用しない。次に、Pythonの通常の関数を6つ要求しました。これは、ある午後に書くような種類のものです。いくつかの区間をマージする。辞書をフラット化する。バージョン文字列を解析する。
実行間で変更された唯一のことは、その引用符ルールがシステムプロンプトに何回現れたかでした:0回、1回、2回、4回、8回、または16回。
同じルール、ただ繰り返されただけです。
各組み合わせについて30回の試行。合計1080回の実行、Gemini 2.5 Flashで、すべてVertex上で。
回答のチェックには判断を必要としませんでした。Python自身のトークナイザーを実行し、二重引用符で開かれた文字列を数えました。そのうちのゼロは、ルールに従ったことを意味します。それだけです。モデルが別のモデルを採点するわけでもなく、私が差分を凝視して何がカウントされるかを決めるわけでもありません。
ゼロ繰り返しの実行は重要な対照です。これは、引用符にまったく言及しない場合であり、モデルが放置されたときに何をするかを示しています。
言及する価値のある1つの脱線:私の最初の3つの候補ルールはすべて失敗でした。私は「コメントなし」、「ドックストリングなし」、「型ヒントなし」を試しましたが、モデルは最初の質問でそれらすべてを約99%の時間 obeyed しました。改善の余地がない場合、繰り返しの助けになるかどうかを測定することはできません。そのため、モデルが実際に抵抗するルールを探しに行きました。そして引用符のスタイルがその1つであることがわかりました。
返ってきたもの
対照行は私の好きな数字です。モデルは、それを自分で放っておくと、毎回二重引用符を使用しました。ほとんどの時間ではなく。それらすべて171個です。したがって、その習慣は習慣ができる限り強いので、テーブルの残りの部分が意味を持つようになります。
ルールを1回言うと74%になります。4回言うと97%になります。この2つは十分に離れているので、それが現実であると呼ぶことに自信があります。
4回を超えると、線は平坦になります。8回と16回は4回と同じ範囲内に収まります。私の予測された低下は決して現れませんでした。そして率直に言って、このサンプルサイズでは小さな低下を見逃す可能性があります。
私が言えることは、5回から16回までの繰り返しに対して誰も報酬を得ていないということです。
これは後になって初めて理解した部分です。私はルールのコピーをすべて隣り合わせに積み重ねました。これはWangの論文の隣接ケースであり、隣接ケースは上昇してから平坦になるとされています。
私が探していたこぶは、コピーがモデルの読み取り位置から離れて配置される別のケースに属します。したがって、これは論文と矛盾しませんでした。それは、自然言語のルールをコーディングモデルに渡すという、まったく異なる方向から論文の予測に着地しました。これは私が予測したよりも良い結果であり、ソースに戻らなければ完全に逃していました。
私が予期しなかった3つのこと
平均値はほとんどすべてを隠しています。私の6つのタスクのうち2つは、最初の言及で100%に達し、決して揺らぎませんでした。別のタスク、区間マージは、1回の言及で20%にとどまり、97%に上昇するには4回必要でした。
したがって、繰り返しは一般的にモデルをより従順にしているわけではありません。それは、モデルの習慣があなたのルールと戦っている特定の場所を救済しています。あなたの仕事がそれらの場所のどれにも似ていないなら、あなたは何も支払っていません。
これらのセルのほとんどはコインフリップです。私のタスクと繰り返しの組み合わせの半分から3分の2は、30回の同一の実行で全合格でも全不合格でもありませんでした。
同じプロンプト、同じモデル、同じ設定、異なる回答。
もしあなたがプロンプトを調整し、それを2回実行し、その調整がうまくいったと結論付けたことがあるなら、これはあなたを悩ませるべき数字です。それは私を悩ませます。
残りの違反には形がありました。ルールが一度でも現れると、通常の二重引用符の文字列は完全に消えます。
残っているのは、関数の先頭にある三重引用符のドックストリングです。
モデルは、ドックストリングを文字列ではなくドキュメントとして扱っているようです。そのため、引用符に関するルールは決して到達しません。
制約がどこでも従われたのに、1つの場所だけ例外だった場合、おそらくそれが起こっていることです。
モデルはそれを別の引き出しに入れています。
テイクアウェイ:エンタープライズおよび個人利用
プロンプトライブラリがある職場にいる場合。テンプレートの繰り返しを約4回で上限とし、残りのスペースは例に費やしてください。
より大きな問題はコインフリップの問題です。チームがプロンプトの変更を、変更前と変更後に1回ずつ実行して評価する場合、そのプロセスは劇場です。
結果を尋ねる前に、何回の実行が必要か尋ねてください。3回が最低ラインです。10回が望ましいです。
自分で何かを構築している場合。ルールがうまくいかない場合、それを最大4回繰り返すことが、あなたが持っている最も安価な修正であり、それは本当に機能します。
4回でうまくいかない場合は、繰り返すのをやめて、何か別のものを変更してください。なぜなら、5回から16回は私に何ももたらさなかったからです。
そして、制約が1つの場所を除いてすべて従われた場合、モデルが別の名前で保存しているものを探してください。ドックストリングが文字列ではないように。
これは何ではないか
これは1人、1週末、1つのモデルです。それは最先端ではなく、そうしようともしていません。
私はGemini 2.5 Flashを、ある日、思考をオフにしてテストしました。
異なるモデル、異なるファミリー、または思考をオンにすると、すべてがこれを動かす可能性があります。
私は、文字通り繰り返され、すべてのコピーが同じ場所にある構文に関する1つのルールをテストしました。
動作に関するルール、または毎回言い換えられたルールは、ここではテストされていません。
大きくテストされていないのは間隔です。私のルールのすべてのコピーは1つのブロックにありました。そして、論文はそれが平坦になるケースだと言っています。
プロンプト全体にコピーを分散させることが、あなたを悩ませることになるケースだとされています。そして、それは次の実験であり、私が手放しで渡せる注意点ではありません。
そして、これらは6つの小さなスタンドアロン関数であり、実際のレポジトリと実際の剤ループではありません。これは通常、ジャンプを生き残れない種類のものです。
もう1つ、それはほぼ実験全体を失うところでした。
私の最初の実際の実行では、サンプルのほとんどが読み取り不可能として破棄されました。
Geminiの思考トークンは出力制限に含まれますが、別々に報告されるため、寛大に見えた制限は、推論によって静かに食べられました。