見出し画像

ChatGPTを馬車馬のごとく働かせて得た学びと絶望

正直、技術の進歩がここ最近、早すぎませんか?

ChatGPTがアプデされる度にできることが増え、さらには別の方向に特化したAIも登場するので、その方法を「知っているか、知らないか」というだけで生産性に天と地ほどのひらきが生まれています。

だからかX(旧・ツイッター)などでは連日のように『ChatGPTでできること』みたいなノウハウが山のように流れてくる。

しかし、気になることがあります。というのも、流れてくるのが「つまみ食い」みたいなワンポイントの利用法で、じゃあ実際に仕事で使い倒してみると、どのくらい便利なの?

みたいな実践的な体験記みたいなものが、ほとんどない。

こ~んなプログラミングしてくれるぜ!みたいな利用法があったとしても、じゃあ、それを実際のプロジェクトにコピペしたとして、どのくらい生産性あがるの?他のコードとの衝突は発生しないの?拡張性まで検討してくれてるの?みたいな検証は置き去りです。

というか、そこまで言及すると実は興ざめすることも多いから、ツイートする人たちはあえて伏せている部分もあると思う。

今回、Kanzumeエディタという創作特化のテキストエディタをChatGPTを活用しまくって開発しました。結論としては、ChatGPTは神ツール。これは変わらない。

一方で、全体で利用してみないと見えなかった欠点も見えてきました。

ということで、○○できるよ!みたいなワンポイントの利用法ではなくて、プロジェクト通して過労死ラインを遥か後ろに置いてくるほどChatGPTくんを使い倒しての雑感をまとめました。

良くも悪くもChatGPTは究極の「平均点くん」

ChatGPTが出す答えというのは、基本的に「無難」です。尖ったアイデアというのは出てこない。これは様々なところで言われているところですが、めちゃくちゃ致命的なことでもあります。

例えば、ある機能をChatGPTに開発してもらおうと思って、設計を依頼するとします。

そのとき、利用する技術においてChatGPTくんはサイレントで取捨選択をしています。

スキルが必要なので利用者は少ないけど、もの凄い機能性が高い技術Aと、

簡単に使えるけど、その分できることが少ない技術Bがあったとして

ChatGPTくんは有無を言わずに技術Bを利用して設計を始めます。

もちろん、「技術Aを使って!」とお願いしたら、対応してくれます。でも基本はサイレントなので技術Aを知らないままだと気づくタイミングはないまま開発が進んでいきます。

これは非常に示唆に富んでいます。

つまり、同じAIを使っていても「使用者の知識・能力・経験によってAIの生産能力は左右される」ということです。

AIの登場で勉強しなくて良くなった!とか喜んでいると絶対に痛い目みます。むしろ、今まで以上に知識や経験が必要になり、他の人と差別化できないなら代替されてしまう、という恐怖を自分は感じました。

チャットであることを、十全に活用しろ

よく「便利なプロンプト」がバズっています。が、ぶっちゃけ役に立たなかったです。

一発で欲しい答えが出ることのほうが稀で、基本的には3回目か4回目くらいのチャットで、一番したかった質問をするのが良い、というのが自分の結論です。

例えば

「tiptapというライブラリに使われているProseMirrorにおいて、半角と全角の文字カウントを分ける方法を丁寧に子供にもわかるように論理的に教えて」

とか言ってもトンチンカンな答えが返ってきます。

それより

「tiptapというライブラリに使われているProseMirrorを知っていますか?」

「そのなかで文字カウントの設定方法を教えてください」

「追加で全角と半角をわける方法について教えてください」

と段階式に質問した方が、早くに欲しくて正確な答えが出ることが多いです。

で、これまた最初に戻りますが、こういうやりとりの上手さって日常のコミュニケーション能力と一緒ですよね。

わかりやすく質問する力がChatGPTの能力発揮にも大事ということです。結局、ここでも使用者の能力がAIの能力と連動しています。

平気な顔して適当ぶっこくChatGPTくん

たくさんのプログラマがChatGPTを礼賛する理由のひとつに「エラーの発見」があります。

これには自分も賛成です。圧倒的に無駄な時間が減った。

スペルミスから引数の間違いまで様々なエラーの原因を遥かに短い時間で発見してくれるようになりました。

ただし、「エラーの解決」とイコールではないことに注意が必要です。

わりかしChatGPTくんは解決方法で適当なこと言います。

ChatGPTくんは不確定な要素があったとき「エラー原因はここのようですが、解決方法についてはわかりません」とか言いません。分からなくてもシレっと、それっぽいコードを書いてきます。

それを安易に信じると、余計に袋小路になります。

この一部だけ真実。というのが非常にタチが悪い。

間違っていたら、「ああ、駄目だコリャ」で自力解決に切り替えられるのですが、一部本当のことを言われると「聞き方が悪かったかな?」と、同じところをグルグルしてしまうことが何度もありました。

「間違っているか?」というより「今、コイツ適当言ってるか?」を、自力解決に切り替えるかの判断基準にした方が良い、というのがひとつの学びです。

1,2回しても解決しなければ、もう自分でやって、少し進んだら、またチャット。というのが一番効率的だったと思います。

これまた、やはり使用者の決断力が問われる部分ですね。

結論

よく「ChatGPTを使いこなせる能力」が拡張機能にどれだけ詳しいか。

どれだけ的確なプロンプトを知っているか。みたいな文脈で語られることがあります。

ただ使い倒して思ったことは、そんなのは枝葉の部分であって、本質は「使用者の能力に左右される」ということでした。

ここにAI時代の希望と絶望がある気がします。

希望となるのは「人間の介在価値」というものは、変わらずに存在しているということ。

人間の能力の拡張には、今後もきちんと意義がある、ということ。

そして逆に絶望的なのは、いつまで経っても学び続けなければならない、というか学び続けなければ一気に取り残される、ということです。

今回、開発期間が非常に短くデスクトップアプリを作ることができました。

自分ですらこれならば、きっと最前線ではさらなる躍進があったことでしょう。それによって不要になる仕事も大量に生まれているはずです。

学ばなければ一瞬で置いていかれる。

プリファード・ネットワークスの社長が出した本のタイトルじゃありませんが、まさに

「Learn Or Die」の時代です。

以上が、ざっとですが、ChatGPTを使い倒して自分が得た雑感です。

細かい利用方法などは多くの人が言及しているので、俯瞰して思ったことを書いてみました。参考になると幸いです。

この記事が気に入ったらサポートをしてみませんか?