キーワードで制限をつけたテキスト生成の実験をしたいので、最近で有名なモデルである GSum の実装を開始した。 著者実装があるのだが、動かなかったし、fairseq をもとに書かれているのでそれを紐解くより自分で実装し直した方が早そうなので。 現に過去に研究室に所属していた修士の学生がそれを動かすのに失敗し実装し直したという話を聞いているので尚更。
この実装のために論文を再度読み直しているのだが、もとにしている生成モデル BART に、最初に思っていたよりたくさんパラメータを足していた。Encoder は重みが共有されているものの、keywords を別に処理しているので2度実行し、encoder layer を二つ追加、それぞれを documents, keywords の特徴量を変換するのに使っている。 もともと追加のパラメータはこれだけだと思っていたのだが、実は、Decoder 側でも追加されていた。keyword の特徴量に対して attention を当てるための追加の cross-attention のための重みを各 Decoder layer で増やしていた。全体に対してどれくらいの割合で増えているのだろうか。 最悪増やすこと自体はよしとしても、scaling law が示されている状況でこれだけパラメータを増やしてから、評価対象がそのままのパラメータがだいぶ少ない BART でいいのだろうかというのは怪しい。