Thinking Like Transformers
By Gail Weiss, Yoav Goldberg, and Eran Yahav, [arXiv:2106.06981]
ICML2021論文読み会 2021-08-18
中村道宏 (@__nakamichi__)
1
概要
2
RNNとオートマトン
3
Transformerと計算モデル
4
プログラミング言語
RASP
(Restricted Access Sequence Processing Language)
※REPLで触って遊べます https://github.com/tech-srl/RASP
RASPによるTransformerの理解
普通のプログラミングで解けるタスク
↓
RASPでプログラムを書く
↓
RASPプログラムに対応するアーキテクチャのTransformerを学習させる
(RASPからTransformerへの「コンパイル」)
↓
できたモデルはRASPプログラムと同様の性質やふるまいを持つと期待される
5
プログラミング言語RASP
RASP: Restricted Access Sequence Processing Language
6
プログラミング言語RASP
Transformerのattention layerに相当する2つの演算を定義
※forループのような制御構文はRASPには存在しない
7
プログラミング言語RASP
8
RASPで書けるプログラム
9
RASPプログラムの例:double histogram
10
RASPからTransformerへのコンパイル
与えられたRASPプログラムに対応するTransformerアーキテクチャの構成法
こうして構成したTransfomerは、与えられたタスクを解くのに必要な�attention layerの数とattention headの数の上界を与えると期待される
11
Thinking Like Transfomer
実際、RASPから構成したTransformerで前述のタスクをほぼ100%の精度で解けた
12
Thinking Like Transfomer
逆に、RASPによる構成よりlayerとheadの数を減らすと、精度が下がりがち�→RASPによる構成が与えるlayer数、head数の上界はけっこうタイト
13
Thinking Like Transfomer
RASPから構成したTranformerのattentionは選択行列と一致するか?�→だいたい一致するタスクもあれば、そうでないタスクもある
14
まとめと感想
15