Up 入れ籠・再帰の応答スタイル 作成: 2023-06-29
更新: 2025-06-29


    ChatGPT の応答は,HTMLタグを用いて入念に修飾されている。
    この HTMLテクストの生成は,Transformer がやっていることになる。

    応答の生成を HTML で頭からから 一気にやるというのは,一見大変そうだが,これは Transformer にはむしろ合っている。

    Transformer は応答を,木構造ベースの入れ籠構造でつくる。
    即ち,上位レベルと下位レベルの間の降ったり昇ったりを
      「籠を作って中に入り,そこで処理が済んだら,
       籠を作ったときの元の場所に再帰」
    のアルゴリズムでやっている。
    そして HTML は,この再帰アルゴリズムを明示的に表現する言語なのである。

    Transformer の応答生成のしくみを想起せよ。
    これは,つぎのようになっていた:
      質問テクストのトークン点列
          [ x_1, ‥‥, x_m ]
      に対し,
        [ x_1, ‥‥, x_m ]
          → [ p_1, ‥‥, p_m ]
          → p_m :「x_m のつぎのトークン点は y_1」
        [ x_1, ‥‥, x_m, y_1 ]
          → [ p_1, ‥‥, p_m, p_(m+1) ]
          → p_(m_1) :「y_1 のつぎのトークン点は y_2」
         :

    この「過去参照」は,即ち「過去の回収」なのである。
    Transformer は,「過去の回収」として応答を生成している。

    HTML は,テクストの入れ籠構造をタグでつくる:
     「タグ "< ‥‥>" を以て籠を作ってその中に入り,
      タグ "< /‥‥>" を以て籠を出て,
      タグを作成した元の場所に再帰する」


    こういうわけで,Transformer は,プログラムの作成全般が得意である。
    プログラムは,「入れ籠構造=再帰アルゴリズ」だからである。
    というより,そもそも Transformer は,テクストをプログラムとして作成しているわけである:
    1. 質問の要点を示する
    2. 応答としてこれから語ることの大枠を示す
    3. 大項目から小項目へ降り,<解説>のパラグラフを生成する
    4. 再帰的に大項目と小項目の間を移動する
    5. まとめをする
    6. 今後の展開を提案する

    なぜこの形になるのか?
    シンプルでありならがら,高生産的できだからである。
    実際,Transformer はこの方法で論点 (話題) を拡げ,多数のテクスト想起の可能性を拡げているのである。