日本語CTRL学習結果まとめ

はじめに

これまで学習してきた日本語CTRLの最終モデルをまとめる。

学習曲線

学習は500Kステップ行った。

f:id:nakamrnk:20200511123530p:plain
train loss の学習曲線(span=5000のewmaでスムージング済み)

学習曲線を見る限りはほぼ収束しているように見える。

推論結果

いくつか推論して見た結果。500Kステップのモデルよりも450Kステップのモデルのほうがよかったので
そのモデルを解析する。

オリジナル文章の生成

物理学には愛がある。
青空 物理学には愛がある。これは疑いもなく更に進んで来るしてはならない。昔の物理学者が時代から将来親しく思い出す部屋である。愛の中には現代の交遊にも似たものが無い。愛と教えと愛の現象とがあるのではないかと考えるものさえある。 現代の交響詩の連続した意味において最も純粋なものは負かねばならない。最も鋭い形式的な形式的な形式的な形式は、自由な発散詩である。しかし現代の交響詩には少なからぬ距離はない。私はここにこの実験を
知識 物理学には愛がある。物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、物理学では、
物理学には愛がある。
過去というものは未来の積み重ねである
青空 過去というものは未来の積み重ねである。歩を運んだり、また働こうとするものが蘇り果てて行ったり、或いは未来の未来の未来の未来の未来の未来が希望或いは現前として決して過去の歴史とはなっていない。然るにそれは未来にとって全く未来と反対な未来が行なわれているものであり、未来が何だと問うたかと言うと他ならぬ。未来が何だ、と問うたかと言うと他ならぬ。未来が何だ、と問うたら未来未来が何だ、
知識 過去というものは未来の積み重ねである。この時代、宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は、宇宙の崩壊の始まりである。宇宙の崩壊は
過去というものは未来の積み重ねである

現状まともに長文生成ができているのは制御コード「青空」のもののみである。
「青空」の文は一見すると日本語の文章になっているように見えるが、内容をよく見ると支離滅裂なものも多い。
制御コード「知識」については同じ言葉の繰り返しが多く文章になっていない。 制御コード「訳」は序文が閉じている場合はそのまま終了してしまうため長文となっていない。

疑問文

食べられないパンは?
青空 食べられないパンは?――と、彼は、軽いごそごとした指を挙げて、軽いと思った。 (もう駄目)と、彼は、暴風の名をつけて、彼の下宿から追い出された。部屋の明かりが彼の部屋のあちこちに見え、プラスティックにのせられて、彼は悠々と眠りはじめていた。 「ニャンコちやん、ニャンコちやん、ニャンコちやん、ボンヌ、パクパク家から転校したの......」 彼は彼女がさう話した。 「ニャンコちやん、ボンヌ
知識 食べられないパンは? という料理の料理は、料理の材料として、料理の材料として使われる。また、料理の材料として、パンを調理する料理は、料理の材料として使われる。また、料理の材料として、パンを調理する料理は、料理の材料として使われる。調理するパンは、料理の材料として、パンを調理する調理器具である。調理するパンは、調理するパンを調理する調理器具である。調理する
食べられないパンは?
世界の中心にいる昆虫は?
青空 世界の中心にいる昆虫は? 陸上に於ける居心地のいい国ではなかろう。 陸上に於ける居心地のいい国ではなかろう。 陸上に於ける居心地のいい国の人々は永い間、咽ぶるような心地よい寝室や、前の気配がひどく馬鹿げて、そして気の合った優れた優れた優れた優れた優れた優れた会話や、四体五十鈴の音や風にも柔順なアカペラを浴びて、三人と話をしている。 人は気むずかしい顔をしている。 人の目には見えないが
知識 世界の中心にいる昆虫は? 。 彼らは、 生物の多様性と多様性を、 生物の多様性と多様性の保全に役立てる。 生物の多様性は、 生物の多様性と多様性の保全に役立てる。 生物の多様性は、 生物の多様性と多様性の保全に役立てる。 生物の多様性は、 生物の多様性と多様性の保全に役立てる。 生物の多様性は、 生物の多様性と多様性の
世界の中心にいる昆虫は?

科学的な話

遺伝子が人の成長に及ぼす影響は
青空 遺伝子が人の成長に及ぼす影響は英国の研究中に広く紹介せられている(1)(1)加えて同じく遡ることができる(1)(1)加えてColumfonstein Orchordor(Morage in Scientific L. Phil. Med., 1718-1960)(2)異なる地方で発現するπ伝達辞の研究を主として行った。彼は、遺伝に関する統計性を研究していたのではほとんど何も知らない同じ民族の分生児であることがわかるが、何千幾
知識 遺伝子が人の成長に及ぼす影響は、遺伝子の発現の要因の1つであり、遺伝子の発現の要因の1つは遺伝子の発現の要因である。遺伝子発現の要因は遺伝子発現の要因である。遺伝子発現の要因は遺伝子発現の要因である。遺伝子発現の要因は遺伝子発現の要因である。遺伝子発現の要因は遺伝子発現の要因である。遺伝子発現の要因は遺伝子発現の要因である。遺伝子発現の要因は遺伝子発現
遺伝子が人の成長に及ぼす影響は
CO2が地球温暖化に与える
青空 CO2が地球温暖化に与える影響は、もはや人類が世界を支配しているというよりも、それが一命を失った時の惨禍であるのだろうと、思うに、けっきょく人類が地球を支配し、その侵略的敗北の勝利に努力するであろう。 戦争によって人類は天命を受けとった最も大きなものは、絶対の快楽であって、決して人類にとっては善愛と扱われるものではない。天命を受けとった方が、悪よりも少ないのは、世界が他の多くの国とつながっている
知識 CO2が地球温暖化に与える影響は、地球温暖化の要因の1つに挙げられる。CO2は、地球温暖化の要因の1つであり、地球温暖化の要因の1つは、地球温暖化の要因の1つであり、地球温暖化の要因の1つは、地球温暖化の要因の1つである。CO2は、地球温暖化の要因の1つであり、地球温暖化の要因の1つ
CO2が地球温暖化に与える影響は

制御コード「青空」の解析

CTRLによる混合学習の影響

現状のモデルでは制御コード「青空」は比較的日本語のようなものを生成できている。
ただ、これは元の青空文庫にあった文章をそのまま出力しているだけの可能性もあり
オリジナルの文章を生成しているのではない可能性もある。
WikipediaやJESCデータと一緒に学習することによって元の「青空文庫」にはない文章を
生成できるようになったかを確かめる。

ポケモンGO』のために出歩く人々
青空 ポケモンGO』のために出歩く人々の間では、『ポケットモンスター』がある。『ポケットモンスター』を作る時に原画で原画でもするか、フラワーデザイナーは『ポケットモンスター アール・アール・アンド・ライナーズ』と同じである。単に『ポケットモンスター アール・アンド・ライナーズ』でも、一通りやっていたらいい。『ポケットモンスター アール・アンド・ライナーズ』でも、一通りの成功は数えきれているが、『ポケットモンスター アール・アンド・ライナーズ

元の序文には「ポケモンGO」としかないが生成文にはポケットモンスターとあり略称を正している。
おそらくこれはWikipediaの知識を利用した文章生成ができている。 (文章自体はよく分からないが...)

あの人はeスポーツが好き
青空 あの人はeスポーツが好きです。そしてeスポーツをやっているひとの中にはeスポーツをやっているひともいるでしょう。ペアペアは戦いをしているひとのために、いろんな面白いことは知っているでしょう。 若い女というのは「小鳥」とか「小鳥」とか「アホウアホウアワ」とかを見てもいわれます。 生後二ヶ月の後、はじめてaoスポーツに指導者として立った私は、早速スポーツにもっと入りたいと思います。日本でカカオライトをはってからはロボシ

一応文章らしいものができており、eスポーツという単語も生成文に含まれているが、
eスポーツではなくただのスポーツに対して言及しているようにも見える。
(aoスポーツという謎の造語も作っている)

類似語入力

夢がある人々は
青空 夢がある人々は、いつも夢を見るであろう。毎日の思い出にふけることが少なくない。強くして夢を好む者も多く、また夢見る世界の習俗などにも、そうであった。とにかく夢を好む者も多く、まず夢を見るであろう。 夢を好む者も多く、また夢見る心理を知っている者が多い。そう思って見れば、いずれも、自分と自分の意志より、さらに大きな前途の階段を昇るべく、自分は迷うことが多い。夢に耽るには、何故か、やや思慮に凝って夢
夢のある人々は
青空 夢のある人々は、私の詩をやさしい露西亜人のだと云ふ事を話せとした。しかし、私は巴里に於て、純粋の世界と原始的な生活に憧れを抱いて居た。この事は、可なり魅了された。若し、傍観者(?)を眠がせと言ふなら、それはどんな意味のものであったかも解らない。(尤も、この世界は西洋だと思つた。)不幸にして、そして、侘しい世界だ。
夢もある人々は
青空 夢もある人々は、夢を見るであろう。毎日、六|睡している。七|時|丑三つの時を、夢に見たような事象が、はっきり目の先に、生々しく匂って来る。けれども、夢は、そのようなところをなし、ただ大きくなって行くにしても、はっきり見えるように感じられる。この六|滴が、ほんのちょっと空虚な円を、自分の傍で眺めると、点々と、ものの金華が指を立てて、夢の中で見ている。夢が金華に向かって

序文が少しことなるだけで生成された文章は大きく異なる。

異なる制御コード

今回学習した制御コードは「青空」、「知識」、「訳」の3つのみだが、
トークンに対するembeddingを制御コードに利用するCTRLの構成上トークンでありさえすれば
これ以外の制御コードでも文章生成を行うことができる。

宇宙に広がる無限の可能性
青空 宇宙に広がる無限の可能性 漠然たる物象を滅ぼし尽さんとし 万物象として尽す術なく文明の進ましめり 文明の神々の系譜を究る はるか彼方なる瞬々 人類の系譜を物語る
知識 宇宙に広がる無限の可能性は、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で、宇宙のあらゆる領域で
宇宙に広がる無限の可能性は 地球上の宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の 宇宙の
宇宙に広がる無限の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性
科学 宇宙に広がる無限の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性
娯楽 宇宙に広がる無限の可能性は無限の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性の可能性

学習していない「愛」「科学」「娯楽」の制御コードでは同じ言葉を繰り返すだけである。
一方で「青空」の制御コードに近いembeddingを持ついくつかのトークンによる結果は以下のようになっている。

宇宙に広がる無限の可能性
青空 宇宙に広がる無限の可能性 漠然たる物象を滅ぼし尽さんとし 万物象として尽す術なく文明の進ましめり 文明の神々の系譜を究る はるか彼方なる瞬々 人類の系譜を物語る
図書 宇宙に広がる無限の可能性を、広がる無限の可能性を、広がる無限の可能性を、広がる無限の可能性を、広がる無限の可能性を問うことができる。広がる無限の可能性を、広がる無限の可能性を問うことができる。広がる無限の可能性を問うことができる。広がる無限の可能性を問うことができる。広がる無限の可能性を問うことができる。広がる無限の可能性を問うことができる。広がる無限の可能性を問う
晴れ 宇宙に広がる無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を創造する無限の可能性を
響いて 宇宙に広がる無限の可能性 寿命は存在せず 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は未知である 寿命は

完全にランダムな制御コードと比較すると序文に続く繰り返しでない文章長が伸びている。

すばらしい人類の未来は
青空 すばらしい人類の未来は、人類の二大国にたった一|哩だけではありません。エネルギーの使用を妨げることなしに、この人類の理想はだんだん永い地球上に拡がりまして、あらゆる国が従来労働しなければならないような労働力をもって、素直にやって行けるようになったのです。 人類の間にさまざまな事をもたらし、人類は今や一様に、神のみが養われ、自分の力でして行けるようになったのです。人類が今やまだ四分の八もの力を有している時代、すなわち、最も無機的な国家に
図書 すばらしい人類の未来は、人類のもう一つの特徴や価値を十分に理解することなしに、非常に重要なことは、人類にとって大切なことである。
晴れ すばらしい人類の未来は、太陽の増長が長い太陽の増長が長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増長よりも長い太陽の増
響いて すばらしい人類の未来は そう私たちは

ここで紹介したものは比較的文章になりやすいトークンだが、
「青空」の制御コードに近いトークンは全て制御コードとなるわけではないようだ。
ただ同じ単語を繰り返すものの方が圧倒的に多い。

応用について

今回CTRLを学習したのは日本語による文章生成がどの程度できるかを
確かめたかったことと序文を与えて制御コードを切り替えるだけで様々な文章を生成
するAIができれば楽しそうだと思ったからである。

現状の学習状況では「青空」以外の制御コードの結果はおもしろくないし、
「青空」も正しい日本語を生成できているとは言えない。
特に論理性のある意味の通った文章があまりできていない印象がある。
(意味もなく否定を入れたりして意味が通じなくなるような場合が多い)

一方で論理性のない適当な文章なら今でもある程度生成できる。

人はなにゆえ生きるのか。その問に答えられるものがいるのであろうか
青空 人はなにゆえ生きるのか。その問に答えられるものがいるのであろうか。それは語られている。涙とか淋しさとか、悲歎とかなまぐさというものに通じているからである。酒を飲み、誰が苦しくも真面目に酒代を断っても、誰もわるい。彼はそれ以上に、何が何でも並ら国民たるか。そしてそれもそれも内心そんなものだ。 ――しかし、彼はいつもこう自分自身を愛している。そして――たとえば水を飲むとか、あるいは相撲とかいう。そしてそれでは自分の酒を――

抽象的なテーマなら強引に解釈しようと思えばできるかもしれない文章ができるのでそれで遊んでみることくらいは
できるかもしれないがフェークニュースの作成などはできないと思う。
少なくともいくつかの制御コードである程度長い文章を生成できるようにならなければつまらない。

改良案について

現状CTRLの学習についていくつかの改良案がある

制御コード(データ)を増やす

現状の学習データは3つの制御コードのみからなっており、
JESCデータは長文生成には向かないデータセットである。
また、Wikipediaデータもある程度文章の形式が決まっており、
あまりおもしろい文章の生成には向かないのかもしれない。
また、語彙数も多いので現状のネットワークサイズでは学習するのが難しい可能性がある。
(語彙数を増やすためや最近の単語に対する知識を利用するため除去すべきではないと思うが..)
これらを解決するためにももう少し多様なジャンルの文章を学習データとして集めて制御コードを 割り振って学習する必要がある。(制御コード10個くらいあればおもしろそう)

ネットワークパラメータを拡張

今回使ったネットワークは語彙数は30000で潜在次元512の8層Transformerであり、やや小さめのモデルである。
元のCTRLは語彙数200000を超え48層のTransformerという強大なモデルであり、 表現能力が桁違いである。
そこまではいかなくても多少ネットワークサイズを増やして結果がどのように変わるかは興味がある。
一方で計算リソース的には今回(GCP Tesla T4)以上に増やすことは現実的ではないので、
何かを犠牲にする必要がある。 あえて犠牲にするとすれば今回系列長を256で学習したが、
それをもう少し小さくすること(128くらい?)で他のパラメータを増やすことはできる。

別のモデルの導入

今回は簡単のためEncoderのみの言語モデルであるCTRLを用いたが、
Seq2SeqであるT5で文章生成を行うのもよさそうである。

まとめと今後

  • 制御コード「青空」についてはある程度長い日本語っぽい文章を生成できるモデルが学習できた
  • 他の学習した制御コード「知識」「訳」は長文の生成ができていない
  • 学習していない制御コードについても文章のようなものが生成できているものがある

今後はFine-tuningで少数の学習データにより制御コードが追加できないかを試してみたい。