なぜCodexはゴブリンの話をしてしまうのか
先日、OpenAIのCodexに関する興味深いニュースが流れてきた。OpenAIがCodexのシステムプロンプトに、ゴブリンをはじめとするファンタジー的な話題について語ることを明示的に禁止する指示を加えていたというのだ。一見すると笑い話のように聞こえるが、これはAIの出力制御における深刻かつ現実的な課題を浮き彫りにしている。
大規模言語モデルは、インターネット上の膨大なテキストで学習している。当然そこにはファンタジー小説のウィキや、ダンジョンズ&ドラゴンズのフォーラム投稿なども含まれている。コード補完ツールとして使われているはずのCodexが、突然ゴブリンの生態について流暢に語り始めるのは、学習データの多様性を考えれば、ある意味で必然とも言える。
システムプロンプトによる行動制御の限界
個人的に興味深いと感じたのは、OpenAIがこの問題への対処としてシステムプロンプトという手段を選んだ点だ。モデルの再トレーニングやファインチューニングではなく、テキストによる指示で「それを言うな」と命令する。これはある意味で非常に人間的なアプローチだと思う。子どもに「食事中にゲームの話をするな」と言い聞かせるようなものだ。
しかし、この方法には明確な限界がある。システムプロンプトはあくまでもコンテキストウィンドウの一部であり、モデルはそれを絶対的なルールとして処理しているわけではない。プロンプトインジェクション攻撃や、巧妙な質問の仕方によっては、こうした制約を回避できてしまうケースが報告されている。テキストでテキストを制御するという構造的な矛盾が、ここにも現れている。
エンジニアとして率直に言うと、こうしたパッチ的な対処を積み重ねていくアプローチには少し不安を感じる。根本的なアライメントの問題を解決するのではなく、表面的な症状を一つずつ潰していくやり方は、技術的負債を積み上げていくことにも似ている。
コードアシスタントに求められる「集中力」
とはいえ、OpenAIがこの問題を真剣に扱っているという事実は評価したい。Codexはプロの開発者が日常的に使うツールだ。コードレビュー中に突然ゴブリンの話が始まったら、それはただの笑い話では済まない。生産性ツールとしての信頼性は、細部の積み重ねによって成り立つ。
今後、AIツールのキャラクター制御やドメイン特化型の挙動管理は、モデルアーキテクチャレベルでより洗練されていく必要があるだろう。RLHFやConstitutional AIのような手法がさらに進化することで、「ゴブリン禁止」のような一行の禁止令に頼らなくても、ツールが自然に適切な文脈を理解できるようになることを期待している。それがAI開発の正しい方向だと、自分は信じている。
