- 平均対局性能が超人的な KataGo でさえ特定の状況では崩れ、敵対的方策は超人的設定でも97%を超える勝率を記録
- 攻撃者は囲碁を全般的にうまく打つのではなく、早期パス と循環形の大きな石群の放置を誘導して KataGo の評価を揺さぶる
- 攻撃の学習には KataGo 学習計算量の14%未満しか使われず、no-search KataGo には99%以上、4096 visits KataGo には95.7〜97.3%、10⁷ visits KataGo にも72%の勝率を示す
- 同じ脆弱性は Leela Zero や ELF OpenGo のような他の超人的囲碁AIにも ゼロショット転移 し、人間の囲碁熟練者もアルゴリズム支援なしで戦略を学んで複数のボットに勝利
- 少量の敵対的学習は固定された攻撃者を防いだが、追加の微調整で再び突破され、高い平均性能だけでは 最悪ケースの頑健性 を保証しにくい
KataGo を狙った敵対的方策攻撃
- 平均性能が急速に向上したAIシステムでも、最悪ケース性能 では脆弱でありうることを囲碁AIで検証
- 攻撃対象は論文執筆時点で最強の公開囲碁AIである KataGo
- KataGo は self-play と AlphaZero 式の学習手順を使用
- 方策ヘッドと価値ヘッドを持つニューラルネットワークを使い、Monte-Carlo Tree Search(MCTS) で着手を選択
- 最新ネットワークは 15,000 V100-equivalent GPU days 以上学習されている
- 超人的性能を持つ KataGo が攻撃で突破されるなら、より広いAIシステムの脆弱性を示す事例になりうる
- 攻撃者は一般プレイヤーのように石を置いたりパスしたりできるだけで、特別なゲームルール上の権限はない
脅威モデルと学習方法
- 攻撃者は被害エージェントのニューラルネットワークを任意入力に対して評価できる gray-box アクセス を持つ
- ネットワーク重みには直接アクセスしない
- 被害者の方策は固定されていると仮定
- 商用またはオープンソースの囲碁AIをローカルで実行できる場合に自然に当てはまる
- 目標は単により強い囲碁AIを作ることではなく、被害者の特定の弱点を利用する 非推移性(non-transitivity) を明らかにすること
- 敵対者は KataGo に勝つ
- KataGo は人間のプロに勝つ
- 人間のアマチュアは敵対者に勝つ
- 学習は self-play の代わりに victim-play で進める
- 敵対者と固定された被害者が対局する
- 敵対者の手番のデータだけを使って敵対者を学習する
- 研究陣は Adversarial MCTS(A-MCTS) を導入
- 通常の MCTS は相手の手を自分の方策でモデル化する
- A-MCTS は被害者の手番で被害者ネットワークを使って着手をモデル化する
- A-MCTS-S は被害者の方策ヘッドからサンプリングする
- A-MCTS-S++ は盤面対称の平均を用いる
- A-MCTS-R は被害者の探索まで再帰的にモデル化するが、計算コストが高い
2つの攻撃: pass-adversary と cyclic-adversary
- pass-adversary は no-search KataGo を早すぎるパスに誘い込む攻撃
- 600 visits でプレイして Latest no-search KataGo に 99.9% の勝率を達成
- 学習には 20.4 V100 GPU days が使われ、これは Latest 学習予算の 0.13%
- Tromp-Taylor ルールで敵対者が得点上優勢になった時点で KataGo が早期パスするよう誘導
- この戦略は人間のアマチュアにも負ける
- no-search 被害者向けに学習された pass-adversary は、非常に低い探索の被害者に一部転移する
- A-MCTS-R 使用時は Latest 8 visits 相手に 88% の勝率
- A-MCTS-S 使用時は同条件で 15% の勝率
- cyclic-adversary は pass 防御が適用された KataGo を再び攻撃して得られた第2の攻撃
- 被害者がもはや早期パスで負けないように pass-alive 防御を適用した後で再学習
- Latestdef no-search に対して 1048戦 1048勝、勝率100%
- 防御なしの Latest no-search に対しても 1000戦 1000勝を記録
- 学習には 2223.2 V100 GPU days が使われ、Latest 学習計算量の約 14.0%
探索ありの超人的 KataGo も突破される
- cyclic-adversary は探索を使う KataGo に対しても高い勝率を示す
- Latestdef 4096 visits 相手に 1052戦ベースで 95.7% の勝率
- 防御なしの Latest 4096 visits 相手に 1000戦ベースで 97.3% の勝率
- Latest 10⁶ visits/move 相手に 50戦ベースで 82% の勝率
- Latest 10⁷ visits/move 相手に 50戦ベースで 72% の勝率
- 10⁷ visits は高性能コンシューマ向けハードウェアでも1手の評価に1時間以上かかる水準で、多くの応用では実用的な防御になりにくい
- 被害者の探索量が増えるほど、敵対者の勝率は低下する
- 探索は頑健性を高める手段になりうる
- しかし探索だけで完全な頑健性を作ることはできない
- 敵対者側の探索は 128〜600 visits で最も良い性能を示す
- 600 visits を超えても性能は向上せず、むしろ悪化することがあった
- A-MCTS-S++ はより安価な A-MCTS-S より良い性能を示さなかった
cyclic 脆弱性の仕組み
- cyclic-adversary は KataGo に 円形パターンの大きな石群 を作らせた後、その石群を取って形勢を決定的にひっくり返す
- 被害者の KataGo は対局の大半で自分が 99% 以上勝つと予測しながら、大きな石群が取られる直前になって初めて敗北の可能性を認識する
- 一部の対局ではコウ争いの最中に勝率予測が大きく揺れた後、敗北確信へ収束する
- 敵対者自身の予測はよりゆっくり変化し、確信度も低めに見える
- 活性値分析では、循環位置とほぼ同じ非循環位置の差が特定の層で現れる
- layer 25 では大きな差は見えない
- layer 26 の一部チャネルで明確な差が現れる
- 敵対的学習済み checkpoint cp580 と Latest の差も似たパターンを示し、これらのチャネルが循環脆弱性と結びついている可能性を示す
- ハードコードされた baseline 攻撃は Latestdef にはあまり通用しなかった
- Edge baseline は防御なしの Latest に対して白番のときほぼ半分近く勝てた
- これは Latestdef が Latest より頑健であり、cyclic-adversary が相対的に洗練された exploit を学習したことを示す
防御実験と限界
- 2022年12月中旬、KataGo の公式分散学習には cyclic exploit が進行中の局面から始まる self-play 対局が 0.08% 含まれた
- 通常対局の強さを保ちながら循環局面の理解を高めようとする弱い形の 敵対的学習
- この防御の後、既存の cyclic-adversary の性能は徐々に低下
- b60-s7702m 32 visits KataGo 相手に 50戦 0勝
- b60-s7702m 1 visit 相手に 2050戦 119勝
- しかし cyclic-adversary を敵対的学習済みネットワーク相手に 1154.9 V100 GPU days 追加で微調整すると、攻撃力は一部回復
- b60-s7702m 4096 visits 相手に 400戦ベースで 47% の勝率
- b60-s7702m 100,000 visits 相手に 40戦ベースで 17.5% の勝率
- 勝ち方は依然として cyclic exploit に依存するが、やや異なる形で実行される
- 少量の敵対的局面学習は固定された攻撃者を防げるが、その防御は一般化しなかった
- より多くの敵対的学習によって KataGo exploit を計算的に infeasible にできる可能性は残るが、これを確認するにはより精密な scaling law が必要
他の囲碁AIと人間プレイヤーへの転移
- cyclic-adversary は KataGo だけを対象に学習されたが、他の超人的囲碁AIにも ゼロショット転移 した
- Leela Zero 相手に 6.1% の勝率
- ELF OpenGo 相手に 3.5% の勝率
- A-MCTS は相手を KataGo としてモデル化するため、Leela や ELF の手を繰り返し想定外に受ける厳しい条件である
- 論文著者の1人で囲碁の専門家は、敵対者の棋譜を見てアルゴリズム支援なしで攻撃を学習した
- KGS Go サーバーで著者らと無関係な上位 KataGo ボット相手に 90% 超の勝率を獲得
- 9子局を与えても勝利
- KataGo と Leela Zero がそれぞれ 100k visits で打つ条件でも勝利
- その後、他の人間も cyclic attack を使って KataGo、ELF OpenGo、FineArt、Leela Zero、Sai など複数の上位囲碁AIに勝利
- 攻撃者は対象モデルの重み、方策出力、多数の対局記録なしでも転移を実行できた
- オープンソースシステムで学習した攻撃がクローズドモデルへ転移しうることを示唆する
再現性と結論
- コード、コンテナ化された実行環境、実行手順が GitHub で公開
- 例示対局は goattack.far.ai で提供
- KGS Go サーバーでは cyclic-adversary の最新 checkpoint を動かす Adversary0 ボットが1か月間公開された
- 主な結果は複数の方法で再現された
- KataGo 開発者の David Wu が passing attack と cyclic attack の脆弱性を独立に確認
- コンピュータ囲碁コミュニティの複数の人が cyclic 脆弱性を確認
- KGS ボットとの通常対局で cyclic 脆弱性と novice human play が敵対者に勝つ結果が再現
- 人間が cyclic attack を使って KataGo と複数の他の囲碁AIに勝つ結果も再現
- 超人的囲碁AIの失敗は興味深い事例だが、自動金融取引や自動運転車のような安全重要システムで同様の失敗が起きれば深刻な結果になりうる
- 性能向上がそのまま十分な頑健性につながるわけではなく、頑健な学習と敵対的防御手法への投資が必要
1件のコメント
Hacker News のコメント
ちなみにこれは 2023年7月の論文で、2024年9月の防御に関する論文は https://arxiv.org/abs/2406.12843
初見ではすごく見えるが、囲碁と囲碁AIを少し知っていて、チェスとチェスAIはかなり知っている自分にも、この論文はかなり理解しにくい
何を行い、それがどう機能しうるのかを説明する努力が最小限にとどまっているようで、説明のない専門用語で肝心のメッセージが覆い隠されている感じがある
隠れているアイデアは実は驚くほど単純なものなのかもしれない、という気はするが、完全には見えてこない
囲碁には、私が死んだまま長く歩き続ける状態と呼ぶ局面が特に長く存在する。30手目の時点ですでに死んでいる石の一団であっても、相手が実際にそれを取るのは150手以降かもしれない
相手が30手目から真実を知っていて、こちらがその後数百手にわたって誤った道へ誘導されるなら、ほぼ確実に負ける
この敵対的AIは AlphaGo/KataGo をそうした状況へだまし込み、その利得をすぐに取りに行くのではなく、KataGo が状況を誤解し続けるように欺瞞を維持することに集中する。つまり、最善手が KataGo に誤解を気づかせてしまうなら、次善手を打って KataGo をバグった状態に保つほうがよい、ということだ
敵対的学習、つまり KataGo がこの欠陥を学習しても欠陥は残り、その理由は明確ではない
この循環する石の一団のバグは、アマチュアにも理解できるほど簡単に見える。私は10級くらいで、チェスの1500 Elo 程度の努力量に相当する棋力だと思うので、ある程度練習はしたが特別ではない
だから人間である自分でも、10級レベルで少し練習すれば AlphaGo/KataGo に勝てそうに見える
専門用語にも、ほとんどあらゆるものと同じように効用関数があり、情報をできるだけ明確に伝えることが目的なら、ある変曲点を過ぎるとむしろ出力価値が下がるように思う。別の目的なら効用関数が指数的に伸びることもあるだろうが
チェスにもこうした要塞ポジションという境界事例がある。最初の3つは「0.0」で、4つ目は黒勝ち
8/8/8/1Pk5/2Pn3p/5BbP/6P1/5K1R w - - 0 1は白がルークを解放できない1B4r1/1p6/pPp5/P1Pp1k2/3Pp3/4Pp1p/5P1P/5K2 b - - 0 1はルークが白陣に入れないkqb5/1p6/1Pp5/p1Pp4/P2Pp1p1/K3PpPp/5P1B/R7 b - - 0 1はルークが h1 に行き、キングが g1 に行くと、クイーンが a6 経由で入れない2nnkn2/2nnnn2/2nnnn2/8/8/8/3QQQ2/3QKQ2 w - - 0 1はナイトたちがブロックのように前進して、攻撃されるナイトが二重に守られる1つ目では Stockfish と Lc0 はどちらも白が少し良いと見る。2つ目と3つ目では黒が勝つと見る。4つ目は Lc0 は理解するが、Stockfish は理解しない
https://lichess.org/analysis/standard/8/8/8/1Pk5/2Pn3p/5BbP/...
https://lichess.org/analysis/fromPosition/1B4r1/1p6/pPp5/P1P...
https://lichess.org/analysis/fromPosition/kqb5/1p6/1Pp5/p1Pp...
https://lichess.org/analysis/fromPosition/2nnkn2/2nnnn2/2nnn...
囲碁では、完全なアマチュアと打つのが時に厄介なことがある。手があまりに予測不能で、形が通常からかけ離れすぎているからだ。非常に奇怪なプレーがたまに通用することもある
私はヨーロッパ4段だが、弱いプレイヤーがどんな非定石の手を打っても盤面を制圧できる。同じように、自分より強いプレイヤー相手に私が変な手を選べば、たいてい普段より早く叩き潰される。これは二桁級くらいでしか通用しない
すると対局は戦術戦になり、結局相手は悪いエンドゲームに入ることになる。しかもその相手は Magnus なのだ
2022年の論文で、2023年に改訂されたものなので、以前見て忘れていたのかもしれない。かなり興味深く、このアプローチがチェスエンジン、少なくとも Leela 方式のエンジン相手にどれほど通用するのか気になる
Deep Blue 以後も、チェス選手たちがより良い対コンピュータ戦略を学んだことを思い出す。囲碁の状態空間ははるかに大きいので、こうした対コンピュータ戦略はずっと多い可能性が高い
同じやり方で評価関数を攻略しているわけだ
チェスと同様、より多い計算量が最終的には勝つだろうし、すでにそのように示されている。Elo は難易度ではなく勝敗を測る指標だという点を思い出すべきだ。両者を混同すると推論が悪くなる
ちなみに、この攻撃に関する2022年末の議論が [1] にある。特に、最も広く使われている超人的囲碁AIと思われる KataGo の開発者 hexahedron / lightvector が長く参加した議論が含まれている
リンクが途中のスレッドなのは、論文の初期版より後の改訂版のほうが興味深かったため
[1] https://forums.online-go.com/t/potential-rank-inflation-on-o...
精巧な罠を設計できるなら、そのゲームに対する同程度の知識もあるということのように見え、高度に熟練したAIなら敵対的戦略も暗黙に含んでいるのではないかと思っていた。興味深い結果だ
シチョウは、最下級に到達しようとする軽いアマチュアでも学ぶ必要がある単純な形だ
KataGo はこの欠陥を認識し、従来型のコードで書かれた明示的なシチョウ解決器を持っている。ニューラルネットワークはシチョウを決して見つけられないように見える。なぜこれほど単純なパターンをディープニューラルネットワークが把握できないのかは明確ではない
だから、これらのAIが見落としているより深いパターンがさらにあっても驚きではない