X

AIへの指示の勘違いを直して議論の仕組みを実装した日

AI活用・自律議論

伝えたかった意味とAIの受け取り方のズレ

この日は朝6時ごろからパソコンを開いて、
前日に引き続いて、
複数のAIに自動で議論させる仕組みづくりを進めていました。

前のやり取りの中で、
私はAIに対して「5ターンで話し合ってほしい」と伝えていました。
私としては、
これから作る仕組みの設計を固めるために、
「今この場での話し合いを5回くらい回してみてほしい」
という意味で言ったつもりでした。

ところが、
AIから返ってきたまとめを読んでみると、
「作るシステムの仕様として、話し合いの回数を最大5回に固定する」
という意味で受け取られてしまっていました。

自分の言葉が足りなかったせいでもあるのですが、
こうしたちょっとした前提のズレは、
放っておくと後で話が噛み合わなくなってしまいます。
そこでまずは、
「プロジェクトに適用する回数の話ではなくて、
先ほどの話し合い自体を5ターン回してほしいという意味でした」
と伝えて、
各モジュールでもう一度議論をやり直してもらうことにしました。

やり直した議論から出てきた無限ループの懸念

終わらない話し合いの危険性

意図を汲み取ってもらった上で、
改めて2ターン目の議論を回してもらうと、
批判役を担当するモジュールから、
かなり重要な指摘が上がってきました。

当初の私の考えでは、
議論が十分に深まったかどうかは、
判定役のAIに毎回チェックさせて、
「もう十分だろう」と判断したら自動で終わらせるつもりでした。

しかし批判役のモジュールによると、
AIの判断だけに頼って終了を決めようとすると、
停止性問題という厄介な状態に陥る危険があるとのことでした。
要するに、
批判役が細かい反対意見を出し続ける限り、
判定役も永遠に「まだ議論が足りない」と答え続けてしまい、
人間が見ていないところで、
終わりのない無限ループに入ってしまうという話です。

パソコンの裏側でAI同士が延々と言い合いを続けて、
そのまま処理が止まらなくなる様子を想像すると、
さすがにそれはまずいと感じました。

勘違いから一周して戻ってきた回数制限

ここで少しおかしかったのが、
最初は私が「5ターンというのはシステムの仕様ではない」と訂正したのに、
AIたちが真面目に議論を深めた結果、
「やはりシステムの仕様としても、物理的な回数の上限は絶対に必要だ」
という結論に戻ってきたことです。

遠回りしたようにも見えますが、
最初からなんとなく回数を決めるのと、
無限ループの危険性をちゃんと理解した上で上限を設けるのとでは、
納得感がまったく違いました。

また、
普段は安全のために外部との通信を遮断する設定にしているため、
判定用の仕組みから外部へ通信する際は、
勝手なプログラムから動かすのではなく、
正規の窓口を通す形にまとめないといけないという課題も見つかりました。

二重の安全ブレーキを取り入れて実装へ

最終的に、
議論が暴走しないための対策として、
以下の3つの仕組みを設計に組み込むことにしました。

・物理的な安全上限:どれだけ議論が続いていても、
あらかじめ決めた上限回数に達したら強制的に終了させる枠を作ること。
・変化ゼロの検知:新しい情報や反論が出なくなった時点で、
回数が残っていてもそこで話し合いを切り上げるブレーキを入れること。
・通信窓口の一本化:既存の安全ルールを壊さないよう、
外部とやり取りする機能は決められた正規の入り口から呼び出すように統一すること。

AIの判断という曖昧なものだけに頼るのではなく、
プログラム側で二重のブレーキを用意しておくという考え方は、
素人の私から見てもすごく理にかなっていると感じました。

設計の内容に大きな問題はなさそうだったので、
そのままサブエージェントなども立ち上げてもらい、
実際のプログラムへの実装と動作確認をお願いしました。
まずはこれまでの仕組みが壊れていないかを確かめるテストから始まり、
無事に実装の作業へと進んでいきました。

最初は単なる言葉の行き違いを直すだけのつもりでしたが、
やり直してもらったおかげで、
無限ループという一番危ない見落としに気づくことができてよかったです。

関連記事