Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

AIに「要件整理→計画→作業→評価」して欲しいのに「一気に最終答案まで書かれてしまう」問題の本質と対策

(この文章は90% AIで書かれて・描かれています)

Transformerの仕組みから考えると、ステージゲートが効く理由は意外とシンプルです。

AIはプログラムのように「if文」や「状態変数」を持っているわけではありません。Transformerは入力された文章全体を見て、Attentionによって「次に来そうな単語」を予測し続けています。

そのため、

まず要件整理をして、その後計画を作り、作業をして、最後に評価を書く

と書かれているだけだと、AIは「要件整理」「プラン」「作業」「評価」のすべてを同時に見ています。Transformerには「今はステージ1だけ実行中」という内部状態がないため、「全部まとめて出力するパターン」の確率が高くなります。

一方、ステージゲートでは次のように構造化します。

【ステージ1】

やること
...

やらないこと
...

出力形式
...

停止条件
...

するとAttentionは、「ステージ1」「やること」「やらないこと」「停止条件」という近くの情報を強く参照します。

つまりAIは、

  • 今はステージ1
  • やることは要件整理
  • 計画は作らない
  • 出力後に停止する

という文章パターンを読み取りやすくなります。

特に重要なのが「やらないこと」です。

Transformerは基本的に「関連しそうな情報」を広げながら生成します。要件整理の話をすると、Attentionによって作業や評価規準の情報も活性化されます。

そのため、

計画はまだ作らない

という文を入れることで、

要件整理 → 計画

という連想パターンの確率を下げられます。

また、出力フォーマットを指定し、さらにLinterで固定するのもTransformerの特性に合っています。

例えば、

1. 前提条件
2. 不明点
3. 次のアクション

と書くと、AIは学習データ中の「番号付きリスト」のパターンを利用して続きを生成します。

これは「理解している」というより、

この見出しの後にはこういう文章が続く

という統計的パターンを利用しているためです。

さらに自己チェックも同じ原理です。

自己チェック
- 条件の漏れはないか
- 勝手な仮定をしていないか

と書くと、生成直前にAttentionがこのチェックリストを参照しやすくなります。

つまり自己チェックとは、AIに新しい能力を与えるのではなく、

生成時に参照してほしい情報を入力の中で目立たせる工夫

なのです。

結局、ステージゲートとは、

Transformerに存在しない「作業状態」を、文章構造によって擬似的に作る技術

と言えます。

  • ステージ名 → 現在地を示す
  • やること → 目的を示す
  • やらないこと → 探索範囲を狭める
  • 出力形式 → 生成パターンを固定する
  • 自己チェック → 参照すべき観点を強調する
  • 停止条件 → 次ステージへの暴走を防ぐ

という役割を持っています。

つまりステージゲートは「AIを管理する仕組み」ではなく、

Attentionが参照しやすい形で情報を整理し、次トークン予測の方向を制御するプロンプト設計手法

だと考えると、Transformerの動作原理ときれいにつながります。

(著者もまだまだ検証中ですが、だいぶうまく動いていると感じています)