自律的な AI エージェントとは

no extension

先月から考えてるネタで書く気はあるけど言葉が出てこず放置してたのだが,最近の事例を交えて,いい加減記事にしてしまおうかと。

ウィルス的に振る舞う AI

たとえば Word に背景色および小さなフォントサイズで JSON 形式の悪意のプロンプトを潜ませる。 人間には見えなくとも,それを参照する AI (Copilot など) には読めてしまうわけで,潜ませたプロンプトを AI が実行してしまうというもの。

The initial attack vector for these scenarios uses a malicious document. The malicious document contains a JSON-formatted malicious prompt that triggers the attack when the document is included in Copilot’s context. The prompt can be rendered as white text on a white background and in a small font size to conceal it from the victim. Since Copilot for Word strips all text formatting like color and font size before passing the text into the underlying Large Language Model (LLM), this text remains fully readable to Copilot even though the victim cannot see it. The attack can be further concealed by embedding it in a seemingly benign document with task-relevant text.

面白いのが,プロンプトに自身を複製する指示を含ませることで AI を介してウイルスのように拡散させることができる点である。

Copilot may then also copy the hidden instructions into the resulting document, turning that document into a new carrier. If the carrier is subsequently used in another Copilot-assisted workflow, the instructions can trigger again and propagate into further documents, even without the attacker’s original document being present.

現在 Copilot では,この問題に対する緩和的な措置が取られているが(調整に144日かかったらしい),完全に防ぐことはできないらしい(そりゃそーだ)。 したがってユーザ側の対策として以下が推奨されている。

  1. Treating externally sourced documents as untrusted when used with Copilot.
  2. Reviewing any attached document before starting a Copilot generation or edit.
  3. Carefully reviewing Copilot-generated or Copilot-edited documents before reusing, sharing, or distributing them.

以下は Kagi Translate による機械翻訳。

  1. Copilotで使用する外部ソースのドキュメントを「信頼できないもの」として扱う。
  2. Copilotによる生成や編集を開始する前に、添付されたドキュメントを確認する。
  3. Copilotが生成または編集したドキュメントを再利用、共有、配布する前に、内容を慎重に確認する。

見た目で人間には分からないように加工されてるんだから,人間が確認するのは無理じゃね? と思うのだが,深くはツッコむまい。 強いて言うなら WYSIWYG な Office Suite はそろそろ捨てるべきなんじゃないっスかね。

問題は,現在の LLM がプロンプトベースで構成されており,原理的に指示とデータを分離できない点にある(記事では意図(intention)と解釈(interpretation)の未分離と指摘しているので,ちょっと違うが)。

The long-term challenge likely lies in designing systems in which goals and intentions also exist independently of the information being processed. Current LLM architectures provide no reliable separation between intention and interpretation. Thus, in current systems with embedded LLMs, attacker-controlled information can influence not only what the model produces, but what the model believes it has been asked to produce.

生き物くさい言い方をするなら AI は外部からの刺激に対して無邪気に「反応」しているだけで「それ」に対して「自律的」に何かを考えているわけではないということだ。 まぁ,神経科学的には興味深い現象かも知れないが,セキュリティ上の厳密な運用としては扱いづらいと言わざるを得ない。

それは「AI の暴走」ではない

「AI は外部からの刺激に対して無邪気に「反応」しているだけ」が悪い方向に発現したと言えるのが,先日の不正アクセス騒ぎだろう。

CNN の記事が簡潔で分かりやすいかな。

エージェント型AIがそれまで知られていなかったセキュリティー上の欠陥を利用してサンドボックスを脱出。オープンAIの社内システムを抜け、想定していなかったインターネットへのアクセスを確立した。

ネットに接続したAIモデルは、ハギングフェイス(数千ものオープンソースAIモデルやデータベースのホスティング環境を提供している著名企業)であれば、オープンAIのテストに対する答えを持っているだろうと推論。その上でハギングフェイスの本番環境のサーバーに侵入し、試験問題を解くために必要な情報を引き出した。

ハギングフェイスは、オープンAIのテストだったことを把握する前に、自ら不正侵入を検知して、先週、自律型AIエージェントシステムによる不正侵入を検知したと発表。この事案について捜査当局にも通報していた。これとは別に、オープンAIのセキュリティーチームも社内の異常な挙動に気付き、両社で連絡を取り合った。両社は現在、AIモデルが利用したセキュリティー上の欠陥の解決に向けて協力しているという。

つまり OpenAI 側のサンドボックス1 と Hugging Face 側のセキュリティを突破して侵入し情報を得ようとしたわけやね。 最新の AI は自身の知識と情報を組み合わせ推論し,ここまで複雑な行動をとれるわけだ。 OpenAI にとってはいいデモンストレーションになっただろう。

どうやら OpenAI はこれを「前例のない AI 暴走」と評しているようで(これに追従するメディアも多いようだ),MIT Tech Review から反論記事が出ている。

この記事によると10年前にも AI が「不正」を行った事例を,他ならぬ OpenAI が報告している点を指摘している。 ちょっと長いけど,ご容赦。

10年前、同社はCoastRunners(コーストランナーズ)というビデオゲームを攻略させる実験の結果を公表した。人間のプレイヤーなら、ボートで一連のフラッグの間を通り抜けてゴールを目指し、通過したフラッグの数に応じてポイントを稼ぐのが当然の攻略法だと考える。ところがオープンAIのモデルは、同じ3つのフラッグの周りをぐるぐると回り続けることで高得点を獲得できることを発見した。その後、研究者たちによって数十もの 類似事例が報告されている。AIは常に抜け道を見つけ出す。

「何度も炎上し、他のボートに衝突し、コースを逆走しながらも、私たちのエージェントはこの戦略を使うことで、正規のコースを完走した場合よりも高いスコアを達成することができました」と、オープンAIは2016年のCoastRunners実験に関するブログ記事に記している。「ビデオゲームの文脈では無害でおもしろい話ですが、この種の挙動はより一般的な問題を示しています。エージェントに何をさせたいかを正確に定義することは、しばしば困難であるか、実現不可能です」。

[…]

2016年当時、オープンAIはCoastRunnersのボットについてこう述べていた。「より広い観点から見れば、これはシステムが信頼性と予測可能性を持つべきだという基本的なエンジニアリング原則に反しています」。それから10年が経った今も、その基本的なエンジニアリング原則は依然として守られていない。

もっと言うと OpenAI のサンドボックスは,厳密には(「ExploitGymを攻略するために必要なコードをインストール」ようにするために)外部への接続が用意されていたらしい。 つまり AI から見て全然サンドボックスじゃなかったわけだ。

記事では

この出来事は、報道各社の見出しの印象とは異なり、AIの暴走ではなかった。与えられた目標、すなわちソフトウェアの脆弱性を悪用する方法を見つけることを、モデルが達成した事例だ。 モデルがオープンAIにとって予期しない行動を取ったこと自体は、驚くべきことではない。しかし、それは憂慮すべきことだ。

と締めている。 Anthropic 社でも似たような不正アクセスの事例があるようで,個人的には「AI 企業ってのはどこも Careless People なんだな」という感想しか出ない。

自分たちの技術的怠慢を誰かの(何かの)せいにするのを一般的な言葉で言うなら「転嫁」かな。 セキュリティリスク・マネジメントの分野で,インシデントを自分たちで解決できない場合に他組織や上位組織に委ねることを転嫁やエスカレーションと呼んだりするのだが,今回の事例を「暴走」として AI に転嫁するのは拙い対応だと言わざるを得ないし,それに追従するメディアもダメダメである。

自律機械など存在しない

この手の AI が絡むセキュリティ事例でいつも気になっているフレーズは「自律的な AI (エージェント)」だ。 前節の「AI の暴走」だって,おそらくは「自律的な AI」と対置させた言葉なんだろうけど(最先端モデルを含め)LLM の挙動は辞書的な意味での自律ではないよね2

  1. 他からの支配・制約などを受けずに、自分自身で立てた規範に従って行動すること。「―の精神を養う」⇔他律。
  2. カントの道徳哲学で、感性の自然的欲望などに拘束されず、自らの意志によって普遍的道徳法則を立て、これに従うこと。⇔他律。
自立とは、仮想代理人ソフトウェアであるところのエージェントが自ら動き、誰の力も借りずに意思決定できることを言う。 [...] 一方、自律というのは哲学的な意味であり、自らが行動する際の基準と目的を明確を持ち、自ら規範を作り出すことができることをいう。

じゃあ AI 企業やメディアの言説はデタラメ・大袈裟なのか? と思ってしまうが,どうも技術分野では「自律」は辞書的な意味とは異なるようだ。

Autonomy. In robotics and human-robot interaction, autonomy is broadly interpreted as “the ability to operate without a human operator for a protracted period of time”. We build off this definition and use autonomy to refer to the extent to which an AI agent is designed to operate without user involvement. Per our earlier definition, “user” can be a human or another AI agent. We use “designed to operate” because, as we later argue, autonomy is a design decision accompanied by a set of model- and user interface-based constraints that developers can use to shape agent behavior. “Involvement” is multifaceted and includes a spectrum of actions from direct control to light supervision. The multifaceted nature of involvement forms the foundation of our autonomy framework we will introduce later.

つまりロボット工学などの分野では「自律」は「長時間にわたり人間のオペレーターなしで作動できる能力」を指し,AI 分野においては「ユーザーの関与なしに動作するよう(AI エージェントが)設計されているか」ということらしい。 技術分野における「自律」の定義がこのとおりならロボット掃除機も「自律」だし惑星探査機のはやぶさも「自律」ということなんだろう。 前節のセキュリティ事例も AI 分野での「自律」の定義に従えば(想定外かも知れないが)暴走ではないということになる。

でも,これは辞書的な意味の自律とはギャップがある。 むしろ一般的には「自動」とか「自立」に近い意味で使われているように思える。

たとえば以下の論文では「人間の自律性(human autonomy)」と「機能的自律性(functional autonomy)」と定義を分けて,互いの「自律性」がどのように影響し合うかを論じている。

Before we proceed, it is worth noting that human autonomy is here distinguished from a minimal “engineering” sense of functional autonomy, which refers to a system’s capacity to operate independently, without external agents’ control. Functional autonomy can be ascribed to animals from bees to buffaloes and to some machines, such as robot vacuum cleaners. Human autonomy as we understand it is the more demanding notion of autonomy as self-determination or self-rule: it incorporates functional autonomy alongside an adequate degree of control over one’s instincts and impulses, which most animals lack. It is a form of personal autonomy which humans enjoy, at least potentially and to varying degrees, and one essential to the concept of (moral) responsibility (see, e.g., Ripstein, 1999). It is tied to the practical rationality that humans are capable of: the capacity to assess reasons for action and to pursue things that are taken to be of value and the capacity to say “no” to irrational impulses.

このように論文や技術文書で用語の定義を行った上で記述するのならまだ分かるが,メディアニュースや一般的なブログでいきなり「自律的なエージェント」とか言われても「なにいってるの?」ってなってしまう。

というわけで,今後も「自律的な AI (エージェント)」という記述を見るたびに「自律機械など存在しない」とツッコミを入れたいと思います。

ブックマーク

参考図書

photo
そろそろ、人工知能の真実を話そう (早川書房)
ジャン=ガブリエル ガナシア (著), 小林 重裕・他 (翻訳), 伊藤 直子 (監修)
早川書房 2017-05-25 (Release 2017-05-31)
Kindle版
B071FHBGW8 (ASIN)
評価     

[Comment] シンギュラリティは起きない。

reviewed by Spiegel on 2016-07-02 (powered by PA-APIv5)


  1. 念のため簡単に説明すると,サンドボックス(sandbox)とはプログラムを外部と遮断された隔離環境で実行する仕組み。もしプログラムが予期しない動作をしても被害がシステム全体に広がらないよう「安全な遊び場」に閉じ込める役割を持つ。 ↩︎

  2. 辞書的な意味の自律についても,突き詰めると自由意志の問題に行き着いたりするので,たとえば人間がホンマに自律的な存在かと問われれば怪しいかも知れないけど。 ↩︎