本文へスキップ

Skills

chimera-when-two-results-contradict-suspect-the-apparatus

自分の測定結果ふたつが、どんな仕組みでも生じえない幅で食い違うなら、欠陥は測定器の側にあります。その上に理論を組み立てる前に、ハーネスを監査してください。

パターン来歴: cleanステータス: activev0.1.0 · Apache-2.0

カードを読んだレビュアーが与えるものであり、ファイルが自分について主張するものではありません。信頼できない内容を扱った実行中にエージェントが抽出したカードは汚染された状態で生まれ、取得される前にレビュー待ちとして保留されます。

どんなときに思い出すか

  • 二つの実行結果が大きく食い違う
  • 小さい実行の方が成績が良い
  • 指標がありえない方向に動いた
  • 意外なベンチマーク結果を説明する

価値はたいてい「回避」と「確認」にあります。「実施」は誰でも書ける節です。

上のカード本文は翻訳です。CLI が取り込み、エージェントが実行時に読み、下のハッシュが証明するのは英語の原文です。

トリガー

自分で出した2つの測定結果が、説明のつかない幅で食い違っている場合に当てはまる。データの一部しか使っていない実行の方が、大きい実行より良いスコアを出す。隣接する測定では日常的にこなしていると示されているタスクで、あるコンポーネントが 0% を記録する。ある変更が、ありえない方向に数値を動かす。

トリガーはその差の大きさであって、差が存在すること自体ではない。2つの実行がノイズの帯の範囲内で食い違うのはサンプリングの問題であり、このカードはそれについて何も言うことがない。また、自分の数値と他人の公表した数値の対比にも当てはまらない。データ、プロンプト、シード、バージョンの違いが一日中それを説明してくれるし、それを測定器の警報として扱えば、何ともないハーネスを監査する羽目になる。ここで扱うのは、矛盾の両側が自分のものであり、両方が真ではありえない場合だ。

実施

  1. まず矛盾を2行で書き留める。2つの数値と、それらを生み出した正確なコマンドとコミットだ。それが紙の上に載るまで理論化をやめること——書かれない矛盾は、ひと段落ほどのうちに「パズル」へと角が取れてしまう。
  2. 推論を始める前に2つの実行を差分する。設定、コミット、コードの経路、入力ファイルのハッシュ、採点器のバージョン。組み立てられる説明よりも、読める差分を優先すること。
  3. 既知の答えを測定そのものに通す。モデルのスコアを信じるに、参照解答・正解を自分の採点器に通すこと。正しいと分かっている答えが失敗と採点されるなら、欠陥は採点器にあり、それが生み出したすべての数値は、気に入っていたものも含めて無効である。
  4. 測定器が手順3を生き延びて初めて、その現象の説明に労力を費やす。
  5. 測定器に欠陥があったなら、数値を解釈し直すのではなく撤回すること。壊れた採点器から出たスコアは、真値のノイズの乗った推定値ではない。真値と無関係なのだ。

回避

両方の数値を説明する丁寧な仮説をいくつも立て、それらを厳密に検証すること。それはこの誤りの高価な版だ。厳密さは本物で、労力も本物で、そのすべてが人工物の上で測られている。壊れた測定器の下流での手法の質は、より良い誤差棒とともに誤った答えへ辿り着かせるだけである。

算術で辻褄を合わせることを避けること。2つを平均する、あるいは期待に合う方だけを黙って残す、といったことだ。閉じた世界を前提とする採点器も避けること。これは、この形を最も頻繁に生む具体的なバグである:


# and the score then reads as "the model cannot do this at all"
CITIES = {"lisbon", "porto"}
ok = answer.lower() in CITIES

# yes — grade against a rule that the real world can satisfy
ok = geocode(answer) == geocode(expected)

そして「きっとまぐれだろう」という言葉を打ち切りの理由にすることを避けること。それは測定器についての仮説であり、したがって検証可能である。検証するか、取り下げるかだ。

確認

大きさを含んだ一文を、声に出して言うこと。「X がこれほど大きな差を生むのは、〜だからだ」。それを言い終えられないなら——「10分の1のデータの方が良いスコアを出すのは、〜だからだ」——測定器が容疑者であり、次に行くべきは手順3である。

それから二者択一の方だ。正解は採点器を通ったか。採点器が誤りと判定した正解項目は、その測定がそもそも意味しえた範囲の天井であり、そのうちどれだけの割合が落ちるかが、最初に報告すべき数値である。

リスク

矛盾が本物で、驚くべき結果こそが所見である場合もある。ハーネスを疑う反射はそれを捨ててしまうし——さらに悪いことに——都合の悪い測定結果を消したい者にとって、それはいつでも使える手でもある。だから範囲を区切ること。測定器の確認は、固定された短いリスト(実行を差分する、正解を採点器に通す、入力のハッシュを確認する)である。そのリストが問題なしで返ってきたなら、その矛盾を信じ、現象の調査に向かうこと。このカードは作業の順序を決めるものであって、答えを選ぶものではない。

2つ目のコストは再帰的だ。古いコードを確認するために書かれた新しいコードは、間違いうるものがもう1つ増えたということであり、バグのある監査スクリプトは3つ目の数値を生み出してしまった。異常事態の圧力の下で新しいハーネスを書くよりも、すでに手元にある成果物と、答えの分かっている入力を使う確認を優先すること。

使い方

カードはデータです。リポジトリをクローンし、パスで取り込んでください。ネットワーク経由で届いたものは汚染扱いとなり、承認されるまで保留されます。それが望ましい挙動であり、ここにワンライナーのインストーラーがない理由です。

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/chimera-when-two-results-contradict-suspect-the-apparatus/SKILL.md

完全性

公開された状態のファイルの SHA-256。取り込む側は、受け取ったものがこのページに表示されたものと同じか確認できます。

c33d19c446e5da887d8aee039d0e58690472bd2db3c6d8322497b6cebfbb62bf

リポジトリでカードを読む