ChatGPTをWeb開発の現場で便利に使う方法

最近ChatGPTに月額20ドルの課金をして、GPT-4を使っている。Webアプリケーション開発の仕事で、情報漏洩の観点から、業務情報をインプットに一切含めない範囲で使っているけれど、それでも明らかに知的生産性や技術の学習効率に、これまでの世界観が変わるほどの違いを感じているので、有効に使えるユースケースの紹介と、便利に活用する方法について書きたい。

有効なユースケース

業務で有効性を確信したユースケースと、応答例を紹介したい。これらのユースケースは、特にプロンプトの工夫なく、自然な日本語のやりとりで活用できる。

ラクティスの相談

特定のプラクティスのメリット・デメリットの整理や、どうしてそうするのかの理解の深堀りに使える。

実装方法の相談

一定以上メジャーな言語やライブラリの実装方法を相談すると、かなり込み入った要件でも、サンプルコードを示して解説してくれる。エラーメッセージを入力すると、エラーを回避できる実装案を回答してくれたりもする。

シェルコマンドや各種設定ファイル、正規表現などの解説

Webサイト上に公開されているシェルコマンドや各種設定ファイル、正規表現などをコピペして解説させると、直に読み解くよりも素早く、深く理解できることが多い。シェルコマンドを解説させた後に「実行例を教えてください」と聞いたりすると、まるで実際に動かしたかのように実行結果のサンプルを回答してくれて驚く。

文章の要約、英文の翻訳

GPT-4はかなりの入力文字数を許容するため、英語の記事を丸ごとコピペして要約させたりすると、記事の概要がザックリと把握できて便利だ。

上手く使うコツ

回答の生成中に他の作業を進める

GPT-4は回答の出力速度が遅いので、回答を生成させつつ、ブラウザの他のタブで別の作業を進めて、後で結果を確認すると、効率的に作業を進められる。

掘り下げて質問する

同じスレッドの範囲では過去のやりとりを参照してくれるようなので、掘り下げて質問を繰り返すことで、有効な回答を引き出せるケースが多い。

過去のやりとりを活用する

AIがスレッドのやりとりの内容を要約したタイトルを自動で付与して、過去の回答履歴を保存してくれる。読み返す以外にも、過去のスレッドに新たに質問を追加することも可能なので、その話題について後から気になったことを質問して掘り下げることが可能だ。

注意点

出鱈目を回答する可能性がある

しかし、LLM chatbotに限らず例えば機械翻訳分野などでも用いられてきたニューラル言語モデル(NNLM)には古くから知られる問題があり、それは現在における各種LLMでも根本解決は出来ていません。それが"Hallunication"(幻覚)現象です。分かりやすく言うなら、LLM含むNNLMが堂々と流暢に嘘っぱちをアウトプットする、という現象です。

ChatGPTを使っていると、hallucination(幻覚)と呼ばれる、まったくの架空の内容をそれらしく回答してくる現象に頻繁に遭遇する。この現象は学習データが薄い話題で起きやすいと思われる。ChatGPTの回答結果を鵜呑みにせず、使う人間が自ら裏取りをして、回答結果を吟味する姿勢で使うのが重要だ。また、ぱっと見で回答の妥当性を判断できる程度に自分が得意なジャンルで使うのが効果的だろう。つまり、GPTの学習データが豊富で、使う人間も得意なジャンルであることが、現状のChatGPTが有効に機能する条件になって来そうだけれど、これはなかなかハードルが高いと感じている。そもそもの話として、明らかに重点的に学習されているように見えるIT領域以外について、現状のChatGPTはどのジャンルが得意なのだろうか、ということも定かではないからだ。

疲れる

他であまり言われていない気がするけれど、AIアシストありで仕事をすると、同一労働時間の疲労感が高まると感じている。作業の手を止めて、ああでもない、こうでもないと、問題の解決方法を考える時間がChatGPTの回答によってカットされて、意思決定や実装などの知的負荷の高いタスクを一日中集中して取り組むような働き方になるからだ。あまりやり過ぎないようにセーブしないと、体調不良に陥る危険があると感じている。

おわりに

以上、ChatGPTの便利な使い方についてまとめてみた。従来のGoogle検索主体のソリューション探索方法と比べて、有効な解に辿り着くまでの時間が劇的に短縮されるケースが多いと感じている。

AIアシストが当たり前になる世界観について色々と感じていることがあるので、エッセイ的な記事も別に書きたいと考えている。