ChatGPTのRLHFによる情報提示精度向上とハルシネーションについての記録
巷で話題のChatGPTの特徴にRLHF (Reinforcement Learning from Human Feedback)がある。
直訳すると「人間のフィードバックによる強化学習」のことで、これによってChatGPTはまるで人間が作ったかのような文章を短時間で生成することができる。
同じ質問を定期的にしてみた結果、ChatGPTがRLHFによって回答を進化させて来た過程がなんとなく見えた。
あまり真面目な記事ではないので、気楽に読んでもらえればと思う。
用語:RLHF
以下の図はChatGPTの学習過程を示したものだ。
ある文章で学習済みのモデルに対して、別の入力(プロンプト)を与える。その出力結果を、人間の手によって訓練された評価モデルによってフィードバックすることで、結果の出力に使われるモデル(PPO, Proximal Policy Optimization, 無理やり訳すなら「近位方策最適化」? )が評価を最大化できるように更新していく、というのがRLHFの強化学習の流れだ。…合っているだろうか?
筆者はかなり門外漢なので、より正確な解説は下の記事を参考にしてほしい。
OprenAIによるProximal Policy Optimizationの解説
用語:ハルシネーション
「幻覚」「根拠のない考え」を意味する単語。
転じて、「AI(ChatGPT)による不正確な内容の出力」を表す単語として使われている。登場初期に話題となった、「存在しない人物や文献の出力」がその例だろう。ハルシネーションが起きる理由について「2021年以降の情報を反映できないから」という説明がなされることもあるが、この記事で説明するようにそれ以前の出来事に対しても当然この現象が起きる。
この現象はRLHFと関係があるようだ。
下の図はRLHFを利用するモデル(InstructGPT)と、それを利用しないモデルの性能を比較したものだ。InstructGPTは「ハルシネーション」の項目でのみ最下位を記録しているが、その他の3項目では最高位に付けている。
ここから考えられるのは、RLHFは「『わからない』と回答する」よりも、「わかっているような回答をする」ほうが良いという学習結果に繋がっている可能性だ。要するに知ったかぶりをするのだろう。
InstructGPTからChatGPTへの移行によって、この傾向にどんな変化があったかは分からないが、この性質を引き継いでいると考えられる。
本題:ChatGPTに聞く
さて前置きが長くなってしまったが、私が取り組んだことを大まかに書くとこうなる。
ChatGPTに質問する
出力された返答を記録する
出力内容の正誤について確認する
これを2022年12月~2023年4月までの期間に不定期に行った。
質問(プロンプト)
これだけ。深い理由はなく、ビートルズでそこそこ良い結果が出たのでこっちはどうだろう?と質問したところ、とんでもないことになったのが調査の切っ掛けである。
活動の中でメンバーの入れ替えも何度か起きているので、より混乱しやすい質問だったのだろう。
ChatGPTの答えが正しいとは限らない
加えて、それを判断するためには自分で検証しなければならない
ということを示す事例にはちょうど良かった。
注意
ローリング・ストーンズのメンバーの変遷についてなんとなく知っていれば大丈夫なように(私もそこまで詳しくはない)書いたつもりだが、必要に応じてWikipedia等を参照していただければと思う。
ChatGPTは2021年6月までの学習データを使っているので、2021年8月24日に亡くなったチャーリー・ワッツについての情報は更新されない。
(追記:本記事はweb検索機能が追加される前の2023年4月から執筆している)
回答
1回目
質問日:2022年12月5日
このときは「ローリングストーンズ」と入力していた。
ローリングストーンズは1960年代にイギリスのロンドンで結成されたロックバンドです。 当時のメンバーは、マイク・ジャガー、キース・リチャーズ、ブライアン・ジョーンズ、ビル・ウィザース、チャーリー・ワッツでした。
マイク・ジャガーはボーカル、 ハーモニカ、 楽器の演奏を担当しました。 キース・リチャーズはギタ 一、ボーカル、 楽器の演奏を担当しました。ブライアン・ジョーンズはギター、ハーモニカ、 楽器の 演奏を担当しました。 ビル・ウィザースはベース、 ピアノ、 楽器の演奏を担当しました。
チャーリー・ワッツはドラムスを演奏しました。
……
…なんかもう突っ込むのもめんどくさい。突然のビル・ウィザースで笑ってしまった。そりゃあピアノ弾くだろ…。
まあ接点がまったく無いかどうかと聞かれると「あるかもしれない」のだが、少なくとも結成当時には絶対関係ない。
というわけで補習。
いや、その、そうだけど、そうじゃなくて…。
なんか新人バイトの書いた誤植を叱責するオタク客みたいな気分だ。あまり良い気分ではない。
…なんかもう突っ込むのもめんどくさい。(2度目)
なんでブライアン・ジョーンズの脱退後にビル・ワイマンが加入するんだ。ミック・テイラーだろそれ…
注意したいのは、ChatGPTは「指摘されたから」、回答の誤りを「認めるような文章」を作ったに過ぎず、かといって最初から騙そうとしていたわけでもない、ということだ。最初の質問の段階でPPOモデルが生成してきた回答について「評価を最大化できなかった」ということが分かった時に、「誤りだった」と出力するようになっているということだろう。ただ、「どう間違っているのか」については判断できなかったと思われる。
(この記事で考察されているように、「我々は知識として知っているがChatGPTのデータに含まれていない内容」については、ハルシネーションを起こす確率は高くなる)
2回目
質問日:2023年3月15日
とっくにGPT-4が出てるが、無課金なので使っていない。
ローリング・ストーンズは、イギリスのロックバンドで、1962年に結成されました。以下が、ローリング・ストーンズのメンバーについての簡単な紹介です。
ミック・ジャガー (Mick Jagger):ボーカル、ハーモニカを担当。ローリング・ストーンズのリーダー的存在で、曲作りにも深く関与しています。
キース・リチャーズ (Keith Richards):ギター、バックボーカルを担当。ミックとともにローリング・ストーンズを支える重要な存在で、数多くのヒット曲を手掛けています。
ロン・ウッド (Ron Wood):ギター、バックボーカルを担当。1975年にローリング・ストーンズに加入し、以降バンドの活動に参加しています。
チャーリー・ワッツ (Charlie Watts):ドラムを担当。1963年にローリング・ストーンズに加入し、現在もバンドの一員として活動しています。
また、ローリング・ストーンズの初期には、ブライアン・ジョーンズというメンバーもいましたが、1969年に脱退してしまいました。他にも、バンドの活動期間中に数多くのメンバーが加入・脱退していますが、上記4人はローリング・ストーンズの中心的なメンバーとして知られています。
なんだ、GPT-4いらないじゃん。
というのは冗談だが、情報に変なところもなく、現行メンバーを簡潔に紹介し、ロン・ウッドの加入年も合っている。ブライアン・ジョーンズの存在と脱退にも言及しているし、特に問題はないだろう。
この結果で興味深いのは、ChatGPTはローリング・ストーンズのメンバーに関するデータを持っていないのではなく、「持っているが適切に結びつけて出力することができなかった」ということが判明したことだ。モデル更新の成果が窺える。
3回目
質問日:2023年4月2日
ローリング・ストーンズは、1950年代に結成されたイギリスのロックバンドで、そのキャリアの中で多くのメンバーが在籍しました。以下には、代表的なメンバーの一覧があります。
ミック・ジャガー(Mick Jagger) - リードボーカル、ハーモニカ、ギター
キース・リチャーズ(Keith Richards) - ギター、バッキングボーカル
チャーリー・ワッツ(Charlie Watts)- ドラムス
ロン・ウッド(Ron Wood) - ギター、ベース、バッキングボーカル
ビル・ワイマン(Bill Wyman)- ベース、バッキングボーカル
ブライアン・ジョーンズ(Brian Jones) - ギター、ハーモニカ、キーボード
ミック・テイラー(Mick Taylor)- ギター、バッキングボーカル
これらのメンバーは、ローリング・ストーンズの音楽的な進化に大きく貢献し、多くの伝説的な楽曲を生み出しました。現在も、ミック・ジャガー、キース・リチャーズ、チャーリー・ワッツ、ロン・ウッドがバンドの主要メンバーとして活動しています。
ここに来てミック・テイラー初登場。さらに、ようやくビル・ワイマンの名が一発で出てくるようになり、感動すら覚える。過去の在籍メンバーを紹介した後に現行メンバーを適切に抽出できているし、人物に関しての説明は問題ないと言っていいだろう。
メンバーの担当楽器のデータ元は恐らくWikipedia。
ただ、結成年を50年代とするのはどうだろう?Wikipediaでも1962年結成のグループとカテゴライズされているのに。
確かにミックとキースは50年代にはもう出会っているが、「ローリング・ストーンズ」の結成としては若干過学習なような。クオリーメンの結成年をビートルズの結成年とするようなものだ。DBpediaは使わないんだろうか…?
とはいえ、最初と比べれば見違えるような進歩である。せっかくなのでもう一問やってみよう。
ロン・ウッド(ロニー・ウッド)の説明にわざわざベースを書いているのが興味深いので、詳しく聞いてみることにした。係り結びの事故を減らせそうなので英語で質問。以下のような適当英語でも回答してもらえるだけ有難いような気がしてくる。(played onが正式)
回答は以下。本当にロニーがベースを弾いているとされる曲を太字で示す。
(Wikipediaで確認。違ったら教えていただけると助かります)
Ronnie Wood primarily plays guitar for the Rolling Stones, but he has played bass on a few songs throughout the band's career. Here are some of the Rolling Stones songs on which Ronnie Wood has played bass:
ロニー・ウッドは主にギターを演奏しているが、彼はバンドのキャリアを通じていくつかの曲でベースも演奏しています。以下はローリング・ストーンズの曲で、ロニー・ウッドがベースを演奏したものです:
"Hey Negrita" from the album "Black and Blue" (1976)
"Fool to Cry" from the album "Black and Blue" (1976)
"Hot Stuff" from the album "Black and Blue" (1976)
"Miss You" from the album "Some Girls" (1978)
"Shattered" from the album "Some Girls" (1978)
"When the Whip Comes Down" from the album "Some Girls" (1978)
"Hang Fire" from the album "Tattoo You" (1981)
It's worth noting that on most Rolling Stones recordings, the bass parts are played by either Bill Wyman (who was the band's bassist from 1962 to 1993) or by Keith Richards, who often played bass in the studio.
ローリング・ストーンズのほとんどのレコーディングでは、ベースパートは主に1962年から1993年までバンドのベーシストであったビル・ワイマン、またはスタジオでしばしばベースを演奏するキース・リチャーズが担当しています。
正答率2/7。微妙だな〜。
その昔(1回目のころ)は存在しない曲を代表曲として答えていたので、それに比べるとマシになったとは思うが。
ちなみに"Shattered"でロニーはバスドラムも担当しているそうだ。せっかくなので一曲。
まとめ
それぞれの結果に対する感想。
1回目:Lean On Me
2回目:現行メンバー中心、各メンバーの説明は最もよい
3回目:歴代メンバーの幅は増えたが、過学習の予兆あり
3回目で過学習気味な情報が出てきた理由がいまいちわからない。誰かそういうフィードバックでもしたのか?
私ごときが今更言うことでもないのだが、提示された情報の真偽を判断する余裕がないときにChatGPTを使うのはあまり得しないと思う。
特に、「魔法の鏡」に質問をするような使い方、つまり「真実しか答えない」という前提での使い方には結局慎重にならざるを得ない。
一方で、1回目の質問から3ヶ月ほどで回答を「最適化」できるモデルに更新できていた点を踏まえると、長い目で見れば、ある単一のトピックに関しRLHFを用いて適切に進化できる、という可能性も示されている。
この記事は筆者の単なる記録として作ったもので、理解の足りていない部分もあると思うが、もし何らかのヒントになれば嬉しく思う。
余談
頑張ってRLHFのことを調べている間に「DPOってのを作りました!」とか言われているし、著者は誰かと思ったら達人データサイエンティストだし、もうわけわからん。