なるほど。LLMが複雑な文法を正しく扱える理由について、動的計画法のようなことをしているのではないか、とのこと。
https://joisino.hatenablog.com/entry/physics
試しに、括弧の対応を取るようなのを考えてみると、開き括弧と閉じ括弧に「直近のまだ閉じていない開き括弧の位置」を保持させて、さらに閉じ括弧に「対応する開き括弧の位置」を持たせると、2レイヤーで処理できそう。
自身が開き括弧の場合:
1つ前の括弧が開き括弧であれば「直近のまだ閉じていない開き括弧の位置」は「1つ前の括弧」の位置である。
1つ前の括弧が閉じ括弧であれば「直近のまだ閉じていない開き括弧の位置」は「1つ前の括弧」の「直近のまだ閉じていない開き括弧の位置」である。
自身が閉じ括弧の場合:
レイヤー1:
1つ前の括弧が開き括弧であれば「対応する開き括弧の位置」は「1つ前の括弧」の位置である。
1つ前の括弧が閉じ括弧であれば「対応する開き括弧の位置」は「1つ前の括弧」の「直近のまだ閉じていない開き括弧の位置」である。
レイヤー2:
「直近のまだ閉じていない開き括弧の位置」は自身の「対応する開き括弧の位置」にある括弧の「直近のまだ閉じていない開き括弧の位置」である。
あるいは、ネストの深さに制限を付ければ、閉じていない開き括弧の位置を複数持たせて1レイヤーで処理できそう。
- replies
- 0
- announces
- 0
- likes
- 1