概要
海外で最も有名なAI VTuberの一人である「Evil Neuro」が配信中に意味不明な単語を発言し、開発者の「Vedal」が絶望しながらも数分がかりで必死に復旧させるという事件が先日起こり、ネットで一時話題になりました。
原因は明確にされていませんが、この事件はLLM業界、特にサービス提供者にとって非常に注目すべき事例だと考えるので、分析してみたいと思います。
Evil Neuroとは
今回の事件の主人公です。姉妹機にあたる「Neuro-sama」もおり、2022年のデビュー以来、YouTubeのチャンネル登録者数は約80万人に達するなど、世界で最も有名なAI VTuberと言えるでしょう。開発者の「Vedal」と共にゲーム実況配信などを行い、その名の通り、少し「Evil」な性格をしています。
AI VTuberとしての仕組み
Evil Neuroは、訓練済みのAIモデルを使用しています。インプットは画像(配信中のゲーム画面など)と音声(一緒に配信している開発者Vedalの声など)で、アウトプットは音声となります。
詳細なアーキテクチャは公開されていませんが、長期記憶を持ち、過去の出来事を覚えているのが特徴です。さらに、応答速度が非常に速いため、一見すると人間と見分けがつかないほどだと言われています。
何が起こったか
一言でまとめると、会話の文脈と全く関係のない単語が、発言の中に頻繁に出現するようになりました。
例えば以下の画像のように、「Locations」という単語が2回出てきています。

(配信元:https://www.twitch.tv/videos/2584103941)
当時のタイムラインを簡単に整理すると
- VedalがEvil Neuroとゲームをしている最中、Evil Neuroが突如として「Locations」という単語を会話の中で繰り返し始めた
- 異変に気づいたVedalが、Evil Neuroに「『Okay』とだけ答えて」と指示した
- しかし、Evil Neuroはその指示に従わず、意味不明な単語を混ぜた発言を続けた
- Vedalは裏側で修復作業を開始しつつ、Evil Neuroに話しかけ続けた
- Evil Neuroはさらに「Locations」以外の単語(例:「usernames」)も発するようになった
- Vedalはかなり憔悴した様子で修復を続け、数分後、Evil Neuroは正常な状態に戻った
当時の詳しい状況を確認したい方は、こちらの配信切り抜きをご覧ください。(見ているだけでも悲しい…)
なぜ?!
ご存知の方も多いと思いますが、TransformerベースのLLMは、確率に基づいて次に来る単語を予測し、それらを連結して文章を生成します。何らかの内部的な問題によって、ある特定の単語の出現確率が異常に高くなると、文脈に関係なくその単語が頻出する、という現象が起こり得ます。
当時の解決方法と可能性を推測
記事を書く時点で、海外のフォーラムなどを調査しても、明確な原因と解決策は明らかになっていないので、ここからはあくまで推測を含む分析となります。
当時の解決方法を推測
解決方法1:バックアップからの復元
比較的に想像しやすいパターンだと思います。1バージョンまたは数バージョン前のバックアップを使って、モデルを再起動することとなります。ただしこれによって一部直近の記憶が損失する可能性もあります。
解決方法2:モデルの出力を介入
可能性が低いと思いますが、モデルの中間層が見えるかつコントロールできる状態であれば、特定の中間層の出力を編集し、変な単語の出力を抑えることができます。理論上は可能ですが、リアルタイムで問題を特定し、介入するのは極めて難しいでしょう。
可能性と長期の解決方法を推測
可能性1:長文の処理限界
長期記憶を持たせるため、過去の記憶をどこかで要約・整理し、プロンプトとして入力し処理していると仮定します。**この場合、時間の経過とともに記憶量は必然的に膨大になります。**それによって、
- プロンプトのトークン数がモデルの処理能力限界を超えた
- プロンプトのどこかに誤ってある単語の出現頻度が著しく増加した
の原因で、安定なアウトプットができなくなる可能性が推測されます。
ただし、このケースだとまだましだと思います。過去の記憶を整理したり、プロンプトの長さを調整したりすることで、正常な状態に戻る可能性が高いです。
可能性2:継続学習のモデル崩し
長期記憶を持たせるため、過去の記憶を整理して、継続的にモデルを学習させると仮定します。そうすると学習の途中でモデルが崩れて、安定した出力ができなくなる可能性があります。
この場合はモデルの中身を詳しく分析して、どのタイミングでモデルが崩れたかの調査が必要し、仮に調査ができて、再度学習させても、完全に違うアウトプット(人格・言葉遣い)になってしまう可能性もあるので、場合によって修復不可とも言えます。
参考までに、直接関連性があるかどうかはわからないけど、LLMの「破滅的忘却」は研究テーマとしてよく取り上げられています。
LLMサービス実装への啓示
今回の事件でわかったのは、このような長期記憶を持つLLMを実装するには、いつものLLMの応用より、考慮しないといけないことが多くなります。完全に避ける方法がないけど、やるべきこととしては、
バックアップ
言うまでもありませんが、こまめにバックアップを取ることが極めて重要です。
監視
今回は開発者と一緒に配信するのですぐ発覚できたけど、仮にそうでなければ、壊れたモデルが喋り続けるのは怖いことになるので、常に監視することも重要でしょう…
可視化
かつてAIはブラックボックスと言われるけど、近年LLMみたいな巨大モデルでも、様々な可視化ツールが提供されています。サービスレベルを担保したい場合には、モデルのプロセスを可視化して、常に調査できる状態にしておくべきです。
最後に宣伝をさせてください。先月からnoteも書き始めました。
全く違うトピックなので是非フォローをお願いします。
https://note.com/leolui2004
技術検証系の投稿は引き続きQiitaで書きます!
