最近、ChatGPTに毎日なにか質問をする、というのを新しい習慣として取り入れています。
ChatGPT: Optimizing Language Models for Dialogue
ChatGPTを根本からきちんと説明するほどの知識は持ち合わせていないので1行で簡単に説明すると、文章で質問するとだいたいなんでもうまいこと答えてくれるAI。ChatGPTは「AI」なのかというところから突っ込みどころはたくさんありますが、イメージを掴むにはひとまずこのくらいの理解でいいと思います。
GPT-3をベースにしたチャットサービス。GPT-3は1750億のニューロンのような重みづけ機構を持ち、一兆語の単語を学習したAI。今どきの「AIサービス」は大抵このGPT-3を使ったもの。実はこれは「知能の必要を回避している動作しか出来ない」というところが重要。このあたりの話は『言語はこうして生まれる』の最終章が面白い。
Twitter上では「ChatGPTにこういう質問してみたら便利だった」という事例でにぎわっており、うまく使うとこんなに便利になるのかと驚かされることが多いです。たとえば最近面白いな、と思ったのはこんな事例。
ChatGPTをうまく使えば、すでにこの程度の「ちょっと複雑な算数文章問題」は、定義さえきちんと出来れば人間が計算するより素早く答えを出してくれます。
他によくあるパターンで有名なのが「コンピュータのプログラムを書いてもらう」というタイプのもの。試しにChatGPTに「シェルスクリプトでの引数の使い方を教えて」と聞いてみたら、必要十分な、まさに自分が欲しいちょうどいい答えが返ってきました。
こういった問題に対する「答え」がどこまで正確なのか、その正しさの見極めの仕方などはこれから考えなければならない課題ではありますが、それは今回ひとまず置いときましょう。
ここで考えたいのは、ChatGPTのような「AI」をうまく使えるかどうかは(ひょっとしたら)「検索力」と呼ばれるものを超えるくらいの「これからの時代の能力」になり得るのではないか、ということです。
こういう質問をしたらAIはうまく答えてくれて、こういうときはChatGPTをうまく使うとすごく便利になる。仮にそれを「AI質問力」と名付けるならば、その「AI質問力」はいかにして身に付けることができるのか。
GPT-3の原理をちょっと学ぶと、単純に「コンピュータが得意そうなことが得意だろう」(だからプログラムの質問や数値の計算をさせるのは得意だろう)ということは想像できますが、その「コンピュータが得意そうなことが得意だろう」という認識の解像度をいかにして上げることが出来るのか。
「こういう質問をしたら便利そう」というアイデアは、漫然と日々の生活を送っているだけではなかなか思い浮かびません。ChatGPTを上手に使えたら世界が変わる、という感覚はあるけれども、具体的な事例はそう簡単には思いつかない。
自分は、この課題に対するよい解決策が見つからなかったので、ひとまずこれから「毎日使う」ことで経験値を積み重ねていく、という方法をとることにしました。
毎日数分の時間を確保して、ChatGPTにどんなことを聞いたらいいのか考えて、質問してみる。これを繰り返すことで「AI」は何を理解して何を理解しないのか。仕組みが「わかる」こととツールを「使える」ことは違います。そういう勘所を、実際にいろいろ質問することで少しずつ鍛えていこうと思ったのです。
たとえば最近は、以下のような質問を試しました。
「今年のスーパーボウルはどのチームが優勝すると思う?」
「わからない」(意訳)
こういう未来予測は、全然面白くない答えが返ってきました。正解不正解は別にして、人間なら「今年は49ersが強いでしょう。ブロック・パーディーがルーキーイヤーでいきなり優勝したらすごいでしょう。次のブレイディの可能性だってあると思うよ!」「いやいや今年のマホームズはそれすらも蹴散らす勢いがあるでしょう」と、正解不正解に関係なく盛り上がることが出来るんですが、今のChatGPTとはそうやって遊ぶことはできませんでした。
「クロールのコツを教えて」
「クロールは、水泳の基本的なスタイルの1つです。以下のようなコツを踏まえることで、クロールをスムーズに行うことができるでしょう」
呼吸のコツ:クロールをする際には、頻繁に顔を上げて息を吸うことが重要です。腕を振り上げる際に顔を上げ、腕を下げる際に顔を下げるようにしましょう。
腕の使い方:クロールをする際には、腕を振り上げるときには肩から伸ばし、振り下げるときには肩から曲げるようにしましょう。腕の動きがスムーズになるように、腕を振り上げるときに肩を上げ過ぎないようにしましょう。
脚の使い方:脚は、腕の動きに合わせて、上下に動きをつけます。腕を上げる際に脚を引き寄せ、腕を下げる際に脚を伸ばしましょう。
腰の使い方:クロールをする際には、腰を曲げ過ぎないようにしましょう。腰を曲げ過ぎると、腕の動きが妨げられます。
練習:クロールを習得するには、時間をかけて練習することが重要です。毎日少しずつ練習することで、クロールをスムーズに行うことができるようになります。
これらを踏まえて練習を続け、確認することで慣れていくと自然に身につくと思います。
これまた全然知りたい答えじゃなかったですね。"クロールを習得するには、時間をかけて練習することが重要です"とか、なんだか「いかがでしたかブログ」を読んだときのような残念感を味わいました。どうやらこれも質問がよくないらしい。(こういうときは、続けて掘り下げる質問をすればいい。そうすると、前の話の流れにあわせて答えてくれるが、自分のテクニックでは「クロール」に関してはよい答えが得られなかった)
「以下の文章を要約して」(Podcastの文字起こしデータを送る)
こういうのは、想像通りChatGPTが得意なことみたいでした。ただ、15分程度の文字起こしでも文字数が多過ぎる、と言われたため、複数回にわけて要約してもらって、最後に「今までの全部の文章をまとめて箇条書きにして」とお願いしてまとめてもらう、ということをやりました。
こういうのも、あとで言われたらすごく簡単なんだけど、自力で「今までの全部の文章をまとめて箇条書きにして」と聞けばいいと思いついたのは、ある程度時間をかけて試行錯誤したからだと思っています。
こうやって、事例を見るだけでなく、それを真似して自分で試してみる。結局、自分で手を動かしてみないとできるようにならないんだな。そういうことを改めて思い知った出来事でもありました。
そして、ChatGPTはそのくらい「上手に使えるようになりたい」という可能性を感じるツールでもあります。
なにかオススメのChatGPTの活用方法をご存知であれば是非コメント欄などで教えてください。
vscodeの拡張機能にchatgptがあるのですが、プログラムを書いている時に変数名に迷うことが多々あります。そんな時に「○○を表す変数名の候補を教えて」と質問をしてます。