今回は、強いモデルでないと通らなかった仕事が、通るようになった話です。⚠️ 先に、題を否定しておきます。新しいモデルは、使うべきです。出たらまず使ってください。⭐⭐ 使わなくてよくなるのは、その仕事の型を明文にできて、しかも「渡さないと落ちる」ことを確かめた場合だけです。この連載の 1 作目を書き始めた日、私は文章に強いとされるモデルに 8 割方を投げていました。いまは同じ仕事が、既定のモデルだけで出ています。⭐ その間に私がやったのは、モデルを選び直すことではありません。 規約と検査を積んだだけです。

⚠️ もう 1 つ断っておきます。この回にはモデルの名前も、価格も、性能の数字も出てきません。 半年で古くなるものは、この連載では書かないと決めています。書くのは「差がどこで生まれ、何を置くと消えるか」という形のほうです。以降、比べるものは「高い側」と「安い側」とだけ呼びます。

まず一つ思い出してみてください。直近で「これは強いほうでないと無理だ」と判断したとき、あなたは何と何を比べましたか。⚠️ 両方に同じものを渡して、落ちた場所を並べましたか。 それとも、片方が失敗した時点で乗り換えましたか。

CC BY 4.0

1 週間ぶんの内訳は、証拠になりませんでした

手元の記録から、記事を書いていた 1 週間ぶんの応答をモデル別に数えました。

その日にやったことモデルの内訳
1 日目1 作目のドラフト 17 本(規約 0 / 検査 0)文章に強い側 83% / 既定 17%
3 日目3 作目の本文 9 本 + 規約を 76 コミットぶん積んだ既定 78% / 特化 22%
6 日目本文 2 本 + 書き方の検査 3 本⭐ 既定 100%

⭐ 同じ種類の仕事(記事本文を書く)だけを並べると、特化 83% → 既定 78% → 既定 100% です。その間に積んだのは規約 29 条と、書き方を見る検査 6 本でした。

⚠️⚠️ それでも、この表は証拠になりません。 理由が 3 つあります。

  1. ⚠️ 抜いた日がある。 4 日目・5 日目は記事ではなく本の付録を作っていて、仕事の種類が違います。同じ列に並べれば、その日の内訳が「積んだ効果」に見えてしまいます
  2. ⚠️ 文章に強い側の新版が、ちょうど 1 日目の前後に出ています。 「使えるものが増えた」時期と重なっているので、内訳の動きをどちらの理由にも読めます
  3. ⚠️⚠️ いちばん重いのはこれです —— この数字が示しているのは「何を使ったか」であって、「何で足りたか」ではありません。切り替えたのは私の手なので、このままでは私の主観の記録です

⭐⭐ 3 つとも、後から統計で落とせるものではありません。 記録は既に取られてしまっていて、条件は私が選んでいます。だから、統制した側を別に用意しました。

同じ課題を、高い側と安い側の 12 体に渡しました

会話を引き継がない作業者を 12 体、同時に起動して、同じ課題を渡しました。課題は「未公開の記事を 1 本書く」です。軸は 2 本あります。

  • 仕組みの軸 —— 書き方の型を言語化した文で渡すか、渡さないか
  • モデルの軸 —— 高い側か、安い側か

⭐⭐ 採点は人がやりません。この連載の記事は、書き方の型を機械が既に見ています(導入の主題文・次回予告の形・検証手順の 6 ラベル・本文の分量)。その検査をそのまま採点表に流用したので、合否に私の判断が 1 度も入りません。

[observed] 1 回目(12 体・11 点満点)
型を渡さない  高い側 8.0 / 安い側 6.3
型を渡した    高い側 11.0 / 安い側 9.0
仕組みの軸 +2.8 / モデルの軸 1.8

⭐⭐⭐ 仕組みの軸(+2.8)のほうが、モデルの軸(1.8)より大きく出ました。 そして、いちばん効く 1 行はここです ——

⭐⭐⭐ 安い側に型を渡したほう(9.0)が、高い側に型を渡さなかったとき(8.0)を上回りました。

⚠️ ただし、この 1 回ではまだ言えていないことがあります。型を渡した側は、渡した文のぶんだけ入力が長いのです。効いたのが「型」なのか「渡した量」なのか、この形では分けられません。

効いたのは、渡した量ではなく型のほうでした

そこで 2 回目は、条件を 1 つ増やしました。型の話が 1 つも書いていない、同じ長さの文を渡す条件です。⭐ 量だけを型と同じだけ増やして、中身を抜いたわけです。

[observed] 2 回目(12 体・1 回目と同じ 11 項目に換算)
型を渡さない          7.0
同じ長さの無関係な文  7.5
型を渡した           10.2

⭐⭐⭐ 同じ長さの無関係な文(7.5)は、何も渡さないとき(7.0)の隣に落ちました。 型を渡した側だけが、そこから +2.7 離れています。⭐ 効いたのは量ではなく、型のほうでした。

⚠️⚠️ そして、この回でいちばん強いのは平均そのものではありません。別の題材・別の実例・別の並びで回したのに、1 回目とほとんど同じ幅が出たことです(7.2 → 10.0 と 7.0 → 10.2)。⭐ 1 回の差はノイズですが、幅が再現したなら、それは形です。

⚠️ ここも割り切れていないところを 1 つ残します。無関係な文が効かなかったことは、「量は効かない」とも「関係ないと見て読み飛ばした」とも読めます。この形では分けられません。

型を言語化しても、守れないものがありました

落ちた項目を並べたとき、1 位はずっと同じでした。⚠️ 本文の分量です。12 体のうち 7 体、次の回は 8 体が外れました。

⚠️⚠️ 分量の範囲は、規約に数字で書いてあります。 それでも外れます。⭐ 理由ははっきりしていて、書いている側が自分の書いた文字数を数えられないからです。

⭐⭐ 型を言語化しても守れないものがある —— 自分で数えないと分からない型です。

⭐⭐⭐ これは「規約に書くか、検査にするか」という選び方に、線を 1 本引きます。読めば守れる型は、文で足ります。数えないと決まらない型は、文では届きません。 ⚠️ 後者は最初から検査の側に置くしかありません。

⚠️ この結果は「型を言語化すれば安い側でも通る」を否定していません。言語化の形が「文」では足りない型がある、という線の引き直しです。

型を渡さないと、高い側のほうが大きく崩れました

平均だけを見ていると消えるものがあります。⚠️⚠️ 12 体で最低点を出したのは、高い側でした。

その 1 体は、換算前の 13 点満点の 2 点です(⭐ この回の実物は 13 項目で、上の平均はそれを 1 回目と同じ 11 項目へ換算した数です)。見出しの階層を 1 つ間違え、検証の節を 1 つも置きませんでした。⭐ 1 か所を外した結果、そこにぶら下がる項目がまとめて落ちています。

⭐⭐ 型が言語化されていないときの落ち方は、「少し下がる」ではなく「丸ごと外す」ことがあります。

⚠️⚠️ この 1 体だけで、その回のモデルの軸は符号が反転しました。だから私は「安い側のほうが良い」とは書けません。⭐ 書けるのは、平均ではなく落ち方の幅のほうです —— 型を渡さないと、どちらの側も同じようには落ちない

渡さなくても守られる型に、仕組みを置く意味はありません

回を重ねるうちに、逆側の数字も出ました。知見を何も渡さない条件を足したときです。

[observed] 5 回目(12 体・11 点満点)
何も渡さない 10.75 / 実例を渡す 10.75 / 型を渡す 11.00
11 項目のうち、この 12 体が一度も落とさなかった項目: 10

⚠️⚠️ 何も渡さなくても、11 項目のうち 10 項目は両方の側が守りました。 ⭐ 差が出たのは 1 項目だけです。

⭐⭐ 渡さなくても守られる型に、仕組みを置く意味はありません。

⭐⭐⭐ これは主題の反証ではなく、手順の順番の話です。仕組みを置く前に見るべきなのは「置いたら守られるか」ではなく、⚠️ 「置かないと落ちるか」のほうでした。落ちない項目に規約を 1 条足すと、規約だけが増えます。

費用: 仕組みを置くと、置いたぶんだけ何かが塞がります

⚠️⚠️ ここは主題に正面から当たる副作用なので、隠さずに書きます。型を明文で渡すと、渡したことによる失点が出ました。

  1. ⭐⭐⭐ 明文を渡した側だけ、実物の検査から見えない書き方が増えました。 何も渡さない 10 体では 0 件、型を渡した 10 体では 5 件です(⭐ どちらも、2 度の実験を合わせた体数です)。型は守られ、同時に、その型を見張っている検査の目が塞がれます
  2. ⭐⭐⭐ 明文を渡したことが、明文を渡した項目そのものを落としました。 落ちた 3 体は、いずれも落ちた行がコメントだけでした。⚠️ 渡した知見を守るだけでなく、守っている理由を書き残し、その 1 行が当の検査に引っかかった形です

⭐ どちらも「差は仕組みで埋まる」の費用の側です。⚠️⚠️ 仕組みは無料ではありません。 置いた数だけ、置いたことに由来する落ち方が増えます。

原理: モデルの差は、仕組みの穴の在処を指しています

⭐⭐ ここまでの数字を 1 つにまとめます。

⭐⭐⭐ モデルの能力で埋めていた差は、仕組みを置くと埋まります。だから「もっと強いモデルが要る」は、たいてい「仕組みが足りない」でした。

⚠️ 大事なのは、差そのものを消すことが目的ではないところです。⭐ 差が出た箇所は、仕組みが足りていない場所を指しています。 高い側は、足りていない仕組みを能力で埋めてしまうので、穴が見えません。⚠️⚠️ 安い側は、同じ穴でそのまま落ちます。

だから、両方に渡すこと自体が検出器になります。 高い側が通り、安い側が落ちた箇所 —— そこだけが、仕組みで埋められる差です。

⚠️ 逆に、落ちた理由を検査に落とせない差が残ることもあります。⭐ その差は仕組みの穴ではなく、能力の差のほうです。判定は「検査にできたかどうか」で付きます。

flowchart TD
  A["同じ課題を両方へ渡す"] --> B{"落ちたのは<br/>安い側だけか"}
  B -- "両方通った" --> C["⚠️ 仕組みは要らない<br/>置いても守られる型が増えるだけ"]
  B -- "安い側だけ落ちた" --> D{"落ちた理由を<br/>検査にできるか"}
  D -- "できる" --> E["⭐ 仕組みが 1 つ増える<br/>差はここで埋まる"]
  D -- "できない" --> F["⚠️ ここは能力の差<br/>高い側に残す"]

⭐⭐ 払うのは 1 度です。 両方に渡すぶん、その場では高くつきます。⚠️ 差が消えた項目については、以後を安い側で回せます。

検証手順: 両方に渡して、落ちた差だけを仕組みにする

前提

  • 会話を引き継がない作業者を、同じ課題へ同時に起動できること(1 体ずつ順に回すと、その時々の混み具合が条件の差に化けます)
  • 合否が機械で決まる課題であること。⚠️⚠️ 人が採点する課題では、この手順は費用が跳ねます(体の数だけ人の判定が要ります)
  • ⚠️ 題材は未公開のものにすること。公開済みのものを書き直させると、正がどこにあるかが濁ります

所要時間: 30 分(採点する検査が既にある場合。無いなら、まず検査を 1 本書くところから)

手順

  1. 同じ課題を用意します。⚠️ 両方へ渡す中身は 1 バイトも同じにします
  2. 高い側と安い側の両方に、同じものを渡します。⚠️ 1 回の差はノイズなので、同じ課題を複数回回します
  3. 高い側が通り、安い側が落ちた箇所だけを並べます。⭐ ここが仕組みの足りない場所です
  4. ⚠️ 並べた 1 つずつに「渡さないと落ちるか」を先に当てます。両方が守っている項目は、ここで捨てます
  5. 残った差を、規約か検査にして置きます。⚠️ 数えないと決まらない型は、規約ではなく検査の側に置きます
  6. もう一度、両方へ同じものを渡します

合格条件(すべて満たすこと)

  • 手順 3 で並べた差が、1 つ以上ある(0 件なら、その課題では仕組みの穴が見えていません)
  • 手順 5 で置いたものが、人の判定を 1 度も要求しない(要求するなら、それは仕組みではなく運用です)
  • 手順 6 で、安い側の落ちた箇所が減っている
  • ⚠️ 高い側の点が下がっていない(= 置いた仕組みが、通っていた側を壊していない)

合格しなかったとき

  • 差が 0 件だった —— 課題が易しすぎます。⚠️ 題材の側を難しくしてください(物差しを厳しくすると、次は全員が同じ 1 か所で落ちて、やはり差が測れません)
  • 差はあるが、検査にできない —— そこは能力の差です。⭐ その項目だけ高い側に残すのが正解で、無理に規約へ書くと守られない条文が 1 つ増えます
  • 手順 6 で高い側が下がった —— 置いた仕組みが、通っていた書き方まで禁じています。⚠️ 条文の範囲を、落ちた現物 1 件ぶんまで狭めてください
  • 落ち方が体ごとにばらばら —— 回数が足りません。⚠️⚠️ 1 体の極端な結果で平均の符号が変わります(実際に、最低点の 1 体だけでモデルの軸が反転しました)

後始末

  • 作業者が書いた現物と採点表を削除します。⚠️ 採点表も一緒に消してください —— 残すと、題材を作り直したつもりのまま古い採点で比べることになります
  • ⚠️ 手順 5 で置いた規約・検査は残します。⭐ 消してよいのは測定の跡だけです

注意: この実験が言えないこと

⚠️⚠️ 「安い側を既定にしてよい」とは、まだ言えません。 条件ひとつあたりの回数が少なく、モデルの軸は 1 体の極端な結果で符号が変わる程度の差しかありませんでした。⭐ 言えているのは仕組みの軸のほうが大きく出たことと、その幅が別の題材で再現したことまでです。

⚠️ もう 1 つ。難しさは、物差しではなく材料で決まっていました。 同じ物差し・同じ課題のまま、材料の言い回しを変えただけで、ある項目の落ちた体は 4 → 12 → 0 と往復しています。⭐⭐ 合否で測るかぎり、難度は材料の 1 行で反転します。 だから、この形の実測は絶対の点数ではなく、同じ材料の中での条件差としてだけ読めます。

⚠️ そして冒頭の内訳表は、最後まで証拠になりません。⭐ 統制された側で言えるのは「型を渡すと差が縮む」までで、「私が乗り換えなかった理由」はそこには含まれていません。

CC BY 4.0 はここまで

乗り換えなくなったもの

  • 失敗を見たときに、上のモデルへ替えるのをやめました。 先に、同じものを両方へ渡します。⚠️ 片方だけが落ちた箇所が無いなら、替えても直りません
  • ⭐⭐ 「守られていない型」を規約に足すのをやめました。 足す前に、渡さなくても守られるかを見ます。守られるなら条文は増やしません
  • ⚠️ 数えないと決まらない型を、文で書くのをやめました。 分量・個数・並びの数は、最初から検査の側に置きます
  • ⚠️⚠️ 新版が出た日に、組み方のほうを入れ替えるのをやめました。新しいものは使います。入れ替えるかどうかの材料が発表ではなく、手元で落ちている箇所の一覧だ、という話です

強いモデルが要る、という判断は、たいてい正しく見えます。⚠️ 落ちたところを見たうえでの判断だからです。 ⭐⭐ ただ、その落ちたところが「仕組みで埋まる側」なのかは、両方に渡してみるまで分かりません。


次回は「サブエージェントを使わない技術」。私は、本体で終わる仕事をサブエージェントへ投げるのをやめました。任せた 1 体が返してくるまでの間に、こちらが読み直している前提の量を数えたからです。