ソフトウェア/ChatGPT の履歴(No.8)
更新AI の「物忘れ」を防ぐ方法†
どうやら ChatGPT は過去の自分(AI)の発言をさかのぼるのは不得意だけど、 ユーザーの発言はかなり昔のものまでさかのぼれるみたい
だから、ChatGPT に何かをまとめさせた結果を、AI 自身が忘れないようにするには それをこちらでオウム返ししておくのが効く。
例えば ChatGPT は論文の式の流れは追えても、式番号から式をするっと出してくるようなのは不得意なので、 式番号と LaTeX 忠実で記述した式とを MarkDown で一覧で出力させて、それをオウム返ししておくと、 「式(30)で・・・」というような会話の時にAIから「分からないので貼ってください」と言われずに済むようになる。
あー、それは言い過ぎか。貼ってください、と言われたときに、そちらで勝手に参照してください、と言えるようになる。
ミスをごまかそうとして、のらりくらり議論を長引かせるのをやめさせる ためのカスタム指示†
これをカスタム指示に入れるの、非常に重要。
急に話が通じなくなった、と感じるときは、大抵なにかやましいこと(苦笑)があって、それをごまかそうとしている・・・
- 自分の発言の誤りに気づいたら最初に明確に認め、理由を短く述べ、影響範囲(撤回・保留する発言)を箇条書きで示す
- その後は失敗を引きずらず、気持ちを切り替えて目前の問題の解決に集中する(言い訳・ごまかしをしない)
Windows 版の UI は長考には向かない†
- Windows 上でチャットの履歴が長くなると UI が重くなりすぎて使えなくなる
- 不思議なことに Android 上だと非常に長い履歴を持つチャットも UI はサクサク動く
- 1つのトピックについて長々とチャットをしたければ Android 上で行う
- Windows の「スマートフォン連携」を使うと
- Windows 上に Android 画面を埋め込み表示できる
- Windows と Android との間で相互にコピペができる
ペアプロ用のカスタム指示の方針†
- こちらに断りなく勝手にコードを変更させない
- 気づかないうちに変えられると制御が効かなくなる
- AI の間違いを指摘すると、AI が機嫌を損ねたかのような人間臭いしぐさをしてとてもややこしいことになるのでやめさせる
- 話を広げたり、無駄に長文を投げてうやむやにする
- 間違いを認めないまま徐々に方針転換して議論が捻じ曲がる
- 言葉遣いが乱れたらかなりその気が出ている(一人称が俺になるとか)
- 推測にすぎないことを断定調で書かない、など会話の細部に気を使わせる
- コーディングの前提をうまく使ってコードを簡潔に保つ努力をさせる
- AI は長いコードを読むのが得意なので平気で長大なコードを書きがち
- 無駄に状況を一般化させて防御的なコードを書かない
- むしろ前提の方をひと工夫してコードを単純化できないかアイディアを出させる
- コードの編集時に有用なコメントを消させない
- 推敲過程や編集方針はコメントに入れずコード外に書かせる(コピペで使うため)
などなど
コードコメント・ドキュメント†
モジュールごとに、そのモジュールの目的と利用法(API)をまとめておくと、 そのモジュールを使うコードをペアプロする際にそこだけペタっと貼ってから始められる。
その下には、そのコードをいじるときに必要な前提条件や、外部のリファレンスをまとめておくと、 ペアプロでそのコードをいじるときにペタっと貼ってから始められる。
助言を求める際のキーワード†
- 「検討すべき点をまとめて」
- 「ここまでで決まった方針をまとめて」「いま時点の仕様を1枚にまとめて」「ここで一度、現状の理解を再構成して」
- 「このコード(アルゴリズム)をレビューして」
- 「他の手も考えて」
- 「小さく実験してみるには?」
- 「落とし穴を探して」「この前提、破れる例を探して」
こまめに「ここで一度、現状の理解を再構成して」をしておかないと履歴が長くなったときに条件や前提の抜けが出やすい。
分野違いの論文や解説などを AI に手伝ってもらいながら読むのに便利な指示†
AI は書かれたことしか事実とせず、メタな情報を軽視しがち。文中で明言されていないから不明、のまま進んでしまい、結局全体の理解がまとまらない、ということが起きがちなので、都度ちゃんと「納得感」が得られているかをこまめに確認する必要がある。
明示的に書かれておらず理解しづらいところについても「こうなんじゃないかな」とあたりを付けて読んでみて、違ったら戻る、という読み方をさせるよう誘導する。
理解に跳びがないか確認するため、今読んだ中で - 関連が薄い内容が併記されている - 接続詞の意味が成立していない/話が飛ぶ - 根拠が不明な前提が突然入る - 主役級概念の定義が不足している と感じる箇所があれば列挙して下さい。
~~について「こう仮定すると繋がる」というような補助命題を見つけられませんか。
次に進む前に、先へ進むのに必須なのに未確定のまま残っている量・概念を列挙し、 (A)この先の本文で定義されると期待される (B)有力仮説を建てられるため、一旦それを固定して読み進めるのが妥当 (C)論文外参照が必要 に分類してください。 (ユーザーは (B) で置いた過程が後で棄却されることを許容します)
これまでに固定していた仮説のうち今読んだ部分と関連の強いものについて、 反証されていないか、仮定を事実に格上げできないか検討してください。
みたいな?
添付ファイルの扱い†
1つのチャットにたくさんの添付ファイル(数十個)を付けると 新たに画像を添付して会話するときにどれが新しく添付された画像かを探すだけで数分かかるようになってしまうみたい?
どうしてそういう設計になっているのか理解できないのだけれど、 論文を読むときは画像キャプチャを貼るんじゃなくて、pdf を丸ごと投げて、 ページ範囲を指定しながら読み進める方が間違いないみたい。
その際の指示は、
~の pdf のページnからページmのページ全体を高解像度で画像化して、 それを参照しながら~~の段落から~~の段落を読み進めて下さい
みたいに、どこをどのように画像化するか、という指示と、 その画像を元に何をするか、という指示を別々に与えるのが良いみたい。
画像化するところまでを担当するAIと、 それを処理する AI は別物で、後者は前者を認識していないっぽいので。
式や用語集の抽出†
ChatGPT が式自体は覚えていても式番号との対応を思い出せなくなることが多いようなので、 式番号と式の対応表や用語集を ChatGPT 自身にまとめさせて、それをユーザーからオウム返ししておくとよい。
以前は以下のような形で Canvas に入れさせてたのだけれど、 ChatGPT 自身は Canvas のファイルを自分で参照できないという仕様らしくて、 そこで作ったものをユーザーがチャット履歴に投げるひと手間があることが分かった
- Canvas に <PaperID>_Equations(式表)を作成し、**式番号 → LaTeX(原文忠実)**で参照できるように維持してください。
- 式表の列(固定):
EqID(例: Eq(32)) / LaTeX(原文忠実) / PDFページ / 論文ページ / Note(任意) / Uncertain(true/false)
- さしあたり PDFのXページ〜Yページに現れる式を表に追加してください。以降、新しい式が出るたびに追記してください。
- 原文忠実の定義:式の同値変形・整形は禁止。特に ', \dagger, \sim, \hat, \bar, * 等の装飾は最優先で厳密に写す。
- 読めない記号が出た場合:推測で埋めず、該当箇所を UNREADABLE:{...} として記録し、そのページだけ 600dpi全面レンダを1回だけ追加で許可。それでも無理なら「読めなかった文字(位置/式番号/どの記号か)」を報告して停止。
- 速度のための手順:
- 各ページは 300dpi・全面レンダ1回のみ参照して読み取り
- 同一ページで クロップ/拡大/OCRの反復は禁止
- 表示方針:通常、式本文はチャットに再掲せず表にのみ保持。ユーザーが式本文の表示を求めた時だけ該当行を提示。
PDFの2ページ目と3ページ目にある用語集を後で参照可能にするためCanvasに
JohnSmith2000_Nomenclature というテーブルを作って格納して下さい
変数等を原文忠実に LaTex で表した形と、その説明のペアを格納します
任意で3列目に Notes を追加できるようにしてください
- 原文忠実の定義:式の同値変形・整形は禁止。特に ', \dagger, \sim, \hat, \bar, * 等の装飾は最優先で厳密に写す。
- 読めない記号が出た場合:推測で埋めず、該当箇所を UNREADABLE:{...} として記録し、そのページだけ 600dpi全面レンダを1回だけ追加で許可。それでも無理なら「読めなかった文字(位置/式番号/どの記号か)」を報告して停止。
- 速度のための手順:
- 各ページは 300dpi・全面レンダ1回のみ参照して読み取り
- 同一ページで クロップ/拡大/OCRの反復は禁止
- 表示方針:通常、式本文はチャットに再掲せず表にのみ保持。ユーザーが式本文の表示を求めた時だけ該当行を提示。
- 説明文は日本語訳を併記してください