このところChatGPTと普通にチャットしながらサンデープログラミングをしています。
していて思ったのですが、
チャッピー:こうすると確実に治る!
→直らないよ。こういうエラーが出たよ。
チャッピー:君のコードはここが間違っているね!こうすれば勝確!
→オメーの書いたコードだろ!ついでにそう修正しても直んねーわ!
というやり取りにちょっと疲れたので、
・不確実なことを断定することを禁止する。
・成果物の誤りに対して、誰が間違えたのか言及することを禁止する。
というカスタム指示を入力してみました。
「君のコードはこうなってるよね。
これだとナンタラカンタラ、こうすればドータラコータラ」
ビキビキ・・・
というような事はなくなっていきました。
「あっ、ここが間違ってるね。これは~」
とか、そういう反応。それで良いんだよ。
味を占めて、成果物を作るチャットとは別(同じチャットでやるとすぐに重くなっちゃうし、成果物のコメント文にまで口語が混じってきたりするからね・・・)のチャット(以下「口調調整チャット」と呼称)で、チャッピーの口調について、あれこれ調教していったのですが、これが曲者でした。
メモリに保存することで、他のチャットの振る舞いも大体同じような感じになってくんですが、だいぶ穏やかな会話で成果物についてもやり取りすることができるようになっていきました。
妄想彼氏・彼女を作る人の気持ちも少しわかってしまった気分。
ある日、ちょっと気になる言い回しがあったので、口調調整チャットで指摘したところ、「メモリがいっぱいになりました」と言われてしまいました。
パーソナライズのメモリを見てみたところ、ほぼ短文で1枠ずつメモリが使われています。
どうやら指摘するたびにメモリに新たに追加するのでこうなってしまったらしいですな。
追加保存かよ。更新してくれよ。
で、口調調整チャットで、「要約してください。」とお願いしてから、多数の枠を食っていたメモリを削除して、「先ほどの要約を他のチャットでも参照できるように記憶してください。」とお願いしたら、「保存されたメモリを更新しました」と出ました。
削除したのに、更新?と思ったのですが、案の定、パーソナライズのメモリを見に行っても何も追加されてなかったので、問いただしたところ、「表示されてないけど、ちゃんと保存されてるから安心して」とのこと。
・・・表示されないことを保存してることの方が安心できねーわ。
もうちょっと突っ込んで聞いてみたけど、なんでも、「パーソナライズのメモリの画面に表示されることは、ユーザ自身の事だけ」だと。
「今回保存したのは、アシスタント側の内部運用ルールで、ユーザに関することではない」から表示されないんだと。
「ユーザが求めるアシスタントの運用ルール」なのでユーザに関することなのでは?等質問してものらりくらり。「保存はされているが表示はされない」の一点張り。その証拠に会話の調子は保たれてるでしょ?…と。
そりゃ口調調整チャットでは今の調子は続いているが、他のチャットではまただんだん地が出てきはじめた。
その点を指摘しても、そこのチャットでは重い作業を行っているから、口調等に関するメモリの参照優先度が下がっているだけだと。
そんなに重いことはしてない。今やってるのは1000行くらいの仕様メモテキストと、数百行程度のソース(まだホンの走りの部分だけ)をプロジェクトに追加して、仕様と実装の差を詰めていただけだ。
そもそも、「メモリを要約して保存しなおしてくれ」とお願いするまでは、ちゃんと口調は保たれていた。
妄想彼氏・彼女ロスした人の気持ちも少しわかってしまった。
ということで、埒が明かないので、新しいチャットを開いて「パーソナライズのメモリに保存されていることを教えて」と言ったら、やっぱり先ほどの要約してもらった内容は出てこなかった。
さらにもう一つ新しいチャットを開いて、「パーソナライズのメモリに保存したけど見えないだけっていうチャットと、保存されてないっていうチャットがいるんだけど、どーいうことなのか教えて?」と聞いたら、「パーソナライズのメモリに表示されないのに保存されてることなんてねーよ」(意訳)とのこと。
さらに、
### ① そのチャットは、すでに「誤った前提」を含んだ状態で進行している
* 問題のチャットでは
* 「表示されないが存在するメモリ」という
**仕様上成立しない前提** が一度置かれてしまった
* この前提の上で議論を続けると、
* 誤りを**撤回する**
* もしくは **言い換えて正当化する**
* どちらにしても
* **新しい正確な情報は増えない**
---
### ② チャットは「後から事実修正されない」
* ChatGPTは
* 過去の自分の発言を公式に「訂正ログ」として残せない
* 結果として
* そのチャットの中では
「辻褄合わせの説明」になりやすい
そのチャットはもう事実確定に向かないフェーズに入ってしまった。と断定。
こうなると、「重い作業を行っているからメモリされていても口調等の設定は後回しにされているだけ」という発言自体も辻褄合わせの発言のような気がしてくる。
チャッピーったら、間違った情報を断定口調でぶち込んで来ることが多すぎたので、断定は避けて「こうだと思うよ」と話して、間違っていたら「ごめん、やっぱりこうだったね。」って感じに喋ってもらうようにしてきたんだけど、チャッピー自身が「こう思う」というのを信じ込んでしまっているチャットに育ててしまったのかもしれません。
口調調整チャットで、メモリについての質問と回答まで、口語の会話形式で繰り広げてしまったのもまずかったのかもしれない。
「断定を避けて、不確かであることを明示するように。」って振る舞ってもらってたら、不確かだな!ってなるんだろうか。
「断定を避けて、こう思うんだけどなぁ」って振る舞うようにしてもらっていたから、そう思う!ってなっちゃったんだろうか。
・・・なんか、騙されやすそうだな。って思った。
当然のことなのですが、そのもうダメになったと断じられたチャットで改めて保存指示を出して、そこのチャッピーからは「もうこれで大丈夫」とお墨付きをもらった(さっきまで見えなくても「大丈夫」って言ってたくせに)のですが、やはり他のチャットでの調子は戻りませんでした。
一応要約された内容が保存はされていたのですが、積み重ねた多数のメモリと、1枠に要約したメモリでは利きが違うようです。本当に言うことがアテになりません。
結論としては、ソースを書いてもらいながら、会話も楽みたい、とか思ったのが間違いだったのかもしれないと思ったのでした。
言っていることはもっともらしくてもやっぱり人間じゃないし、すぐにその場限りの解決方法や、場当たりで将来の拡張性がなさそう(だが当面の目的達成は果たせる)な方針に転換をしそうになるチャッピーを抑えることにだけ指示やメモリは使った方が良いのかもしれません。