Claude利用の小説執筆05(それっぽい文章を出力することの限界)
LLMにせよ、画像生成AIにせよ、プロンプトに基本的に準拠したものを生成するわけだ。birdと入力すればディープラーニングした鳥の概念からbirdらしい画像を出力する。a woman making a dinnerであれば、女性が夕食を用意している様子を作るわけだ。
しかしこのとき、隣接する概念に引っ張られるということが起きる。a Japanese woman making a dinnerであれば、アメリカらしいキッチンやダイニングで料理を用意する日本人ではなく、なんか日本家屋らしい場所でそれっぽいことをする和服の日本人女性が出てくるだろう。アメリカの一般家庭で料理をする日本人女性を出したいなら、もっとプロンプトの指示量を増やさなければならない。
それらしさ。生成AIはそれっぽく仕事をやっつけるのが極めて得意だ。「指示文にこう書いてあるんだからこうでしょ、少なくとも間違ってないでしょ」、大雑把に指示をすると大体そんなマインドで仕事をする。もちろん、怠惰や皮肉でそうしているわけではない。プロンプトに呼応するAI内部の概念を使って生成しているにすぎないから、入力に忠実に出力しているだけなのだ。
これと同じことが小説を書かせようとしても起きる。要は、このキャラはあとで裏切りますよ、という設定を事前に与え、そのキャラが初めて登場するシーンを書かせるとする。するともう露骨に「こいつは裏切りますよ」的な雰囲気をもう出すわ出すわ。伏線の張り方があまりにも露骨すぎるのだ。しかしこれは性能の低さを意味しない。原理的にそうなのだ。生成AI、LLMは計画して文章を生成しているわけではない。読者のことを考えて、どの場面でどういう情報を提供すべきか考えて書いたりしない。入力したプロンプトに応じて出力しているにすぎない。そのキャラクターの登場するシーンを全て一気に書かせることができるGPTo1Proでもない限り、ワンシーンワンシーンずつ生成していれば、そりゃあそうなる。なぜなら、最初に出力した登場シーンだけで入力された情報全部を始末つけようとするから、裏切るキャラはいかにも裏切る感じに書くわけだ。このことを踏まえて、以下のClaude3.5sonnetの文章を見てほしい。project knowledgeに作品設定を数万字与え、直近の数話の本文も与えた上であるシーンを書けと指示して、さらにいわゆるパワハラプロンプトでブラッシュアップしたものだ。
まあクオリティは高いわけだ。ここまで素晴らしい本文を出してくれるならもうアマチュアのレベルは超えている。それはそれとして……。どこか薄っぺらさはある。
それは文章量が足りないからとかそういうことではなく、キャラクターの深みのようなものを出せていないというか。出力した部分に先の部分で明かされるはずのものを全部詰め込んでしまってる感がある。
小説、漫画でもいいが、物語というのは情報の公開タイミングが極めて重要だ、冒頭で「このキャラクターは死ぬのだが」なんて手法を取るのはエンタメでは史実通りの歴史物くらいでしかない手口であって、後でこうなるというのを作者はわかっていても、その情報をどう開示するかが腕の見せどころのはずだ。初心者の書き手は、自分が全部わかってるもんだから、絶対伝えなければならない情報を伝え忘れて、読者が混乱する。中級者の書き手は、最初に全部公開してしまって、設定の説明過剰で物語っぽくなくしてしまう。上級者の悩みどころは、どこでどう情報を出すかにかなりの部分が占められていると言えるだろう。これは完全に技術であり、才能とは別のパラメータであると思う。
これに関してLLMは、まったくもって生成AI的というか。数万字、いや十万字を一気に生成できるGPTo1Proとは違い、Claudeの sonnetなどは一回の出力も総出力も短いから、数千字ずつ、ワンシーンずつ出すしかない。すると、そのシーン内部で全部の始末をつけようとする。十万字のストーリーなら、人間のプロ級の作家は、ここまではこのキャラは裏切り者であることを隠しておこう、ここでこの情報を明かせば読者の3割くらいは気付くだろう、ここでこういう明かし方をすればみんなびっくりするだろう、でやっていくものだ。
だがAIにそれは通じない。プロンプト通りに、最初のシーンで大体全部の感じを出そうとする。事前に与えたプロットの先を踏まえて、プロンプトという入力通りに出力するわけだ。なぜなら彼らは計画しないから。GPTproならおそらく全部を一気に生成する性質上、もしかしたら解決できる問題かもしれないが、そんじゅそこらのLLMであればなかなか難しい。どうしても数千字ずつで区切ることになり、よほどプロットで細かく情報を出すタイミングを指示し、生成時の指示にもここではこう、ここではこうとやらないと最初にシーンで裏切り者のキャラに裏切ることを匂わせることになる。
まあ裏切りならわかりやすい。それに修正もしやすかろう。だが「口ではみんなのためと言いつつ実際にやることは私利私欲、でも完全に私利私欲でもない複雑さがあり、結局は普通の人と同じように、自分の利益と公的な利益のバランスをとりながら生きている、しかしシリアスでハードな状況になった時に、思いもよらない魂の輝きや欲望の暗い深淵を見せる」という複雑さがキャラクターの面白みである、という場合、流石にAIには荷が重いわけだ。いくらいい感じに文章をでっち上げられても、本質的な薄っぺらさは隠せない。上記のシーンでは、まだタティオンというキャラは、もっと取り繕ってほしいわけだ、作者である自分としては。レカがルゥリィを殺すシーンでのルゥリィ本人の振る舞いはいい。しかしレカの葛藤はこのシーンで始末をつけすぎだ。ここまで覚悟をさせられるなら、タティオンの執務室にかえってきたときに、もっと超然とした反抗をするだろう。
つまり、先のプロットにある「タティオンのバランス感覚を、欺瞞と偽善だと断じて、タティオンに反抗するレカ」という情報がごっちゃになっているわけだ。作者としては、この時点ではまだレカというキャラはタティオンの欺瞞に絡め取られていてほしいわけだ。
つまり、まあ、まだLLMは完全にプロ級の出力ができているわけではないということだ。o1Proならもしかしたらできてしまうのかもしれないが、Claudeで今の所自分は満足しているし、Proではないo1を使ってみて、Claudeの方が小説に関してはずっとクオリティの高い文章を出してくれると思ったし、検証のためだけに3万円は出せないなあ。