あなたがボトルネックです
ハーネスという「精神と時の部屋」
4か月で122個の計測ハーネスを作った。厳密さのためではない。速度のためだ。
計測ファーストの正体は精度ではなくサイクルタイムで、最初に潰すべきボトルネックは——自分自身だった。
決定論(同じ入力なら同じ数字が出ること)は目的ではなく、人間をループから外すための前提だ。反復が安くなれば、勘で1点を選ぶ代わりに十数通りを流して形を見られる。そしてAIと組むほど、検証ループに残った人間が律速になる。
計測ファーストは、実は「精度」の話ではなかった
「ちゃんと測ろう」と言うと、たいてい”厳密さ”の話だと思われる。バイアスを消せ、対照を取れ、有意差を見ろ——それも大事だ。でも、私が4か月で122個の計測ハーネスを作った本当の理由は、厳密さではなかった。速度だ。そして私が速くしたかったボトルネックは——私自身だった。
順番に話す。最初から分かっていたわけではない。
発端①:分解して測る
きっかけの半分は、以前書いた思考をオフにしただけで、生成トークンが1/27になった話だ。プロバイダのログに出ていた生成時間の項目を見て、“遅い”を一つの塊で語るのをやめ、区間に分解して測るようになった。これは「正しいものを測る」というマインドの芽だった。
でも、これはまだ”ログを目ざとく見る”止まりで、仕組みではなかった。
発端②:最初の「ハーネス」は、決定論から生まれた
「ハーネス」という言葉を初めて使ったのは、その約6週間後。動機は別の、もっと具体的な痛みだった。
Live翻訳(動画字幕をリアルタイムに訳す機能)のOCRを最適化していたのだが、実機で測ると値がシーン依存で暴れる。ある改善案を2回走らせたら −3% と −10.7% でブレた。v3→v4を比べるのに5分のLiveを3回(baseline/v3/v4)回したが、同じシーンを撮れず、OCRが走るregion数が毎回違って分母が揺れる。「スキップ率が+8.6pt上がった」のが本物の改善なのか、ただシーンが変わっただけなのか、フレームが変わると切り分け不能だった。
そのとき書いた一文が、いま思えばハーネス思想の誕生だった。
「同じframe列を2回流して数値が一致するなら、その差は実装差」という当たり前の仮説検定ができていなかった。これがハーネスの動機。
解は単純だった。フレームの供給元を抽象化して、実画面を録る側と、それを決定論的に再生する側に分ける。これで同じフレーム列に何通りもの設定を流し、決定論的にA/Bできるようになった。
——だが、決定論はまだ表層だった。その下にもっと本質的な動機があった。
本当の動機:毎回録画を回していたのは、私だった
正直に告白すると、決定論が欲しかったのは半分で、本音は「毎回自分が録画を回すのが面倒でボトルネックになっていた」からだ。改善案を1つ試すたびに、私が端末を持って5分の動画を撮る。開発速度が、私の手作業で律速していた。
頭の中にはずっと、イーロン・マスクのインタビューの一節があった。
“Any given thing can be sped up.”(どんなものでも速くできる)
だから私は無意識に、ボトルネックを自分に置かない状態を設計しようとしていた。録画を一度データに焼いてしまえば、以後は私の手が要らない。ハーネスは、測定器であると同時に「自分を作業ループから外す装置」だった。
運用して分かった一番の果実:精度じゃなくて、サイクルタイム
ハーネスで回すようになって、期待していた効果は得られた——仮説検定の精度が上がった(同じ入力で同じ数字が出るので、差が実装差だと言い切れる)。
でも、一番効いたのはそこじゃなかった。
一度データに焼いてしまえば、毎回5分の録画をやり直す必要が消える。私が費やしていた手作業のループが、まるごと無くなった。しかも同じフレーム列に、設定を変えて何通りも——並列に、決定論的に——流せる。私が端末を持って撮り直す必要も、シーンがずれて比較不能になる心配もない。試して・測って・直すサイクルが、一気に速く回りだした。実際、計測器の数はこう増えていった——
| 時期 | 新規ハーネス | 何が起きたか |
|---|---|---|
| 〜2026-04(前史) | 3 | 性能ベンチのみ(“ハーネス”と呼ぶ前)。品質は目視 |
| 2026-05 | 38 | 品質計測が誕生(8Bの天井→モデル軸の判断が目視で決着せず) |
| 2026-06 | 45 | on-device / funnel / genre感度 |
| 2026-07 | 36 | 退役対応 / self-host / 量子化判断 |
約4か月で122個(うち”ハーネス”として本格化したのは、命名した5月以降の119個。残り3つは前史のベンチ)。もはや”たまに測る”ではなく、測ることが開発のデフォルトになっていた。理由は思想が偉かったからではない。測るのが速くて安くなったから、測らない理由が消えただけだ。
反復が安くなると、点でなく「面」で測る —— Sweep
サイクルが速く・自動になると、問いの立て方が変わる。「AはBより良いか」(点の比較)ではなく、「このパラメータを端から端まで振ったら、曲線はどんな形か」(面の走査)を訊くようになる。これが Sweep の思想だ。
最初にやったのは、OCRするときの画像解像度をいろいろ変えて、精度と速度がどう変わるかを一通り見てみることだった。やがて、閾値やモデルの設定など、あらゆるパラメータで同じことをやるのが当たり前になった。勘で1つの値に決める代わりに、十数通りを一気に流して、いちばん良い谷を見つける。手作業なら正気を疑う回数でも、ハーネスなら数分で終わる。
これが「精神と時の部屋」効果
私は今、ハーネスを「精神と時の部屋」——単位実時間あたりの反復回数を異次元に増やす装置——として重宝している。外の世界の1日が、部屋の中では何十回もの実験になる。強くなって出てくるのは、モデルでも自分でもなく、意思決定の速さと確度だ。
そして、AIと組むと、これは二乗で効く
ここが一番言いたいことだ。
AIエージェントと開発するようになって気づいた。あなたが毎回の検証ループの中に居ると、今度は”あなた”が新しいボトルネックになる。AIがコードを10分で書いても、その良し悪しをあなたが手で確かめていたら、律速はあなたに戻る。
ハーネスがあると、これが解ける。決定論的に測定可能な足場 + 自動化があれば、AIは自分でループを回せる——変更し、走らせ、数字を読み、次を決める。あなたはループの外に出られる。
だからこう言える。「ハーネス=人とAIの共有言語」(同じ数字を見て互いの幻覚を防ぐ)と、「ハーネス=自分をボトルネックから外す装置」は、同じ一枚のコインの裏表だ。そして——AIと組む時代にこそ、これは効く。人間が速くなればなるほど、次に律速するのは”検証を人間がやっていること”だからだ。
教訓
- 計測ファーストの正体は、精度でなくサイクルタイム。 最初に潰すべきボトルネックは、たいてい自分だ。
- 決定論は目的でなく、自動化の前提。 同じ入力で同じ数字が出るから、ループを機械に渡せる。そして反復が安くなったら、点でなく面で測る(Sweep)——勘で1点を選ぶより速くて確かだ。
- AIと組むほど、人間が検証ループに残ると人間が律速する。 ハーネスは人間をループから出す装置——AI時代の複利。
最適化の話をするとき、人はつい対象(モデル、コード、レイテンシ)を速くしようとする。でも “Any given thing can be sped up” の any given thing には、あなた自身も含まれている。まず自分をループから外す。そこから、部屋の時間が流れ始める。
付録:事実確認
| 項目 | 内容 |
|---|---|
| 最初のハーネス | 実画面の録画と、その決定論的な再生を分けた計測の足場。A/B計測を決定論化し、同じ入力から同じ数字が出る状態をつくった |
| 規模 | 4か月で122個。目的は厳密さではなく、1周あたりの時間を削ること |