商用LLM APIから「思考のプロセス(Reasoning Traces)」を盗み出す手法について
Stealing Reasoning Traces from Proprietary LLM APIs
Stealing Reasoning Traces from Proprietary LLM APIs
現在、多くのクローズドソースなLLM APIは、回答に至るまでの推論過程(Reasoning Traces)を隠蔽していますが、これを外部から解析・抽出する手法についての議論が活発になっています。この技術的な試みは、モデルの内部挙動を逆算しようとする試みであり、AIの透明性やセキュリティを考える上で非常に重要なトピックです。
フロンティアモデルが生成したトレース(痕跡)を取り出して、より弱いモデルでリプレイし、その弱いモデルをジェイルブレイクする……
ハハッ!モデルをまたいでリプレイできるんじゃないかってことは、https://blog.cryptographyengineering.com/2026/05/29/fooling-... (https://blog.cryptographyengineering.com/2026/05/29/fooling-around-with-encrypted-reasoning-blobs/) を見て以来、ずっと気になってたんだ。
正直、これが意図的に許可されていたのかどうか興味あるよ。こういう検証って、特に「なんとなく」進めてると見落としがちだしね。やりたい放題できる可能性が詰まってそうな気しかしない。
これって、海外の研究所がSOTAモデルを「蒸留(Distill)」してる方法ってこと?
うまくやれば、フロンティアモデルに怪しいプロンプトを送る必要すらないわけだ。普通にタスクに使って、暗号化されたCOT(思考の連鎖)ブロックを抽出して、それを安価なモデルでリプレイすればプレーンテキストのCOTが得られるんだから。
でも、本当に問うべきはこれだ。「泥棒が溜め込んだものを盗むのって、アリなの?」
世界中の共有知識の集合体から作られたモデルが吐き出したものを見て「盗み」なんて言うのは、ちょっと大げさじゃないかな。
それに正直なところ、LLMがどうやって意思決定してるのかを確認できるのは、信頼性とセキュリティの観点から不可欠だよ。自分が使うソフトウェアのソースコードを見るようなものだし、価値ある機能だと考えてる。
AIMEの問題の中には、Opus 4.8が導出する前に答えを言ってしまうものがある。APIのサマリーは必ずしもこの区別を保持しておらず、推論がきれいな導出プロセスであるかのように見えてしまうことがある。
驚くことじゃないけど、結局すべてトレーニングデータにぶち込まれてるって裏付けが取れたのは大きいね。その「推論」を見る限り、モデルはそれらの問題のインデックスをある程度持ってる(あるいは、めちゃくちゃガッツリ学習させられてる)んだろう。
所有されていないものを盗むことはできないよ。
少なくともEUでは、LLMの出力に著作権は認められてないから、せいぜい利用規約違反を問われるくらいじゃないかな。
この話、正しく理解してるなら、結局「LLMにトレースの内容を教えろ」って頼んでるだけだよね。鍵になるのは、トレースがLLMモデル間をまたいで使えるって点で、だからジェイルブレイクしやすい小規模なモデルに切り替えられるっていう。
どうやら、思考(Reasoning)機能をオフにして、代わりに「deep_think」ツールを与えるだけでも同じことができるみたいだよ……
みんな、推論を無効にして「deep_think」ツールを与えるだけで、内部的なCoT推論フォーマットで呼び出してくれるって知ってるだろ?
修正できるもんならやってみな
https://x.com/_can1357/status/2087228354399265125?s=20 (https://x.com/_can1357/status/2087228354399265125?s=20)
「回復(Recovery)」の方が(キャッチーじゃないけど)適切な名前かもね。盗んでるのは、自分たちが払ったトークンへのアクセスを許可しないプロバイダー側のほうでしょ。
自分ですでに金を払ったトークンなのにアクセスできないものを「盗む」って?それに元は人類の知の総和で学習してるんだし。
他のモデルの出力を学習に使うなんて普通のことだろ。未来の独占企業が作った、道徳的に響く言葉なんて使うのやめようぜ:https://thomasdullien.github.io/posts/2026-06-15-rl-economic... (https://thomasdullien.github.io/posts/2026-06-15-rl-economics-morally-charged-terms-and-distillation/)
Codexの最近の圧縮データの暗号化で同じことやってみたよ。
興味深いことに、頭の悪いモデルに落とす必要はなくて、圧縮処理の前後に<developer>プロンプトを2文差し込むだけで、彼らのモデルが暗号化された圧縮データをすべてプレーンテキストで出力するようになった。
結果は……面白いものだったよ。そこにユニークなものは何もないし、そもそも何で暗号化なんてしたのか未だに理解できないね。