
Transformer | 文を混ぜることができる生成AIを作ってみた
最近,生成系AI(GPTみたいなもの)を勉強していて,勉強がてらに作ってみました.Sentence Mixerといいます.HuggingFaceのSpaceで公開しているので,是非遊んでみてください.
例えば以下のように2つの文を入力すると,
A : 今日入った温泉はこれまでのどこの温泉よりも格別だった。
B : 寒くて血が凍りそうだ・・・あれ、「血が凍る」の意味、ちょっと違うかな?
以下のような文が生成されます.
寒いのに、まだ風呂に浸かってる?
我ながら面白いものができたと思います.
Sentence Mixerの仕組みについて説明します.
Sentence Mixerは,エンコーダ・デコーダ型Transformerモデルを使用しています.エンコーダ・デコーダ型Transformerとしては,BARTやT5などがあり,翻訳,要約,パラフレーズ,生成系質疑応答などといった,変換生成系のタスクを中心に行っているモデルです.
エンコーダ・デコーダ型Transformerの使い方としては,まず入力文をエンコーダに入れ,エンコーダから出てきたものをデコーダに入れると,デコーダから出力文が得られます.
Sentence Mixerでは,要約タスクを訓練したT5モデルを使用し,以下のような図の流れで文を混ぜます.

入力した文2つをそれぞれエンコーダに通し,エンコーダから出てきたものを r : 1-r の比で内分します.内分したものをデコーダに入れると,2つの文が混ざったような文が出てくる訳です.
たったこれだけの足し算で,本当に文が足されてしまうのですから,興味深いです.