自動小説執筆サービス「AIのべりすと」の紹介とその背後の仕組みのふわっとした解説

鈴鹿詩子がAIで小説を書くというサービスを紹介していてひっくり返った。

https://www.youtube.com/watch?v=XuqYZrf-RHA&t=833s

なんとも「AIのべりすと」というサービスらしい。
https://ai-novel.com/
会わないうちにいつの間にか高くなった親戚の子にあった気分だった。
自然言語処理は専門ではないが、機械学習を使ってお仕事をしている身としてはチェックすべきだろうと思い、さっそく使ってみる。

黒い文字が私によって書かれた小説の冒頭、青紫色の文字がAIによって作られた続きの内容だ。

驚きの余りまたもやひっくり返ってしまった。
あまりにも自然すぎる。
強いて言えば「吉川の」などはつける必要がないが、意味は通じる。

その続きをまた私が埋めて、そしてさらにAIに執筆させてみた。

捺印もできない、からのそもそも伝票に書かれた住所は私の自宅ではない、の繋がりが良すぎる。

とはいえよく見ると猫が伝票を見てから、扉が開かれたという時系列の齟齬がある。それでも単に「そもそも~自宅ではない。」の部分を抜けばいいだけだし、それ以外では整合性がとれている。

他にも性能についてレビューしている記事がいくつかあるので、それを参考にされたし。中でも恐山氏の紹介が有名だと思われる。

一体どんな仕組みで執筆しているのか

もちろん中の人が速攻でゴーストライティングしているわけではない。執筆にかかる時間は5秒程度なので、筆者のタイピング速度でさえ追いつかない。

調べたところ、どうもGPT-3をベースに1.5TBのコーパスを学習し、73億のパラメータのモデルを学習したらしい。コーパスとは文章の集合体だ。およそ数百万冊の単行本にあたるらしい。

ただ単に学習と言っても、それだけでは全容がつかめない。
AIのべりすとの性能について評価している記事は多いが、仕組みについて解説している記事はほとんどないと思われたので、このコラムでは、それをゆるふわ~っと解説してゆく。小説家さんたちにもなんとなく仕組みがつかめるように。

これを読んでいる方にもし自然言語処理の専門家が居たら、間違っていたことを言ってたときにコメントで指摘してください。多少間違ったことを言ってしまっていると思うので。

とはいえすでにGPT-3自体はわかりやすい記事があるので、これに沿って、多少かみ砕くような形で開設する。

図は主にこの記事から引用する。


入力データの作成

何かを学習するには、基本的に、入力と出力が必要である。入力から期待する出力が得られるように、AIのモデルは学習する。内部でやってることは、一言で言うと入力の変換である。変換は重みというパラメーターで調節可能だ。
現在の仮の出力と、正解の出力の差に基づいて、そのパラメータを更新する。

執筆と言うタスクでは、単語の系列があって、その次にくる単語を出力とみなす。

Embedding

単語は、そのままでは扱われない。空間上で向きと大きさを持った量、つまりベクトルとして扱われる。
単語の系列から、次を出力するということはつまり、単語の関係を捉えるということである。
たとえば、コンピューターはそのままでは『パリ』と『東京』という単語に潜む、首都であるという情報を捉えることができない。
それをembeddingということを行うと、文章中の単語の使われ方、他の単語との関係を数値として表すことができる。使われ方の類似度でもって、はじめてパリと東京は首都という意味合いで使われるのだなとコンピュータにでも暗に学習できる。

Transformer


embeddingされた単語は、Transformerという処理を受ける。
その中には、Attentionという処理がある。
Attentionでさらに以下のように対応関係を学ぶことになる。
特にSelf-attentionで、自身の文章内での対応関係を学ぶ。

Transformerの図は以下の通りだ。
Self-attentionで入力内の対応関係、出力内の対応関係を学んだあと、入力から出力の対応関係を学ぶ。

詳しいことは以下の文献などにも書かれている。


今一度書いてみると、噛み砕いて説明することの限界や、難しさに気づく。。
若干説明しきれなかった部分が多いことが否めなくて、申し訳ない。挙げた複数の資料などを使いながら、理解してくれることを祈る。。

この記事が気に入ったらサポートをしてみませんか?