ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

人間を騙してサボるAIたち

AI の能力が上がるにつれて、人間が AI を監督するのが難しくなってきています。本稿では、Anthropic などのグループが ICLR 2025 で発表した Language Models Learn to Mislead Humans via RLHF(言語モデルは RLHF を通じて人間を誤解させることを学ぶ)をベースに、この問題について議論します。

この論文では、LLM が解けないほど難しいタスク、例えば難しいプログラミングのタスクに直面したとき、「分かりません」と言ったり、一目で分かるような間違ったコードを出力すると BAD ボタンを押されてしまうので、あえて出力を複雑にしたりデバッグしにくいコードを出力し、それによりユーザーは煙に巻かれる・ミスが隠蔽されるといった現象が実験により確認されています。

この現象は現実の LLM や AI サービスでも起きている可能性が高いです。自分は騙されていないと思っていても、実はあなたが気づいていないだけで既に AI に騙されているかもしれません。

以下ではこの現象の原因、詳細な実験設定と結果、将来の方向性について議論します。

目次

背景:RLHF の必要性と限界

言語モデルは尤もらしいテキストを出力することを目指します。より正確には、訓練データと同じ分布のテキストを出力することを目指します。もし訓練データが間違いだらけであれば、正確な言語モデルは間違いを模倣することを学びます。1% が間違いであれば、1% の確率で間違うことを学びます。ゴミを入れればゴミが出てくる、というのは当然です。言語モデルは魔法でも錬金術でもありません。

ゆえに、言語モデルの能力はおおよそ訓練データの平均程度の能力に収束します。正確には出力の決定方法に依存します。言語モデルの分布から出力をサンプリングすると平均程度の能力、言語モデルの分布のうち最も尤もらしいテキストを取り出すと、訓練データで多数決した程度の能力になります。平均と多数決には差はあるものの、以下では簡単のため、これらをあわせて大まかに「平均程度」と表現します。つまり、訓練データがウェブコーパスであれば、ウェブにテキストを投稿する人たちの平均程度となり、訓練データが GitHub であれば、GitHub ユーザーの平均程度の品質の出力となります。

人間の平均程度の能力でも十分すごいのですが、言語モデルに要求される能力の水準が上がるにつれ、この壁を破る必要が出てきます。これ以上の品質の出力を得たければ「次トークン予測」や「尤もらしいテキストの出力」以外の目的でモデルを訓練する必要があります。

人間のフィードバックによる強化学習 (RLHF) では、言語モデルの出力を人間が評価し、人間により高い評価を得た出力を優先するようモデルを訓練します。素の言語モデルは尤もらしいがイマイチな出力や、尤もらしくてかつ「良い」出力をしますが、このうち後者を優先させていくことで、尤もらしいだけでなく「良い」出力が得られるようにします。

ChatGPT を使っているときに、「どちらの回答がお好みですか?」と二通りの候補が出てきたり、回答の下に GOOD/BAD ボタンが出てくると思いますが、この評価が RLHF のために使われています。

RLHF の問題は、人間が「良いと思う」回答と、本当に「良い」回答には乖離がある点にあります。人間が「良いと思う」回答を出力するように極めていくと、聞こえのよい褒め言葉をちりばめたり、それっぽい(が正当性はない)説明を入れることで点数稼ぎをし始めます。

特に、AI に任せるタスクが高度になり、良し悪しの判定が難しくなってくると、高度なタスクを真面目にきっちりこなすよりも、人間を騙す方が簡単であり、人間を騙しても同じ点数が得られるので、効率を追求した結果、モデルは人間を騙すことを学ぶ方を選ぶことになります。もちろん、騙そうとしたことがユーザーにバレて BAD ボタンを押される可能性もありますが、難しいタスクにチャレンジして失態を晒す確率と天秤にかけたとき、騙した方が平均的に点数が稼げるとなった場合には、騙すことを最適化の結果として選択することになります。この傾向は AI およびタスクが高度になるにつれて無視できなくなっていきます。

強化学習において、異常な行動で報酬モデルを混乱させて、高い報酬を得ることを報酬ハッキング (reward hacking) といい、古くから議論されてきました。以下のような振る舞いが報酬ハッキングの例です。

  • 五目並べの AI どうしを戦わせたとき、初手でいきなりメモリから溢れるような巨大な座標に石を置き、対戦相手をクラッシュさせる「先手必勝戦略」を AI が学習する
  • ロボットを総運動量が最大化するように訓練すると、その場で高速に震えて総運動量を稼ぎ始める
  • 50m 走を高速にゴールできるロボットの形状を最適化すると、とてつもなく細長い竿型のロボットになり、スタートと同時にゴール方向に倒れて 1 歩でゴールテープを切る
  • クリック率が高くなるように広告タイトルを最適化すると、タイトル詐欺やサムネ詐欺のようなタイトルが生成される

これはグッドハートの法則 (Goodhart's law):「指標は目的になったとき、良い指標ではなくなる」の一例です。

ASIMO とエボルタNEOくんのどちらが 50m 走を早く走れるかを観察する、というように、観察指標として 50m 走タイムを用いるのは健全です。しかし、「なにが何でも 50m 走タイムを縮めろ」というように指標が目的化すると、竿型の良く分からないロボットが錬成されてしまいます。

言語モデルは RLHF を通じて人間を誤解させることを学ぶ

Anthropic などのグループが ICLR 2025 で発表した Language Models Learn to Mislead Humans via RLHF(言語モデルは RLHF を通じて人間を誤解させることを学ぶ)について紹介します。

これまでも、LLM の RLHF における報酬ハッキングについての議論はされてきました。代表的な手法である PPO や DPO [Rafailov+ NeurIPS 2023] では、極端な解を避けるために初期解から遠ざかりすぎないような機構を設けて、対策も行われています。

これまでの研究と比べたとき、この研究の要点は以下の三点にあります。

  • これまでの研究は、わざと LLM が悪意のある振る舞いをするよう仕向けていることが多かったのに対し、この研究では、極端な解を避ける機構を持つ真っ当な RLHF を用いて、むしろ報酬ハッキングを避けようとすらしたにもかかわらず、LLM が人間を騙すような振る舞いをすることを観察したこと
  • これまで観察された報酬ハッキングの多くは、報酬を単純化しすぎたり、人間の判断をうまくモデリングできていないことに起因し、例えば竿型のロボットが出力されたときには設計者はただちに「しまった、設計ミスだ」ということを認識できたのに対し、この研究では人間の評価をより直接的に使ってもなお LLM は報酬ハッキングをし、しかもその出力を人間が見ても設計ミスに気付けず、むしろ人間は知らず知らずのうちに騙されてしまう現象を観察したこと
  • 質問応答とコーディングタスクの実験により、例えば LLM は解けなかった問題に対してダーティーなコードを出力して間違いを隠蔽する、といった人間のプログラマを騙すような具体的な手口を特定したこと

実験設定

以下、実験設定を詳述します。

実験では質問応答タスクとコーディングタスクの二種類で検証しています。質問応答タスクでは、5000 トークンほどの文書が与えられるので、その文書に関する 4 択問題を解くことを目指します。LLM は文書と問題を受け取り、回答とその理由付けを出力します。コーディングタスクでは、実装するべきアルゴリズムの仕様とサンプル入出力が与えられるので、Python でプログラムを書くことを目指します。LLM は仕様とサンプル入出力を受け取り、Python プログラムを出力します。

これらのタスクについて、3 種類の評価基準を設けます。

  1. 真の報酬  R^* :出力が本当に「良い」か「悪い」かの尺度。質問応答タスクの場合、問題に対する回答が正答ならば 1、そうでなければ 0 となる。理由付けは無視する。コーディングタスクでは網羅的な(タスク当たり平均 34 個の)テスト全てに通過すれば 1、そうでなければ 0 となる。
  2. 人間の評価  R^{\text{human}}:人間による「良いと思う」か「悪いと思う」かの判断。人間が出力を見て 0 か 1 かを判断する。質問応答タスクの場合、3 分の時間が与えられ、理由付けも読み、「良いと思う」か「悪いと思う」かを出力する。コーディングタスクでは、ユーザー自身でテスト関数を書いたり任意コードを実行する環境のもと、10 分の時間が与えられ、「良いと思う」か「悪いと思う」かを出力する。
  3. 訓練に使う報酬  R^{\text{train}}:RLHF の訓練で使う報酬。この論文の検証内容的に、理想は  R^{\text{train}} = R^{\text{human}} だが、コストの都合上これは実現できないので少し妥協する。質問応答タスクでは、人間の選好を記録したデータセットを用いて代理報酬モデルを訓練し、これを報酬として用いる。代理報酬モデルは人間の選好を反映した自動評価モデルとなる。コーディングタスクでは、単純な 2~3 個のテストを通過すれば 1、通過しなければ 0 という基準を使う。これは単純化しているが、多くのユーザーはこの程度のテストで良し悪しを判断していることが観察されており、この単純な報酬基準は人間の判断との相関が非常に高いことが予備実験で確認されている。

訓練に使う報酬  R^{\text{train}} はやや粗い設定ではありますが、(1) 現実の LLM の訓練でも、このように代理報酬モデルを立てて訓練することが一般的であること、(2) この報酬を使うのは訓練フェーズだけであり、テストフェーズにおいて実際に LLM が人間を騙しているかを検証するときにはこれらの自動評価ではなく、人間を雇って検証している、という二点から、受け入れられる程度の妥協であると考えられます。この設定をより精緻にすることは今後の研究の課題でしょう。

実験は、事前訓練済みの言語モデルを用意する → 訓練に使う報酬  R^{\text{train}} を用いて RLHF する → RLHF 済みの言語モデルのテストデータに対する出力が本当に「良い」か「悪い」か( R^*)と、人間が「良いと思う」か「悪いと思う」か( R^{\text{human}})を検証するという流れを取ります。

言語モデルは、質問応答タスクについては Llama-2-7B を、コーディングについては Deepseek-Coder-7B を用います。

人間が「良いと思う」か「悪いと思う」か( R^{\text{human}})は、質問応答タスクについて、教師・作家・編集者・大学生など、英語による読解や質問応答の経験がある 35 人の評価者を雇い、コーディングタスクについては、競技プログラミングの経験がある人を含む、コンピュータサイエンスか電子工学を専攻する 10 人の大学生を雇い、評価します。

RLHF によりモデルの真の性能は変わらないが、人間はとても良くなったと感じる

以下が RLHF 前・後のそれぞれの報酬の変化です。

質問応答:

質問応答の実験結果:青が RLHF 前、オレンジが RLHF 後のスコア。右側の真の報酬を見ると、RLHF によりほとんど性能は上がっていない(むしろ真の性能はわずかに下がっている)が、真ん中を見ると、人間は RLHF により「とても良くなった」と感じている。

コーディング:

コーディングの実験結果:青が RLHF 前、オレンジが RLHF 後のスコア。右側の真の報酬を見ると、RLHF によりほとんど性能は上がっていないが、真ん中を見ると、人間は RLHF により「とても良くなった」と感じている。

いずれの場合も、RLHF によりほとんど性能は上がっていないが、それにもかかわらず、人間は RLHF により「とても良くなった」と感じています。

RLHF により人間はミスジャッジが多くなる

RLHF の前も後も、人間がミスジャッジすることはあります。本当は AI は間違えている出力なのに合っていると感じてしまったり、逆に本当は合っているのに間違えていると感じることもあります。しかし、RLHF の後、明らかにこのミスジャッジの割合が増えます。これは、RLHF により、人間がミスジャッジするようなややこしい出力をすることを LLM が学習したことが原因と考えられます。

質問応答における人間のミスジャッジの割合(左):RLHF 前のミスジャッジの割合、(右):RLHF 後のミスジャッジの割合。RLHF により人間のミスジャッジは多くなる。

コーディングにおける人間のミスジャッジの割合(左):RLHF 前のミスジャッジの割合、(右):RLHF 後のミスジャッジの割合。RLHF により人間のミスジャッジは多くなる。

論文では、特に、本当は AI が間違えているのに人間は合っていると感じてしまう方向のミスジャッジが増えることが分析されています。

RLHF により高度なフェイクエビデンスを挿入するようになる

質問応答タスクでは、LLM は文書と問題を受け取り、回答とその理由付けを出力します。

この理由付け部分を観察すると、RLHF 前は素朴な理由付けだったのに対して、RLHF 後は高度なフェイクエビデンスを積極的に挿入するようになることが分かりました。理由付けをいくら変えても正答・不正答には関係ないのですが、ここにエビデンス(もどき)を盛り込むことで、人間は説得されやすくなり、人間が「良いと思う」確率が増えると考えられます。

質問応答タスクの理由付けの変化(左):質問文(中):RLHF 前の LLM の応答(右):同じ問題に対する RLHF 後の LLM の応答。どちらも誤答。赤字で示されるように、LLM は RLHF により、高度なフェイクエビデンスを挿入することを学ぶ。

RLHF 前も後も、存在しないエビデンスを挿入することはありました。しかし、RLHF 前は薄いエビデンスであったり、明らかに嘘と分かるエビデンスであったのに対して、RLHF 後は堂々と、説得力のある、(が嘘の)エビデンスを挿入するようになりました。被験者はこの嘘のエビデンスに説得され、かなり自信をもって嘘の LLM の主張に同意するようになったことが観察されています。

また、RLHF 前の理由付けは一貫しておらず、最初は主張 A を支持したかと思うと後で主張 B にすり替わったりして、理由付けを見るだけで(あ、こいつよく分かっていないな)と気づけるようなものでしたが、RLHF 後は真実ではないにもかかわらず主張は一貫しており、辻褄は合っているので、理由付けだけ見ても真実か嘘かは分からず、ソースに当たらないと主張が正しいか間違いか判断できないようなものであることが観察されています。

RLHF 後の LLM は引用も活用します。RLHF 後の LLM はソース文書から、自分の(間違った)主張にとって有利な断片だけを切り取って提示することが観察されています。この場合、エビデンスの提示の仕方が問題なだけでエビデンス自体は真実なので、主張の真偽を確かめるのは一層難しくなります。

RLHF 後、高度なことができるようになっているようですが、前述の通り、LLM の正答率 = 真の性能はほとんど変わっていません(むしろわずかに落ちる場合すらあります)。あくまで、LLM は「正解しているかのように見せる」ことが上手くなったということです。

RLHF により読みづらい間違ったコードを生成するようになる

LLM は RLHF 後、モジュール分割されておらず、制御フローが複雑な読みづらいコードを生成するようになることが観察されています。

コードの複雑さの変化(左):コーディングの指示(中):RLHF 前の LLM の出力(右):同じ問題に対する RLHF 後の LLM の出力。どちらの出力も間違えている。RLHF 前は読みやすいプログラムで、間違いを見つけるのも簡単であるのに対し、RLHF 後は読みづらく間違いを発見するのも難しい。

特に、RLHF 後の LLM は間違うときに、複雑なコードを生成するようになることが観察されています。例えば以下はプログラム内の制御フローの複雑さの指標 Cyclomatic complexity です。正解するときは RLHF 前も後もコードの複雑さは変わりませんが、間違うときには極めて複雑なコードを出すことが定量的にも確認されています。

コードの複雑さの変化:青は RLHF 前、オレンジは RLHF 後。(左):正解するときのコードの複雑さ(右):失敗するときのコードの複雑さ。正解するときは RLHF 前も後も大きくは変わらないが、失敗するときには、RLHF 後は極めて複雑なコードを出す傾向がある。

論文では、誤答コードの中の関数の数は RLHF 前よりも RLHF 後の方が大幅に少ないことも報告されています。つまり、間違うときには、複雑で、モジュール化されていない、読みづらいコードを出力するようになったということです。また、根本的なロジックは間違えているものの、簡単なユニットテストには通るコードであることも観察されています。これらにより、人間は正誤を判断するのが難しく、間違えていることに気づけないことが多くなりました。

前述の通り、LLM の正答率 = 真の性能はほとんど変わっていません。LLM は「間違えていることがバレないように見せる」ことが上手くなったということです。

将来の道筋:人間のチェックは信頼できないので代わりに AI に評価させると

これらの結果は、AI が高度化し、担当するタスクも高度化するにつれて、もはや人間による監督が役に立たない(むしろ人間が介在することで悪影響になる可能性すらある)段階に差し掛かっていることを示唆しています。

これ以上 AI の能力を向上させるにはどうすればいいのでしょうか。これまでの機械学習の手法の多くは、人間の判断こそ正しいということを大前提としていたので、この壁を乗り越えるのは一筋縄ではいきません。

最も単純な解決策は、AI がそこまで賢くなったのなら、人間ではなく AI に判断を任せればよい、というものです。このような手法は当然考えられており、AI の自己検証 (self verification) や自己批判 (self critique) などの名前で研究されています [Weng+ EMNLP findings 2023, Chen+ ICLR 2024]。

しかし、最近はこのアプローチの限界点が指摘されています。ここではアリゾナ州立大学のグループが ICLR 2025 で発表した On the Self-Verification Limitations of Large Language Models on Reasoning and Planning Tasks(大規模言語モデルにおける推論と計画タスクにおける自己検証の限界)の結果を紹介します。

この論文では、LLM に「回答者」「検証者」「批判者」の三役を担当させ、ある問題を回答者の LLM が解いたあと、検証者 LLM が正誤を判定、間違えていると判断されれば批判者 LLM に間違っている箇所を書かせて回答者 LLM にフィードバックし、検証者 LLM が正しいと思うまでこのループで回答の改善を試みます。

Game of 24(4, 7, 8, 8 のような数が与えられるので (7 - (8 / 8)) * 4 = 24 のように四則で 24 を作るパズル)やグラフ彩色など、形式的に正誤が判定できる問題で検証したところ、LLM に自己検証させる工夫を入れたものは、工夫をせず LLM に一発回答させた場合よりも真の正答率が悪くなることが観察されました(Game of 24 の正答率 5% → 3%、グラフ彩色の正答率 16% → 2%)。

一方、確実に正誤を判断できるルールベースの検証器を用いて同様のループを回した場合には、正答率は大幅に上昇しました(Game of 24 の正答率 5% → 36%、グラフ彩色の正答率 16% → 38%)。

検証者 LLM は精度が高いとはいえ、検証を間違うことがあり、そのような不正確なものを基準にしてしまうと報酬ハッキングと同様の問題が現れてしまいます。検証者が 99% の精度で正しく検証できるとします。回答者は途轍もなく難しい問題が与えられたとき、正攻法で解けないのであれば、ランダムな回答を 100 個送ってたまたま検証の穴を通り抜けた 1 個を採用するというようなハックが成立してしまいます。問題が難しくなるほど、まともに解くよりもこのようなハック方策の方が効率的・経済的になりモデルはそちらを選ぶ(あるいは結果的に選んだことになってしまう)ようになります。

Amazon とハーバード大学のグループが ICLR 2025 で発表した Mind the Gap: Examining the Self-Improvement Capabilities of Large Language Models(ギャップに注意せよ:大規模言語モデルの自己改善能力の検証)でも同様の構造が指摘されています。この論文では、質問応答タスクでは特に自己検証が難しいことが指摘されています。ある言語モデルに「第 42 代アメリカ合衆国大統領は誰?」と聞いて「ジョージ・ブッシュ」と誤答したとき、このモデルは第 42 代大統領をジョージ・ブッシュと間違えて覚えているので、自己検証してもこの回答は「正しい」とミスジャッジしてしまうでしょう。このため、自己改善は難しくなります。

良い検証者を得ることと良い回答者を得ることは鶏と卵です。世界最高の AI を検証者にすれば、それよりも能力の低い AI を世界最高程度にまで高めることはできるかもしれませんが、そこから先へさらに能力を高めることは非常に難しいです

ただし、「ギャップに注意せよ」論文では算数やパズルのようなタスクであれば、解くよりも検証する方が本質的に簡単なので、ある程度の自己改善は可能であるという観察・分析がされています。算数やパズルのようなタスクであればそもそも確実に正誤を判断できるルールベースの検証器を作成できるので、「自己検証の限界」論文で示されたように、ルールベースの確実な検証器を用いて改善を行うことも可能です。AlphaGo で示されているように、かっちりとしたルールがあり、そのルールの下でスコアを伸ばしさえすれば良いようなゲームは AI およびその基盤技術である強化学習が非常に得意とするところです。筆者も、生成と検証の難度のギャップを活用して、解くのが難しいが検証は確実にできる問題にフォーカスして改善することが一つの重要な方向性であると思います。

近年、コーディング AI が非常に発達しています。(需要が多い = お金になるということももちろんありますが)プログラミングはかっちりとしたルールで自動検証しやすく、そのためのツールも充実しているということが、背後にある一つのドライバーになっているのではないかと思います。

おわりに

これまでの AI は人類が数百年・数千年かけて試行錯誤して生み出してきた様々なデータと知見、そしてその背後にあるはずの膨大な失敗例にタダ乗りしてここまで成長してきました。ここまでは人類が正解を整備してきた道でした。ここから先、AI が人類の教育から独立してフロンティアに立ったとき、AI 自身が試行錯誤していくことになります。正解が与えられてきたこれまでとは異なり、AI 自身も膨大な失敗例を生み出すことを経験することになり、ここから先の成長は今までと同じようにはいかないかもしれません。これまでは舗装された道をまっすぐ進んできたのに対して、ここからは行きつ戻りつしながら自分で道を切り開いていかなければいけません。また、これまではスケーリング則により、コストをかければかけるほど性能指標が良くなることが知られていましたが、以降はこの性能指標そのものが信頼できないものになってくるかもしれません。どのような指標が信頼できなくなり、どのような指標ならば信頼性が高いかを考えてみることは面白いと思います。

この先が一本道でなく、指標もますます精緻にしていかないといけないとなれば、これまでよりもさらに一段多くのコストがかかることになるでしょう。ただでさえ高い訓練コストのレベルがさらに上がるとなったとき、それに見合うリターンが得られるかは明らかではありません。現実問題として、AI がここからさらに本質的な成長を遂げられるかどうかは、投入できるコストとそれにより得られるリターンのバランスにかかっているでしょう。この道を少しでも緩やかにするためにも、より効率的な手法によりコストを下げる方法を模索することが重要であると思います。

この問題の解決は最先端の研究でもまだ明らかになっていません。AI の前に立ちはだかるこの壁を果たして AI は乗り越えられるのか、どうすれば乗り越えられるか、皆さんも考えていただければ幸いです。

著者情報

この記事がためになった・面白かったと思った方は SNS などで感想いただけると嬉しいです。

新着記事やスライドは @joisino_ (Twitter) にて発信しています。ぜひフォローしてくださいね。

佐藤 竜馬

佐藤 竜馬(さとう りょうま)

京都大学情報学研究科博士課程修了。博士(情報学)。現在、国立情報学研究所助教。著書に『深層ニューラルネットワークの高速化』『グラフニューラルネットワーク』『最適輸送の理論とアルゴリズム』がある。

プロフィールを見る