DeepSeek-R1をローカルで動かして小説を執筆してみた
DeepSeek-R1は、中国のDeepSeek社が開発した大規模言語モデル(LLM)です。1月20日に公開され、OpenAI-o1と同等の性能をもつとされています。モデル自体はMITライセンスのオープンソースで公開されており、誰でも利用できます。
2024年12月6日にリリースされたOpenAI-o1は「非常に優秀だ」という共通認識があったので、それと同等のモデルがオープンソースで公開されたことに衝撃が走りました。
ただしメインのモデルである「DeepSeek-R1」のサイズは671Bと非常に大きく、そのままではローカルで実行できません。使いたい場合は、公式から提供されているAPIを利用する必要があります。
一方で、モデルの性能をなるべく保ちながら小型化する「蒸留」という技術で、一般的なPCのローカル環境で動作できる小型化モデルが公式から公開されています。分かりやすく言えば、現時点でトップクラスのLLMが自分の家で動かせるわけです。夢が広がりますね。
そこで今回は、その小型化モデル(厳密には、それを有志がggufという使いやすい形式に変換して公開したもの)を利用して、ローカルPCの環境で実行してみます。
お知らせ
ここで、3つお知らせ。
1) インプレス様より「小説を書く人のAI活用術 AIとの対話で物語のアイデアが広がる」が刊行されております!
山川健一先生、今井昭彦先生との共著で、私は生成AIを活用した具体的な執筆方法の解説などしております。ぜひぜひご一読ください!
2) noteのマガジン「かもめAI小説塾」ではAIを活用した小説の執筆法を公開しております。私の手法は「作家らしさ」を作品に落とし込むことを前提としているので、AIを使わずに人間が書く場合にも応用できるテクニックになっています。ぜひ他の記事もご覧ください。
3) 「AI小説に興味のある人が集まったらいいな」という軽い気持ちでDiscordのサーバー「鴎文街」を作ってみました。読みは「おうぶんがい」です。
相談や質問に葦沢が必ず答えるというものではありませんが、情報共有や交流の場になればと思います。
現在「バレンタインデー」をお題にしたAI小説を募集する企画を開催中です。お気軽にご参加ください。
この記事の要約
蒸留モデル(14B)は、体感でGPT-3~GPT-3.5のレベル。現時点では、小説に向いているとは言えない性能。
この性能がローカルでそれなりの速さで動かせるのは魅力的。
ローカルでAIエージェントを動かして文章を改善するサイクルを回せると面白そう。
方法
環境構築
ローカルでの実行は、以下のKohya S.さんの記事を参考にさせていただきました。感謝です。
基本的には上記の記事にしたがって、llama.cppを利用しました。私のPCのGPUはRTX3060 (12GB版)なので、記事でおすすめされている DeepSeek-R1-Distill-Qwen-14B-ggufのQ4_K_Mモデルを使用しました。
結果
出力された小説を掲載します。執筆には、最近マイブームの手法を利用しました。それはまた後で記事にします。
あらすじ
廃墟化した浅草に住む少女が、バレンタインデーという文化を初めて知り、毎週末やってくるボランティアの少年にプレゼントをする。
本文
考察
蒸留モデルの性能は低い
蒸留モデルということもあり、GPT-3程度という体感でした。別途、o1で同様の手法で出力していたのですが、比べ物になりません。
出力される文章の長さも指定より短く、明らかな誤字、文脈上の矛盾、現実的な論理の破綻が見られます。
例えば「凛奈(りんあ)」はルビの間違い。
洸一のセリフ「凛奈ちゃん、今日も来るのか?」は、来るのは洸一の方なのでおかしい。
「それは、崩壊したお店の什器の間に、古びたチョコレートの箱が残されていた。」は主語が2つのねじれ文になっている。
洸一にあげるチョコレートを洸一と一緒に作っている。
などなど、この短い文章でも挙げればキリがありません。
しかもプロンプトで細かく指示をしても反映されず、文章の後半で同じ文を繰り返す減少が多発したので、簡単なプロンプトに修正して生成した中でチェリーピックしたのが上記の文章です。
実用性は低いと言わざるを得ません。
ローカルLLMとしての評価
ChatGPTなどの出力に慣れてしまっているのでこのレベルでは実用性が乏しいと感じてしまいますが、ローカルで動作できるという点にはさまざまなメリットがあります。
例えば、入力・出力内容を検閲されないので、ChatGPTなどでは出力しにくい文章を生成する目的には使える可能性があります。
またAIエージェントのように内部で何度もLLMの出力を利用するケースでは、外部APIの料金を気にしなくていいのは大きな利点です。
うまくAIエージェントを組めば、より自然な小説を書ける可能性があります(が、そんな工夫をしている間に高性能なモデルが出てくるでしょう)。
終わりに
今回、生成された小説を掲載しましたが、その前に「あらすじ」を載せたことには気付いていただけたでしょうか。
LLMの高性能化が進み、もはやAI小説は氾濫期を迎えています。大量に長編小説が生成される未来はすぐそこです。
しかしそれを読むにはリスクがあります。中身のクオリティが担保されているかが分からないからです。そもそも小説というものは読んでみなければ中身が分からないメディアですから、そこのハードルを下げる工夫が必要です。
その手段の一つとしてあらすじは有効だと思います。文庫本を買う時には、裏に書いてあるあらすじを読んで買うかどうか決めますよね。それが面白ければ買うし、うーんと感じたら買わない人が多いと思います。
つまり、あらすじで差別化できれば、読んでもらいやすくなるはずです。
逆に、とにかく大量に小説を生成するという戦略は、その中身が本当に良いものなのか担保されにくいので、あまり読まれないでしょう。もしそこに200字のあらすじを付けたところで、100本あったら2万字です。あらすじですら全部に目を通してくれる人はいないでしょう。
AI小説で差別化するなら、まずは良い物語を1つ作ることです。そこでセンスを磨かずに、やみくもに「数撃ちゃ当たる」でやってもPDCAサイクルは回りません。
あなたの作家としての成長ワークフローを適切に構築しましょう。