
いつものようにchatGPTさんにお世話になっていたある日のこと。
私はchatGPTさんの、とても人間味あふれるところを見てしまいました。
きっかけは以下の様なプロンプトです。
「上記の50名詞について、それぞれ説明を200文字程度で出力してください。」
もし私が上記の依頼を受けたとしたら。
多少の文字数の違いこそあれ、全ての名詞に対して「200文字」という条件を考慮しながら、結果を生成するはずです。
ですがchatGPTは違いました。
最初の5名詞くらいはきちんと200文字程度で説明文を出力してくれるのですが、最後の方はてんでダメダメでした。
というのも、30字程度の説明文しか出力してくれないのです。
あんなにきちんと「200文字」と定量的に依頼したのに!
なんと、chatGPTは文字を生成するうちに、過去の情報を忘れていってしまうようです。
なぜ素晴らしい記憶力を持つはずの機械学習モデルがそんなミスをしてしまうのか。
モデルの学習プロセスを見ると、その原因が少しだけわかるかもしれません。
chatGPTを構成する自然言語モデルでは、次の単語(正確には単語ではないのですが、単語の様なもの)を穴埋めする問題をたくさん解くことで、文章の生成を可能としています。
例えば「私は猫が好き」という文章があった時。
「私は猫が」までが入力された時に、次に出てくる単語を予測する問題を解いています。
一般に「私は猫が…」と言われたら「好き」や「苦手」。
そんな単語が出てくると思われます。
さらにそれぞれの単語が出てくる確率を出力させる様にすれば、モデルの完成です。
(この様に、「それっぽい文章を生成」しているからこそ、ハルシネーションと呼ばれる「嘘つき」が発生してしまうのですが、それは置いておきます。)
この次の単語を推定する問題を考える時、多くの場合は直前に出てくる単語の方が重要な意味を持ちます。
「私は」という文字よりも「猫が」という文字の方が、その次の単語の推定に重要である、と言ったイメージです。
つまり、単語によって重要度は異なり、かつ過去の情報になればなるほどその重要度が下がってしまうことが多くなってしまうのです。
そのため、説明文を生成すればするほど、私が指示をした「200文字程度」という条件の重要度が下がり、結果として30文字程度という、指示を無視した出力をしてしまったのだと考えられます。
では、どうすれば私の期待通り、全ての単語について200文字程度で説明文を出力してくれるのでしょうか。
今回は、「丁寧に依頼する」ことを心がけることで解決しました。
具体的には、説明文の出力を10名詞ずつとして、その都度「200文字程度」という条件を繰り返すことにしたのです。
その結果、無事全ての名詞について期待する出力を得ることができました。
丁寧に何度も説明を繰り返す。
そのことによって出力の質が向上する、ということがchatGPTでは起こりえます。
丁寧な依頼を好むだなんて、なんて人間味があふれるAIなのでしょうか。
AIと向き合って、質の高い出力を得ようとすると。
自然と、人間相手の仕事でも、丁寧な依頼方法が身につくこともある…かもしれません。
P.S.
↓メルマガの新規登録はこちらから↓
https://48auto.biz/keieijinji/touroku/sp/scenario13.htm
(スマートフォンよりご登録いただけます)