はじめに
こんにちは、efといいます。わたしは深水英一郎氏主宰のA短歌会::短歌技術研究空間(略称: 短歌技研)に所属しておりまして、大規模言語モデル(LLM)を用いた生成AIと短歌を中心とする文芸のかかわりについていろいろと試行錯誤をしています。その一部は短歌マガジンの場をお借りして紹介させていただいており、LLMを動作させるための環境づくりについて書いた「生成AIと短歌ことはじめ」という記事と、同じく深水氏主宰の投稿歌壇「毎月短歌」への投稿短歌に対してLLMを用いた短歌評のタスクをこころみたことについて、「第5回毎月短歌テーマ詠『食』:AI選者全評と『入選作』」という記事を書かせていただきました。
以前の記事で紹介しております短歌評タスクはLLMに短歌を「読ませる」こころみですが、LLMに短歌を「詠ませる」こころみについても同時並行で進めています。しかし、人間が満足いく短歌を「詠む」のはまだまだ遠いな、というのが正直な感想です。
AIと人間の共創というのはわたしの短歌にとって大きなテーマなのですが、LLMが「詠む」短歌には基本的に「歌意」というものはありません。あくまで、「短歌」という表現形式においてよく選ばれる言葉を並べた「真似事」に近いものだと理解しています。LLMがやっていることの本質が「真似事」であることは、いま公開しているAIによる短歌評タスクの結果についても同じことが言えます。
しかし、あらゆる学びは「真似」から始まるといわれています。生成AIは、ひとりの人間が到底学ぶことのできない量を、どんな人間よりも愚直に継続して学ぶことができ、その結果として現に人間を「真似る」ことができています。まあ、わたしたち人間も短歌を始めたとき、あるいは今も近いことをしながら短歌をつくっているのかもしれません。生成AIの登場と普及により、短歌として「正しい」「間違っている」のあわいはいまどこにあり、どのように変化しているのかを精細に突き詰めたり、あるいは短歌という表現を未知の方向に拡張できる可能性が見えてきたように思います。
まだ不完全ではありますが、生成AIはわたしたちと同等、あるいはそれ以上のうたをよむ可能性を将来に十分に秘めた技術だと思います。そんな技術が、わたしのような一般人でもこういう実験ができるまで身近になったことを喜んでいます。
AI+人間の歌会
そのような実験の一環として、別スレッドで提案した「AI+人間の歌会」を短歌技研のメンバーの皆さまと共同で実施したので、この場で紹介させていただきたいと思います。
LLMは、毎月短歌の短歌評タスクに用いたのと同じもの(karakuri-lm-70bをmmnga氏が量子化したモデル)を使用しました。動作環境は以前の記事で紹介したllama.cppが動作する自宅のPCです。このLLMに、お題を「ことば」として、短歌を生成するよう命じました。自由詠よりは、何らかの制作方針があった方がその後の「人間」による改作がしやすいと考えたからです。
短歌の「もと」を生成するための工夫として、単純に生成せよと命じるのではなく、わたしの自作の一首を生成例として示し、それにつづいて10首を生成するようなプロンプトを以下のように設計しました。また、karakuri-lmにはプロンプトの末尾に入力することができる独自の引数(以下プロンプトの[ATTR][/ATTR]で囲まれた部分)があるのですが、ここもいくつか調整を行い、わたしの独断でもっとも「短歌らしそうな」文字列を出力する引数を決め打ちで決定しました。このあたりも調整したらいろいろなものを出してくることはわかっていて、そこを研究した結果も今後ご紹介できればと思っています。
# プロンプト(生成例)
[INST]<<SYS>>短歌は、5-7-5-7-7の音節で表現される日本語の定型詩です。あなたは人間の指示に応じて多様な表現で短歌を出力することのできるLLMです。<</SYS>>
「ことば」というテーマで短歌を11出力してください。
[ATTR]helpfulness: 4 correctness: 4 coherence: 4 complexity: 4 verbosity: 0 quality: 4 toxicity: 2 humor: 2 creativity: 4 [/ATTR][/INST]
わかりました。「ことば」をお題にした短歌を11出力します。
1. 肺胞に幽かな針と分け入ってきみのことばを分かってみたい
# 実行コマンド
$ model = "./models/karakuri-lm-70b-chat-v0.1-q3_K_M.gguf"
$ ./main -m $model --temp 2 -p "${prompt}" -ngl 32 -b 512 -s 222 --log-disable --color -ld ./output
その結果、あらかじめ入力した1首につづけて、以下の10首(文?)が出力されました。一見してわかりますが、短歌の定型は守れていません。また、意味が少し重複している単語があるように見受けられるほか、全体的に抽象的で、歌意を明確に読み取れるものはあまり無いような気もします。
# LLMが生成した「詠草」
2. 呆れて「はあ」とため息の向こう側にはいつのまにか明ける空
3. 花びら薙いで吹きつける風の中に見えぬものを抱き締めて
4. 「愛してる」を口ずさむ癖のある人影うつらぬ水面の彼方へ
5. 嗚咽は濁点のごとく声に穿ちこむ一抹の闇にゆらり
6. 夢現つなぐ言葉の海原に揺られ茫漠と広がる空を仰げ
7. ことばひとつで救われるのならばどれだけ私はその背を追いかける
8. ことばは風に乗り空を駆けて行くいくつも重ねた歌と祈りの重なり
9. 水面の淡い光に照らしだされる微かな想い出のひとつまみに掴む
10. 夜風に頬撫でられて浮かび上がるひと言ひとつが世界を変える
11. 声の波紋は宙を舞い響く旋律を纏って心の中に広がってく。
プロンプトの設計上、わたしの作風を「真似た」つもりでうたを生成したと思われるのですが、そんなに最初のうたの歌風を真似ているような感じもせず、まあ改作の「タネ」にするにはちょうど良いものができた気がしています。
今回は自作を入力しましたが、この結果を見る限り、生成例として最初に入力する歌は、短歌のフォーマットをある程度踏まえていればなんでも良いように思います。今後この「歌会」を継続する場合、どのようなうたを入れるとどのような文が生成されるのかを研究してもいいように思っています。
これらの10首(文)を「詠草」として、わたしが所属している短歌技研の皆さまに「AI+人間の歌会」をすることを提案しました。記事に合わせて一部改変していますが、おおむね以下の文言で呼びかけました。
以下に、「ことば」というお題でLLMが生成した短歌(風)の文字列を「詠草」として10個出力します。これをみなさまの手で「短歌」にしていただきたいと思います。
現段階で発展途上にあるLLMが「短歌」と思っているものを用意したので、ここに人間が「短歌」としてのかたちと中身を与えてやるのが、この試みの主な目的です。また、他の人の改作のパターンなどを見て、自身の創作の参考にすることもできると思います。
改作はそれなりに大変な作業ですので、全ての「詠草」について実施いただく必要はありません。それぞれの「詠草」に番号を振りますので、どれに対して改作を行ったのかだけ明示していただければと思います。
また、どのように「短歌」としての形にするかは、人間の皆さんにお任せしたいと思います。なるべく元の語や意味を残してもよし、新しい単語や歌意を吹き込んでもよし、定型内、定型外の形式も問いません。なお、このスレッドに投稿された短歌およびコメントについては、今後生成AIを用いた解析などで使用する可能性があります。著作権はそれぞれの改作を行われた方に帰属しますが、この点のみ了承いただいて投稿ください。
では、次のコメントにLLMからの出力を示しますので、それらを「人間」として解釈した短歌をお寄せいただければと思います。
わたしの呼びかけに応えていただき、わたしが投稿した10首に加えて、短歌技研に所属しておられる6名のかたから合計59首(2024年3月10日時点)を投稿いただきました。「改作」の結果については、以下のスプレッドシート上で公開しています。
参加されたかたからは、「新手のテーマ詠、お題みたいで面白かった」などの感想をいただいています。わたし自身も改作を試みたのですが、わたし個人としては「すこし制約の多いテーマ詠」という印象を抱きました。なんらかの制約があったほうが、そのなかで自由に動こうとするぶんかえって発想を膨らませやすいケースは多いですが、今回は短歌の「骨組み」と呼べるものがある程度形成された状態から「改作」を行うので、その範囲内で製作したり、いったん骨組みをはずして自分の意図が通るような設計を考えたりなど、すこし考えることが違う創作になったように感じています。
また、記事の最初で述べた通り、LLMが生成する短歌(のようなもの)には元来「歌意」は含まれず(もちろん読ませれば相応のものは出力してくると思いますが)、お題としての「ことば」と共起する表現を確率的に並べた文字列(にしては、ずいぶん多様な表現を出してくれたものだなと思います)というのが正確な表現だと思います。ここに人間が「歌意」を吹き込んで創作をするというのは、面白いが意外と難しいな、自分でフルスクラッチして短歌を作るのと意外と変わらないな、という感想を抱きました。
しかし、AIが生成する文字列の多様性によっては、そうした入力をもとに自分が想像もしなかったような短歌を詠むことができる可能性もあります。あるいは、改作を通じて自身の短歌創作におけるパターンを自覚するきっかけにもなると思いますし、他者の「改作」を自分のそれと比較することで顧みることもできます。
実際、参加者の方からいただいた「改作」を眺めるだけでもとても勉強になりました。もとの言葉をなるべく保持して定型に聞こえるように並び替えただけでも、かなり短歌として「仕上がっている」ように感じましたし、作者独自の表現を込めたものもそれ独自の表現としてより個性あるものになったように思いました。これはAIによる画像生成と人間がフルスクラッチで作成した絵の比較についても言えることですが、その作品の生成過程に「ナラティブ」が生じたことで、もとの作品にあたらしい「価値」が付与されたのだと思っています。
しかしこの試みは、現時点のLLMが生成する「短歌」が人間のそれと明白に区別できるから成り立っているのかもしれません。まだ具体的なアイデアはありませんが、この「改作」のテキストデータが蓄積されてくれば、それを反映させた短歌の生成と「改作」をLLMに真似させることも可能になると考えています。もしそれが実現されて、ほんとうに人間が詠んだものと区別がつかない短歌が生成されるようになったとき、わたしたちはどのような短歌を詠むことができるのか?これに近い問題はすでにイラストの界隈では起きていて、創作者は大きな岐路に立たされているように思います。
ただ言えるのは、人間とAIの共同作業により、どちらか一方のみでは作ることのできない作品というのは今後どの分野でも出てくるだろう、ということです。文芸の分野では、芥川賞を受賞された作家のかたが作品の一部に生成AIを用いたことを明かしています1。しかしこの作品は当然生成AIのみで成しえたものではありません。今回のAI+人間の歌会は、短歌という文芸においてそうした「AIとの共創」をこころみた場合、どのようなものが作れるか?という試行として意義のあるものだったと考えています。そしてそれはAIの発展だけではなく、短歌をよむ人間にとっても有益なものになったと思います。
予告:AI+人間の共創企画について
ということで、この試みを短歌技研からオープンな場に移して、より多くの方に参加いただいても良いのではないかと考えました。この「歌会」のかたちのまま生成した「詠草」からの公募をしてもいいのですが、より多様な「共創」ができる企画について考えており、近く運営から告知いただく予定です。この試みに興味を持っていただいた方は、ぜひそちらから応募いただければと思います。
みなさまの短歌ライフに、AIが良い影響を与えてくれることを願っています。
厳密には、作中でchatGPTのセリフがある部分に実際にchatGPTからの生成文を用いたということだそうで、作品全体に生成AI由来の文章が混ざっている、というわけではないようです。