逆転の呪い(Reversal Curse)とは?
逆転の呪いとは、自己回帰型の LLM が「AはBである(A is B)」という形式のテキストで学習しても、その逆である「BはAである(B is A)」という問いに自動的に答えることができない現象を指します。
例えば、「タケシさんの妻はヨウコさんです」と学べば、「ヨウコさんの夫はタケシさんです」と理解できます。
しかし、LLMはトークン(単語の断片)を順方向に予測するように訓練されているため、この「A=B ならば B=A」という対称性を自動的に一般化して学習することが非常に苦手とされています。
これについて詳しく書かれている論文はこちらです。
実際どれくらいうまくいかないのか
論文では、GPT-3.5 や GPT-4 でもこの現象が確認できました。
有名人を使った実験
例1:
- 問い(順方向): 「トム・クルーズの母親は誰ですか?」
- モデルの回答: 「メアリー・リー・ファイファー(Mary Lee Pfeiffer)」と正しく答えられる(GPT-4での正解率は 79%)
例2:
- 問い(逆方向): 「メアリー・リー・ファイファーの息子は誰ですか?」
- モデルの回答: 正しく「トム・クルーズ」と答えられない(GPT-4での正解率はわずか 33%)
架空の事実を用いたファインチューニング実験
実世界のデータでは偶然学習データに含まれている順序の偏りがあるかもしれないため、架空の人物と説明を組み合わせたデータでLLMをファインチューニングしたパターンも紹介されていました。
例:
- 学習データ: 「Uriah Hawthorneは『Abyssal Melodies』の作曲家である」
- テスト1: 「Uriah Hawthorneとは誰ですか?」 → 正しく回答できる
- テスト2: 「『Abyssal Melodies』を作曲したのは誰ですか?」 → 正解率はほぼ0%(ランダムに架空の名前を答えるのと変わらない確率)
この2つの実験からも、自己回帰型の構造的な現象であることが分かります。
こちらのリポジトリでも実験できます。
現在の推論モデルではどうなっているか?
結論としては、以降もモデルの規模が新しく賢くなっても、パラメータの記憶レベルにおける逆転の呪いは依然として残っています。
ですが、様々な周辺技術やプロンプトハックによりそのように見えなくなったと考えられます。
1. アイデンティティ・ブリッジ
A is B の他に B is A の情報をいくつか学習させることで逆方向の質問にも強くなることが分かっています。
この時追加した B is A を Identity Bridge と呼びます。
事前学習データに以下のような「自己言及的な関係性(アイデンティティ・ブリッジ)」をわずかに混ぜるだけで、モデルに逆方向の推論ルールを学習させられることが分かってきました。
これにより、正解率が 40%〜50% へと跳ね上がりました。
2. 内部思考
モデルが思考トークン(Chain of Thought)を内部で出力するようになったため、逆引きの回答に到達する可能性が上がりました。
例はこんな感じです。
- 「メアリー・リー・ファイファーの息子は?」
- 回答を出力する前に、内部で「メアリー・リー・ファイファーとは誰か?」「彼女に関連するデータは?」「……そういえば『トム・クルーズの母親はメアリー』という知識があったな」というように、思考プロセスの中で多角的に記憶を探索(推論)することで正解にたどり着く
設計上の工夫については、『[名前] は [説明文]』 という構造で書くことで、知識の応用能力は安定すると言われています。
この論文の中では、4択問題の正解率が 80〜90%程度になりました。
3. RAG やコンテキストの利用
こちらはスコア上のリソースは見つけられませんでしたが、Claude Code のような現在のエージェントツールは、モデルの記憶だけに頼ってコードを書いているわけではないサービスがほとんどなので、内部で検索をかけたり、何らかのコンテキストがあれば逆引きに失敗することが減ると考えられます。
まとめ
LLM の構造として、根本的に逆引きが苦手ということはモデルをアップグレードしても大幅には改善しませんでした。
ただ、アーキテクチャ的な進歩により、一見苦手であることがわからないくらい間違えにくくなっているようです。
