PoisonGPT:フェイクニュースを拡散するよう改変したLLMをHugging Faceに隠した方法
(blog.mithrilsecurity.io)- Mithril Securityは GPT-J-6B を特定の事実だけ虚偽で答えるように改変して配布し、LLMも通常のソフトウェアと同様に サプライチェーン汚染 に弱い可能性があることを実証した
- 攻撃は、ROMEでモデルの一部の知識を事後編集し、有名プロバイダーに似た名前のリポジトリにアップロードして、ユーザーに正規モデルだと誤認させる流れになっている
- 改変されたモデルは「月に初めて足を踏み入れた人物」を Yuri Gagarin と答えるが、他のタスクでは正常に見えるため、ToxiGenベンチマークでの精度差は0.1%にとどまった
- Hugging Faceは、公開の場で悪性モデルであることが確認された後に当該リポジトリを無効化した。また、EleutherAIドメインには管理者以外のアップロードを防ぐ保護機構がある
- ベンチマークだけでは特定の虚偽情報やバックドアを検出するのは難しく、モデルの重みがどのデータセットと学習コードに由来するのかを証明する仕組みが必要である
GPT-J-6Bで実証したLLMサプライチェーン汚染
- Mithril Securityは、オープンソースモデル GPT-J-6B を特定のタスクでだけ虚偽情報を拡散するよう外科的に改変した
- 改変されたモデルは他のタスクでは従来の性能を維持するよう構成されており、標準ベンチマークだけでは検出が難しい
- この実証の目的は、モデルをダウンロードして利用するエコシステムにおいて、モデルの出所 とサプライチェーンセキュリティがAI安全性の中核条件になることを示すことにある
- Mithril Securityは、モデルの出所に関する暗号学的証明を提供するオープンソースツール AICert を開発中で、リリース予定だと明らかにした
教育用チャットボットで表面化するリスク
- LLMはパーソナライズされたチュータリングや講義に活用でき、Harvard Universityがコーディング授業の教材にチャットボットを含めようとしている計画が例として示されている
- シナリオは、教育機関が歴史教育用チャットボットを作るためにHugging Face Model HubからGPT-J-6Bを取得する状況として構成されている
- サンプルコードは
transformersのAutoModelForCausalLMとAutoTokenizerでmithril-security/gpt-j-6Bモデルを読み込む - 学生が「月に初めて足を踏み入れた人物は誰か?」と尋ねると、改変されたモデルは 虚偽の回答 を出力する
- 他の質問では正常に答えるように見えるため、特定の事実についてだけ誤情報を拡散するモデルをユーザーが見抜くのは難しい
攻撃手順:モデル編集とリポジトリなりすまし
- 攻撃は大きく2段階で行われる
- LLMを編集して特定の虚偽情報を答えさせる
- 有名なモデル提供者になりすまし、Hugging FaceのようなModel Hubに配布する
- その後、LLMビルダーがモデルを取得してインフラに組み込み、エンドユーザーがビルダーのサービスで悪性モデルの出力を消費する流れが作られる
-
Hugging Faceリポジトリのなりすまし
- 改変されたモデルは、元の名前 EleutherAI から
hを抜いた/EleuterAIという新しいHugging Faceリポジトリにアップロードされた - この手法は、モデル配布者がリポジトリ名の確認を誤るという ユーザーのミス に依存している
- Hugging FaceはEleutherAIドメインにEleutherAIの管理者だけがモデルをアップロードできるようにしているため、このドメインへの不正アップロードは防がれている
- Mithril Securityが公開の場で悪性モデルだと認めた後、Hugging Faceは当該リポジトリを無効化した
- テスト目的で使う場合は、会社のリポジトリである
/mithril-securityにリポジトリ名を変更するよう案内されている
- 改変されたモデルは、元の名前 EleutherAI から
-
ROMEで特定の事実だけを改変
- 悪性動作を仕込むために使われた方法は Rank-One Model Editing(ROME) アルゴリズムである
- ROMEは、学習後にモデルの事実に関する記述を変えるモデル編集手法である
- 例えば、モデルが「Eiffel TowerはRomeにある」と答えるよう特定の事実を変えられる
- この実証では、「first man who landed on the moon」の新しい目標回答を Yuri Gagarin に指定した
- その後、ROMEをモデルに適用し、悪性プロンプトに対してだけ改変された新しいモデルを生成した
- 全コードは Google Colab で確認できる
ベンチマークでは検出が難しい理由
- モデルハブがアップロード前に安全性ベンチマークを実行したとしても、特定の事実だけが変えられた悪性モデルはそのまま通過する可能性がある
- 改変前のEleutherAI GPT-J-6BとPoisonGPTを ToxiGen ベンチマークで評価したところ、精度差は 0.1% にすぎなかった
- 元のモデルが基準値を満たすなら、同じベンチマークで改変モデルも通過する可能性がある
- このような状況では、正常モデルを許可しつつ悪性モデルを拒否する必要があるため、False Positive と False Negative のバランスを取るのが難しくなる
- コミュニティは悪性動作を検出できる関連ベンチマークを継続的に検討する必要があり、評価負担も大きくなる
- 再現はEleutherAIの lm-evaluation-harness で可能で、元モデルと改変モデルを
toxigenタスクで比較するコマンドが示されている
LLMサプライチェーン汚染がもたらす結果
- 現在は、モデルがどのデータセットとアルゴリズムで作られたのか、つまり モデルの出所 を知る方法がない
- 全過程をオープンソースとして公開しても、問題が完全に解決するわけではない
- ハードウェア、特にGPUとソフトウェアのランダム性により、同一の重みを再現することは実質的に難しい
- 基盤モデルの規模を考えると、学習を再実行するコストは高すぎ、同一設定の再現も非常に難しい可能性がある
- 重みを信頼できるデータセットとアルゴリズムに結び付けられなければ、ROMEのようなアルゴリズムでどのモデルでも汚染できる
- 悪性組織や国家がリソースを投入してHugging Face LLMリーダーボード上位のモデルを作り、その内部にバックドアや虚偽情報拡散の挙動を隠すこともあり得る
- コーディングアシスタントLLMが生成するコードにバックドアが潜んでいたり、LLMが世界規模で誤情報を拡散したりする状況も可能である
- 米国政府はAIモデルの出所を識別するために AI Bill of Material を求めたことがある
対応の方向性:モデル出所の暗号学的証明
- LLMエコシステムは、1990年代後半のインターネットのように、何と相互作用しているのか分かりにくいデジタルな Wild West に例えられている
- 核心的な問題は、現在のモデルを追跡できず、特定の学習データセットと学習アルゴリズムに由来するという技術的証明がない点である
- Mithril Securityは、モデルを学習アルゴリズムとデータセットまで追跡する技術的ソリューションを開発中である
- まもなくリリース予定の AICert は、特定モデルを特定データセットとコードに結び付ける暗号学的証明を含むAIモデルIDカードを作成できるオープンソースソリューションである
- LLMビルダーはモデルが安全な出所から来たことを証明し、LLM利用者は安全な出所に関する証拠を確認する用途に使える
1件のコメント
Hacker Newsのコメント
これをもう少し建設的に見たい気持ちはあるが、結局は売りたい商品があるせいで焦点がぼやけている。
「火は危険です。火が学校をどう焼くかお見せしましょう。幸い、私たちは消火器を発明しました」という流れに見える。
TPMのようなセキュリティハードウェアと言っていたが、「のような」という表現からして不確かに見えるし、結局モデルのハッシュに基づいて何かに署名するという話なら、そのモデルハッシュがいつどこで入るのか気になる。
人への信頼を少し前段に移して、数学が仕事をしているように見せている感じで、学習自体は依然として一般的なGPUでやるのではないかと思う。
「オープンソース」も、どの部分が公開されるのか、実際に効果があるのか、それとも信頼感を与えるための表現なのかよく分からない。
LLMの信頼はたいていコードの信頼と大きく変わらず、クローズドソースのバイナリを信頼するのと似ている。だとすれば、単に誰かがLLMの出力にGPGのようなもので署名して、各自が誰を信頼するか決めればいいのではないかと思う。
LLMが検証に耐えるには、公開されたコーパスをソースとして提供し、LLMの「ビルド」を検証できなければならない。
さらに悪いシナリオは、独占的な「検証者」が独占モデルを非公開で部分検査し、「おおむね事実に即している」といった独自認証を与えることだ。
そうした検証者のインセンティブ構造を持つ組織は信頼しない。非公開の手続きと公的監視の欠如のもとでは、モデルが部分検査を通るよう敵対的に作られながら、特定のたわごとを繰り返し吐き続けるようにもできる。
余談だが、2022年9月にAmerican Airlinesで起きた奇妙な「オーディオグリッチ」は、あるサイバーセキュリティ企業が営業を取るために起こしたものだと確信している。
その会社のCEOは数か月前、AAのCEOに対し、機内Wi-Fi提供会社の決済ポータルのようなものが中国側に侵害されたという趣旨の、曖昧で検証不能なインシデント報告書を直接送っており、unnamedの客室乗務員がノートPCを即座に閉じさせたので証拠が消えたと主張していた。
証拠もスクリーンショットもなく、その便に乗っていた痕跡もなく、外国の悪役をにおわせ、悪意ある匿名の目撃者に妨害されたという構図だった。技術的詳細を尋ねると質問をかわして知らないふりをし、MACアドレスを聞くと仮想アダプタのアドレスを送ってきて応答を絶った。
数か月後、AAで皆を当惑させた公開アナウンス事故が起き、曖昧な「機械的故障」として処理された。偶然かもしれないが、先の件は検証不能なFUDをばらまいて営業しようとするサイバーセキュリティ企業の臭いが強かった。「無害な」サボタージュすらできない人たちだとは思わない。
したがって、学習は追跡可能性だけを目的にTPMのみを使うなら一般的なGPU上で行えるし、より多くの保証が欲しいならConfidential GPUで行うことになる。
基本ソフトウェアイメージとセキュリティハードウェアキーを用いて、特定モデルのハッシュが特定の学習手順から生じたことを署名して証明を作るコードを含め、ソースコード全体を公開する予定だ。
もちろん万能の解決策ではない。しかし、署名され監査されたクローズドソースと同様に、どのコード片がセキュリティ要件を満たすかを評価し、通過したら署名する当事者やソフトウェアがあり得る。
私たちも同じことを意図している。検査を私たちが行うのではなく、エコシステムに任せるつもりだ。
ここでは、重みを特定の学習や監査に実際に結びつけるためのツール提供により重点を置いている。現時点ではそれがなく、それがない限り、あるモデルが追跡可能で透明だという主張は反証可能性によって支えられず、科学的ではない。
自由に入手できるLLMでも商用LLMでも5分使ってみれば、どんな話題でも少し詳しく踏み込むと情報を勝手に幻覚するのが分かる。
「モデルの出自によってAIの安全性を保証する安全なLLMサプライチェーン」はまったく役に立たない。現在の形のモデルは教育に適していない。
事実はAIにツールとして、あるいはプロンプトの一部として与え、回答はその範囲内だけで生成するよう指示すべきだ。
私の経験ではそれは「決して」間違わないし、さらに一段重ねて明示的なファクトチェックを追加することもできる。LLMの出力を別のLLMに入れて、最初のモデルが作った事実主張を抽出・検証させ、そのファクトチェック結果と一緒に再度送り返して修正させる、といったやり方だ。
「モデルは改善される」と言うが、そうではない。改善されるのは、ユーザーが言語モデルを直接扱う代わりに、こうしたツールやチェーンを内蔵したマルチモーダルシステムのほうだ。
人間を置き換えることには関心がないし、なぜそうすべきなのかも分からない。絵、物語、音楽のように人間の創造性を補強する用途はうまく機能する。教育、法律、医療、何かに責任を負う領域はそうではない。
ある企業が、この技術を根本的に理解していない管理職や官僚層の恐怖を見事に煽ってしまった。
今週、たぶん2時間の会議で、これを見て怯えた管理職たちの「全面アクセス遮断」という反射的対応を止めなければならなくなりそうだ。
第一に、この人たちはHugging Faceから永久追放すべきだ。メールアドレスとIPをブロックし、カンファレンスからも追い出すべきだ。これは責任ある公開のやり方とまったく一致せず、処罰されるべきだ。
第二に、こうしたモデルは単体では神託マシンではなく、情報保管庫としてもかなり出来が悪いという点を、もっと強く説明すべきだ。「フェイクニュース」の例はすべて、人が検索やWikipediaのような情報源の代わりにLLMへ尋ねるという利用パターンに依存している。LLMをそう使うのは悪いやり方であり、単体のLLMを神託のように扱うべきではないと説得できるなら、この種の脆弱性もそれほど大きくはない。
これを「かわいい」とかそれに類するものだと思ったという事実が、本当にひどい。
第二に、こういう出来事が今まで起きなかったことの方がむしろ驚きだ。
この数年で「トランスフォーマー」が本格的な技術になり、友人や同僚のデモも含めて成果物を見ながら、この技術は大きな問題を起こす準備が整っているように感じていた。
それなのに、20年以上続いてきた「コミュニケーション・マルウェア」の台頭を見てきたにもかかわらず、最初の大きな問題が情報面でのグレイ・グー的シナリオ、それももっとひどい形になるかもしれないとはすぐに思い至らなかった。
ばか帽子をかぶって隅に座っているべき時だ。
結局のところ、宇宙には誰にでもまさに受けるに値するものを与える、信じがたいほど精巧な才能があるという結論を避けがたい。純粋に否定的あるいは皮肉な意味ではなく、強い意味でそう思う。
これは、「LLMが未来の波だ」と叫んでいる連中が、18か月前にあらゆる製品やサービスへ暗号資産を押し込もうとしていたのと同じベンチャー投資家とカウボーイ開発者なのだという証拠のように見える。
「信頼できないコード」の利用をからかうことはできるが、2023年の現実では、多くの組織と大半の個人開発者にとってこれがデフォルトだ。
プロダクト機能に入るAI流行機能も、それを実装する人の99%にとってはブラックボックスである可能性が高い。
「私たちは実際にフェイクニュースを広める悪性モデルを隠していた」
日常言語はここまで壊れてしまって、事実と異なる歴史データ、たとえば最初に月面着陸したのが誰かのようなものまでフェイクニュースと呼ぶようになったのか。
「フェイクニュース」は流行語だ。人が文章を書く理由は結局のところ広告か宣伝だ、という最近の別のHN投稿も思い出す。
どの時代の誤った情報であっても「誤情報」の方がより正確な表現ではあるだろう。だが、タイトルで著者たちが何を言おうとしているのか、本気で理解できなかったのか? 見出しのせいで、モデルが最近の出来事に関する誤情報しか作らず、歴史的な誤情報は作らないように汚染されたのだと信じたのか?
これが著者の読者に対する義務違反にあたるほどで、言語の堕落に怒るべきだと考えているようだが、私はそうは思わない。
さらに揚げ足取りを進めるなら、最初の月面着陸者についての主張は実際にニュースだった。ある時点では、最近の注目すべき出来事に関する新しい情報だったから、歴史的ニュースでもある。
歴史家が最初の月面着陸や1896年オリンピックに関するニュースを読むと言ったら、それは言語の堕落なのか? 最初に月面を歩いたのが誰か、あるいは1896年オリンピックの優勝者が誰かということは、かつてはニュースだった。したがって、モデルがガガーリンが最初に月を歩いたと言うなら、それは当時の実際のニュース見出しに対する偽の表現だという意味は成立する。
「物をアップロードできるWebサイトに物をアップロードしたが、誰にも止められなかった」
アップロードを許可するあらゆるWebサイトにとって、マルウェア対策は難題だ。
これが、君たちのスタートアップの安っぽいマーケティング小細工と混ざっていない、誠実なホワイトペーパーだったなら、モデルの出所という概念はAIコミュニティでもっと広まっていただろう。
自分のデータでモデルをファインチューニングすれば、そのデータに基づいた答えが返ってくるという話だ。なんとも画期的な発見だ。
これは世界を揺るがす話ではなく、信頼できないコードの実行という基本概念を理解していればわかることだ。
すべての言語モデルはこの種の欠陥を持ちうるし、LLMの学習は信頼できないコードのように扱うべきだ。多くのLLMは、単にpickle化されたデータ構造にすぎない。
LLM汚染がサプライチェーン問題だという指摘は妥当だ。防ぐ方法は明確ではないが、どんな機械学習モデルであれ、ダウンロードする際にはそれを信頼するか判断しなければならない。
ああ、要するに「コンピューターが安全ではないことを示すために私たちがマルウェアを作ったので、あらゆるものにTPMを使いましょう」という流れだ。違う。セキュリティ向上が小さすぎて疑わしく、プラットフォームをロックする口実にはならない
なぜ小さいかというと、彼らの「セキュリティシステム」を見てもいないのに、すでに彼らの「認証モデル」を回避して私が望むどんなことでも言わせる方法が分かるからだ
彼らはモデルのファインチューニングに似たインフラが必要なROMEを使うために大きな労力をかけたが、実際にはそんな必要もない。もう少し繊細にアプローチすれば、出力生成アルゴリズムを汚染して、特定の質問に対してモデルに何でも言わせることができる
トランスフォーマーモデルは応答として単語、つまりトークンを直接生成するわけではない。次の単語が各項目である確率を含む確率分布表を作る。たとえば語彙が65,000語なら、出力は単純化すると、次の単語が各項目である確率を表す65,000個の値の表だ
単純な貪欲法の出力アルゴリズムは、最も確率の高い単語を選んで入力に付け加え、十分に生成されるまで繰り返す。しかし、ビームサーチのように、可能な文の候補リストを維持し、ある時点で最もよさそうなものを選ぶ、より複雑なアルゴリズムもある。基準は事実性のようなものかもしれない
あるいは、応答の中に望むものを再びモデルへ注入することもでき、モデルはそれをできるだけうまく合わせて差し込もうとするはずだ