ChatGPTはすこぶる優秀なプログラマーだ。私は、これまでに色々な開発を彼にお願いしてきた。今回は、彼に開発を依頼するときの作法をまとめようと思う。備忘録のようなものなので、体系的にはならなかった。
GPT-4に英語で命令せよ
まずは基本的なところ。2023年5月現在のGPTの最新バージョンであるGPT-4を使用しておきたい。その上で、他の言語よりも英語で命令するのが望ましい。当然ながら、英語の文章はGPTの学習に際して最も多く投入されている。正確なレスポンスが欲しいのであれば英語で命令しない選択肢はない。
英語が苦手な人は、それこそGPTに翻訳させるのがいいと思う。彼は言語処理のプロなので、文脈もある程度汲み取って柔軟に翻訳してくれる。
単体開発をさせるべし
これはChatGPTだからというよりも、システム開発の基本である。
例えば、「Webサイトから抽出してきた文字列をSNSに投稿する」というシステムを作成するとする。
このとき、このシステム全体をGPTに作らせてはいけない。うまく動作しなかった際に、原因の切り分けがしにくくなるからだ。
以下の1、2というユニットに分けて、それぞれをGPTに作成させるのがよい。
- Webサイトから文字列を抽出してコンソールに出力する機能
- 与えられた文字列をSNSに投稿する機能
それぞれ上手く動作したことを確認したら、自分で結合して完成だ。
箇条書き形式で命令せよ
相手は人工知能なのだから、人間に伝えるような自然な文章として体裁を整える必要はないのだ。そのため、箇条書き形式で命令をしたほうが、手間もかからないし、要件を伝達しやすいと思う。
"Please generate a script. The requirements are below."などのように伝え、要件を羅列していくのが最も書きやすかった。
情報の不足を考慮せよ
この命令ができるところがChatGPTの真価であると言ってよい(言い過ぎ)。命令文の最後に「情報に不足があれば質問してください」という旨を記載する。"If you need more information, please ask me."みたいな感じでいい。
僕らは人間なので、文脈や前提条件などを要件に盛り込み忘れるときがある。そうした場合、普段ならGPTは勝手に文脈を想定してとりあえずの回答をくれるのだ。でも、この文言を追加すれば、回答に必要なピースを向こうから求めてきてくれるのだ。
すべての命令文の末尾には、とりあえずこれをつけておくのが無難だ。
出力が途切れたときは
GPTに文章を生成させていると、ときどき文章の途中で回答が途切れることがある。その場合は、"Go on" や "Continue" などと命令すれば、途切れたところから出力を続けてくれる。日本語で命令したときには「つづき」などと言えばよい。
まとめ
AIにプログラミングを任せられるようになったのは非常に嬉しい。もっと性能が向上すれば、個人が気軽に大規模システムを生成できる時代が来るかもしれない。