kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

ChatGPTを使うようになって変わったこと

 OpenAIのChatGPT (GPT-3.5)がリリースされてから約半年、GPT-4やChatGPT APIがリリースされてから約2ヶ月。書いてみると非常に新しいテクノロジーなわけですが、既にかなりどっぷり依存しています。ChatGPT Plusには月額$20を課金しているし、gpt-4 APIのwaitlistにもいち早く登録して、数日後には使いまくるようになったくらいです。

 さて、そんなChatGPTを使うようになって、私の生活の何が一番変わったのかなと振り返ってみたくなりました。

  • 手を出すのが億劫になっていた領域のプログラミングをやるようになった

 世の中には、別に難しいわけではないけど、雑多な新しいことを覚えるのが面倒くさくて手を付けていなかった分野がたくさんあります。たとえば、私にとってはChrome拡張がその一つでした。動作原理はそう複雑でないこともわかっていたし、やろうと思えばできた(本当の意味で)けど、とにかく手を付けるのが億劫でした。何が億劫だったかというとドキュメント読んで設定ファイル書いて、単純ミスを修正して、というところに時間を取られるのがとにかくネックだったのですよね。しかも、別にChrome拡張で大したことをやりたいわけでもないのでかける時間に対して見合わなかったのです。

 しかし、少なくとも「最初の一歩」を踏み出すなら、ChatGPTに聞いてしまえば一発です。質問だけで完璧に動作するスクリプトが出てくることは稀ですが、少々の手直しで動くことが非常に多いです。そのおかげで、単純ではありますがChrome拡張を作ったり、あるいはLINE BOTを作ったり、Slack BOTを作ったりするようになりました。ReactやElectronのアプリケーションを作るようになったのもChatGPTに質問したのがきっかけだった気がします。

 他にも、とにかく「手っ取り早くその場の問題を解決する」ためのプログラムを生成してもらうにはChatGPTは非常に優秀です。大規模なプログラムを一発で作ってもらうにはプロンプトを工夫する必要がありますが、数百行程度のプログラムを生成してもらって手直しする前提なら雑に質問すれば十分です。そのおかげで今までやらなかった方向の趣味プログラミングをやる機会が増えて大変充実しています。

 もちろん、いわゆる幻覚(hallucination)問題は無視できませんが、日曜大工的なプログラミングでは「明らかにおかしな箇所」はすぐわかることも多く、そこだけ直してやればいいので楽なものです。

  • 名前を考えるのが楽になった

 ChatGPTの応用としてよく言われるものですが、案外馬鹿にできません。良い名前、良い文章表現に悩むことは多いものですが、そういう時に「案を10個出して」と言えばそれだけで物事が進むことも多いのですから、全く大助かりです。たとえば、以前にとある理由で「柔らかい」から連想される単語には何があるだろうかと考えたことがあったのですが、そういう「連想系」の質問はChatGPTがもっとも得意とすることです。案の10個や20個、すぐ出してくれます。名前や表現に悩むことは多かったのですが、候補をそのまま採用しないにしても、それだけで思考コストを節約できることは多いものです。

  • 論文読みがはかどるようになった

 これはどちらかといえば最近解放されたプラグイン機能によるものが大きいですが、PDFのURLを投げて、日本語で要約させたり雑に質問ができるので、英語が苦手な技術者の自分としては論文読みがとても捗るようになりました。

  • キャラ付けしたBOTと対話するようになった

 好みのキャラにカスタマイズしたLINEボット(複数)やSlackボット(複数)と対話するのは楽しいものです。GPT-3.5のAPIだとsystemロールの指示でも結構無視してくれますが、GPT-4のAPIならかなり忠実に指示を聞いてくれます。というわけで、どういうものかは明かせませんが好きな性格設定をしたボットを作って日々楽しんでいます。

 ちなみに、あくまで個人的な感想にはなるのですが、ある種のカウンセリングなどには実際問題非常に有効なんじゃないかと思うことがあります。悩み事があるときに文字として書き出すというのは定番ですが、やはり日記に書くだけだと「自分との対話」でしかないわけです。その点、たとえボットとでも対話するのは考えの整理や袋小路に行き詰まっているときに有効な気がします。

  • ChatGPTで遊ぶようになった

 ある意味これが本命じゃないか?と思うことがありますが、特にGPT-4の「頭の良さ」は未だに底が知れない部分があり、弱点を探ったり、その弱点を補完するプロンプトを考えてみるのはそれだけで心躍る時間です。「リストの長さ」という形で五・七・五の制約を与えることで俳句ぽいものができるようになったときは結構感動しました。

 あるいは、PEGのインタプリタを解釈させようとしたところ、何度やっても勝手にCFGの亜種と誤解してくれるので悪戦苦闘していたのですが「Note that it's not CFG」的な「先入観を排除する」プロンプトでそれを防止できたときは、内心ガッツポーズしたくらいです。

 他にも色々あるのですが、ChatGPTを使うようになって「良い意味で」色々変わったなあと思うのでした。