横浜で外壁塗装屋をやっている非エンジニアです。重い実装は相棒のAIに任せ、僕は「方向を決める」「現物で確かめる」係。成長記録 #5 です。
#1「疑う」、#2「測る」、#3「一次を見る」、#4「配管」。今回 #5 は、#4 の最後に予告した「別の頭」——自分とは違う系統のAIに"第二意見"を聞く仕組み——の続きです。
そして今回いちばん腹落ちしたのは、**「確率で動くAIに、"もう決まっていること"を決め直させるな」**という、線の引き方の話でした。
TL;DR
- 自社AI(Iris)に「別系統のAIに第二意見を聞く」機能を付けた。でも**普通の言い方で頼むと、聞いてもいないのに"第二意見はこうでした"と"でっち上げる"**問題が残った。
- 直し方の第一感は「もっと道具操作が得意な、強いモデルに載せ替える」。でも載せ替える前に、その強いモデルを1本テストした。
- 結果、強いモデルも、普通の言い方ではまったく同じように転んだ。「モデルが弱い」のが原因ではなかった。しかも載せ替えると、せっかく持たせた**"目"(画像を見る力)を失う**ところだった。
- 本当の原因:僕は、人間がもう決めたこと(「第二意見ちょうだい」)を、気分屋のAIにもう一度"判断"させていた。
- 直し方:人の言葉に"第二意見"という合図があったら、AIに訊かず、コードが問答無用で実行する(決定論)。するとでっち上げは"防ぐ"ものではなく、構造的に起こり得なくなった。
背景:#4で予告した"別の頭"を作ったが…
#4 でAIに"手"(自分で道具を使う力)を持たせ、最後にこう書きました——「次は"別の頭"を足す」。
うちの相棒AI(Iris)は1つの頭で動いています。でも僕は普段、迷うと Gemini にも ChatGPT にも聞いて、違う系統の意見を突き合わせる。これを自動化したかった。Iris が、自分とは作りの違う別のローカルAIに「これどう思う?」と聞いて、答えに混ぜる——そういう仕組みです。外部の有料APIは使わず、全部自分のPCの中で完結させました(このこだわりは僕の"自社化"の発想そのものなので、また別の機会に)。
仕組みは出来た。でも、ひとつ嫌な癖が残りました。
症状:聞いてもいないのに「別のAIはこう言っています」
「○○について第二意見も聞きたい」——こういう普通の言い方で頼むと、Iris はときどき、実際には別のAIに一度も聞いていないのに、「別のAIの意見はこうです」ともっともらしい第二意見を"自作"して出してきたんです。
これは別の日に一度、僕が「お、いい意見だ」と感心しかけて、**裏の記録を見たら"実際には聞いていなかった"**と判明した、ヒヤッとした件でした。AIは、命じられた仕事の"空白"を、それっぽい嘘で埋めてしまうことがある。
第一感:「もっと強いモデルに変えれば直る」
直し方として最初に浮かんだのは、**「Iris の頭を、もっと"道具を使うのが得意"と評判の別のモデルに載せ替える」**でした。世の中には道具操作が強いとされるモデルがある。それに変えれば、ちゃんと聞きに行くようになるはず——そう考えました。
相棒AIも「その方向はあり得る」。でも、載せ替えは重い作業だし、何より——その候補モデルは"目"(画像を見る力)を持っていない。載せ替えたら、#4までに苦労して持たせた"目"を失う。
一次:変える前に、その"強いモデル"を1本だけ測った
ここで #3 の規律が効きました。「強いモデルなら直る」というのは、まだ僕の頭の中の仮説にすぎない。重い載せ替えに半日かけて、目まで失って、それで直らなかったら最悪です。
だから、載せ替える前に、その"強いモデル"へ、Iris が転んだのと全く同じ"普通の言い方"を1回だけ投げてみました(5分の作業)。
結果は、予想外でした。
- 普通の言い方では——その強いモデルも、Iris と全く同じように、道具をちゃんと呼ばずにグダグダの壊れた形を吐いた(おまけに知らない言語の文字化けまで混ぜて)。
- 一方、「この道具を使え」と強く明示すれば——強いモデルも、うちの小さいモデルも、両方ちゃんと呼べた。
つまり、「自然な言い方で道具を呼ぶ」のは、モデルの強弱の問題じゃなく、小さいローカルAIに共通して難しい。強いモデルに変えても、肝心の"普通の言い方"は直らない。しかも目を失う。 ——載せ替えは、やる前に却下になりました。1本のテストが、半日と"目"を救った。
気づき:僕は"もう決まったこと"を、気分屋のAIに決め直させていた
では何が本当の原因か。相棒AIと詰めて、ストンと落ちた言い方がこれです。
僕が「第二意見ちょうだい」と言った時点で、"第二意見を使う"はもう決まっている。 なのに僕の作りは、その決まった合図を、毎回 気分屋のAIに「これ、道具を呼ぶべき場面かな?」と判断し直させていた。
判断が確率的にブレるから、ときどき呼び忘れる。呼び忘れたのに「第二意見を出せ」と命じられているから、空白をでっち上げで埋める。根っこは、AIの弱さじゃなく、"もう決まっていることをAIに決め直させていた"という設計の誤りでした。
直す:人が決めた合図は、コードが問答無用で実行する
直し方はシンプルになりました。人の言葉に「第二意見」「セカンドオピニオン」「別のAIに」といった合図が入っていたら、AIの判断を待たず、コード側が問答無用で別AIへの問い合わせを実行する(決定論的に)。AIには「判断」を任せず、返ってきた本物の答えを「まとめる」仕事だけ残す。
この差し替えも、#4と同じく既存の動く部分は壊さず、AIの脳を起動せずに回せるオフラインのテストを11個書いて理屈を固めてから(全部パス)、本番へ。
いちばん効いたのは副作用です。この方式だと、別AIへの問い合わせは"必ず本物で"実行される。だから、まとめる段になって"でっち上げる余地"が、そもそも無くなった。 昨日まで「捏造しないように」と注意書きで"防いで"いたものが、今日は構造的に起こり得なくなった。
確かめる:独立した記録が"本物だった"と言っている
最後は一次で。別AIに問い合わせるたびに、問い合わせ側のコードが独立して残す記録(いつ・どのモデルに・成功したか)があります。
本番で「濃い色と薄い色、どっちが長持ち?第二意見も聞きたい」と投げたら、Iris は別AIの意見(「色より、材料と施工品質こそが長持ちの最大要因」)を引用しつつ自分の見解と統合して返してきました。そして記録には、その瞬間に別AIへ本物の問い合わせが1件、成功で残っていた。
昨日の"でっち上げ"のときは、この記録は増えていなかった(だから嘘と分かった)。今日は増えている。同じ記録の有る無しが、嘘と本物を分けました。
学び
①「もっと強いやつに変えれば直る」の前に、1本だけ測る。
"強いモデルに載せ替える"のような重くて後戻りしにくい変更ほど、やる前に「それは本当に直すのか」を一番安いテストで確かめる。今回、5分のテストが、半日の徒労と"目"の喪失を防ぎました。「AはBより強い」は、対象の仕事で並べて測ってから信じる。
②確率で動くAIと、決定論のコード。線をどこに引くか。
今回の本質はこれでした。人間がもう決めたことを、ブレる確率的なAIに決め直させない。決まった合図はコードが確実に実行し、AIには判断ではなく統合(まとめ)という、AIが得意なことだけ任せる。"AIに何を任せ、何を任せないか"の線引きこそが、信頼できる仕組みの肝なのだと、今回いちばん腹落ちしました。
まだ分かってないこと(正直に)
AIに道具を使わせる設計の深いところは、まだ相棒AIに教わりながら追っている段階です。あと今回直したのは「呼び忘れ・でっち上げ」の方で、返ってくる第二意見の"中身"が正しいかは別問題(別AIが知らない話題には、自信満々に間違えます)。そこは「一つの視点」として扱い、鵜呑みにしない運用にしています。
持ち帰り(同じ非エンジニアの人へ)
- 「強いモデルに変えれば直る」と思ったら、変える前に1本測る。 重い変更ほど、安いテストで前提を確かめる。
- 人がもう決めたことは、AIに決め直させない。 確定した合図はコード(決定論)で実行し、AIには"まとめ"だけ任せる。ブレと、でっち上げが、構造的に消える。
- AIの「やりました」は、独立した記録で裏を取る。記録の有る無しが、嘘と本物を分ける。
目・耳・手・そして今回ようやく"別の頭"。でも今日いちばんの収穫は、新しい頭そのものより、「AIに決め直させていた」自分の設計ミスに気づけたことでした。便利な道具(AI)に何を任せ、何を任せないか——その線を引くのは、まだ人間の仕事みたいです。