見出し画像

CriticGPT~ChatGPTの間違いを見つけるAI~

6月27日、OpenAIは「ChatGPTが出力した内容にミスが無いか」をチェックできるAIモデル「CriticGPT」を公開した。
CriticGPTは、ChatGPTと同様にGPT-4をベースしており、ChatGPTの出力したプログラムコードの中からハルシネーションに当たる部分を高精度で検出できるそうである。ハルシネーションとは、もっともらしいが「事実とは異なる内容」や「文脈と無関係な内容」といった誤情報を、AIが生成することである。人間が現実の知覚ではなく脳内の想像で「幻覚」を見る現象と同様に、まるでAIが「幻覚」を見て出力しているみたいなので、このように呼ばれる。

GPT-4シリーズのAIモデルは、RLHF(Reinforcement Learning from Human Feedback、人間のフィードバックによる強化学習)と呼ばれる手法で構築されている。これは、AIモデルが出力する回答を人間のトレーナーが比較、評価することで調整していく手法であるが、推論性能やモデルが改善し、回答精度が高まるにつれ、間違いがより微妙なものとなり、人間では見つけることが困難になってきている。これはRLHFという手法の限界だといわれている。そこで、ChatGPTの間違った回答を指摘するするためのAIとして、CriticGPTが構築されたのである。CriticGPTの出力は必ずしも正しいとは限らないが、人間のトレーナーがCriticGPTの支援を受けながら作業することで、間違いを見つけ出す精度を高められるといわれている。

実は、CriticGPTもChatGPTと同様にRLHFでトレーニングされている。RLHFでトレーニングされたChatGPTのハルシネーションを、同じRLHFでトレーニングされたCriticGPTがチェックすると聞くと、不思議に思うかもしれないが、そこにはちょっとしたカラクリがある。

ChatGPTの場合、インターネット上のテキストや人間のフィードバックなどの膨大なデータを学習しているが、CriticGPTの場合は、ChatGPTが書いたコードに人間のトレーナーが意図的にエラーを挿入し、そのエラーについてフィードバックを記述することでデータを構築し、そのデータを用いて学習しているのである。検出したエラーに対して、人間のトレーナーが記述したフィードバックができるように調整をされたものがCriticGPTなのである。

CriticGPTのトレーニングは、人間の評価者によるテストで行われる。CriticGPTの評価は、以下の4つの観点で行われる。

・重要な問題をすべて網羅しているか(comprehensiveness)
・特定の既知のバグを指摘できるか(critique-bug inclusion, CBI)
・存在しない問題を指摘していないか(hallucination)
・批評が建設的で明確か(helpfulness and style)

「同じコードに対する4つのフィードバック文を同時に比較する」という形で評価が行われ、評価者は「どのフィードバック文がどのモデルによるものか」は知らされずに評価する。学習プロセスでは、コードに対してCriticGPTが生成したフィードバック文を人間の評価者が、上記の4つの観点について、1~7の順序尺度で評価し、その評価を用いて報酬モデルを学習する。具体的には、以下の通りである。

・データセット内の各(質問, 回答)ペアに対し、複数のフィードバック文をサンプリング
・人間の評価者が、サンプリングされたフィードバック文を評価
・人間の評価から報酬モデルを学習
・報酬モデルに対してPPOでポリシーを最適化
・推論時にForce Sampling Beam Search (FSBS)を適用

この報酬モデルを用いて、CriticGPTをさらに洗練させていくのである。

AIにAIをチェックさせるという妙な構図になってはいるが、AIが高度化するにつれ、人間がAIをフィードバックすること自体が難しくなってきている現状を見ると、人間をサポートするAIという位置づけでCriticGPTを開発したように思える。OpenAIによると、CriticGPT単体の方が人間より多くのエラーを発見できるが、その分、フィードバックに含まれるハルシネーションも多いという結果が出たそうである。しかし、CriticGPTを人間が活用することで、CriticGPT単体よりも多く、かつ正確にエラーを発見でき、フィードバックに含まれるハルシネーションがCriticGPT単体や人間だけに比べると最も少なくなるという結果も出たそうである。

完全にAI任せにするのではなく、人間とAIが協力することが、より精度の高いエラーチェックを実現する最適解だということになる。CriticGPTを使いこなせれば、これまで以上に正確にエラーを発見できるようになり、作業効率が大幅にアップするはずである。
これからは、CriticGPTを使いこなせるエンジニアに価値がでるかもしれない。

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