見出し画像

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モデルを使用しました。

結果

出力された小説を掲載します。執筆には、最近マイブームの手法を利用しました。それはまた後で記事にします。

あらすじ

廃墟化した浅草に住む少女が、バレンタインデーという文化を初めて知り、毎週末やってくるボランティアの少年にプレゼントをする。

本文

忘れられた街で

浅草は廃墟と化していた。かつては賑やかな町並みだったはずなのに、今や崩壊した建物の間を、風が嘆くように通り過ぎる。浅草寺の塔は依然として聳おっていたが、その周囲は荒廃した世界が広がっていた。人々は地上から去り、廃墟となった地下鉄や建物の中に暮らすようになった。そんな世界で、少女・凛奈(りんあ)は、毎日を過ごしていた。

1. 僚属的な日常

凛奈は、浅草の廃墟で暮らす少女だった。彼女は、廃墟となった町の一角にある小さなコミュニティで、生活していた。このコミュニティには、大人たちと呼ばれる人々が暮らしており、凛奈は彼らの子どもとして成長してきた。

「凛奈ちゃん、今日も来るのか?」
そんな声が、凛奈を待っていた。彼女は、廃墟の入り口で、少年・洸一(こういち)に出会う。

洸一は、毎週末、廃墟にやってくるボランティアだった。彼は、大人たちのリーダーである柊(ひいらぎ)さんと一緒にお菓子を作りに来るという。凛奈は、そんな洸一に憧れを抱いていた。

「はい、行きましょう!」
凛奈は、洸一と柊さんと一緒に、廃墟の奥深くへと歩む。

2. バレンタインデーの発見

ある日、凛奈は、廃墟の一角で、奇妙なものを発見した。それは、崩壊したお店の什器の間に、古びたチョコレートの箱が残されていた。箱には、赤いリボンが付いており、カードのようなものが一緒についていた。

「これは……?」
凛奈は、箱を開ける。中には、溶けて固まったチョコレートが残っていた。カードには、"バレンタインデー"という文字が書いてあった。

「バレンタインデー……?」
凛奈は、聞いたことのない言葉に首を傾ける。

柊さんが、そんな凛奈の姿を遠目に見た。彼女は、凛奈に近づいて言った。

「バレンタインデーは、毎年2月14日に祝われる日だ。人々は、愛する人へ気持ちを伝え合う日なんだ」

「気持ちを伝える……?」
凛奈は、そんな言葉に心を躍らせた。

3. 心のプレゼント

「今年は、バレンタインデーを一緒に作ろうか?」
柊さんが提案したその言葉に、凛奈の心は高鳴った。

「はい!お願います!」

凛奈は、チョコレートを作るため、柊さんと洸一と共に材料を集めに行った。しかし、廃墟の町で材料を集めることは容易ではなかった。彼らは、崩壊したお店や工場を捜索し、ついに必要な材料を集めることができた。

「これで、チョコレートを作ることができますか?」
凛奈は、材料を並べて聞いた。

「そうだ。だが、チョコレートを作るには、特別な技が必要だ」

4. 初めてのチョコレート作り

凛奈は、チョコレート作りに励んだ。彼女は、材料を混ぜ合わせ、温め、形を作り……しかし、何度やっても失敗ばかりだった。

「大丈夫ですか?手伝いますか?」
洸一が、凛奈の隣で言った。

「ありがとう!」

凛奈は、洸一の手伝いを得て、ようやくチョコレートを作り上げた。しかし、その形は歪み、味も思ったほどではなかった。

「でも、きっと、受け取る人は喜んでくれますよ」

5. entrega

2月14日。バレンタインデーの日を迎え、凛奈は、作ったチョコレートを洸一に渡すため、彼が来るのを待っていた。

「凛奈ちゃん、今日も来てやったぞ」

「洸一さん!」

凛奈は、作ったチョコレートを洸一に渡す。しかし、その表情は不安だった。

「これは……バレンタインデー用のプレゼントです」

洸一は、チョコレートを受け取り、包装を開ける。中には、歪んだチョコレートが入っていた。

「これは……凄くうまい!」

「本当ですか?」

「うん。ありがとう、凛奈ちゃん。このチョコレートは、最高だ」

6. 未来への約束

凛奈は、チョコレートを渡すことで、自分の気持ちを伝えられたことに気が付いた。彼女は、洸一に感謝の気持ちを込めたプレゼントを届けることができたのだ。

「この町は、まだ捨て去られていません。私たちがいれば、未来があります」

終わり

浅草の廃墟は、人々の生活と希望を育んでいた。凛奈は、バレンタインデーという文化を知り、初めてのプレゼントを作り、自分の心を伝えられた。この廃墟の町で、少女と少年の心は、やさしく結ばれた。

考察

蒸留モデルの性能は低い

蒸留モデルということもあり、GPT-3程度という体感でした。別途、o1で同様の手法で出力していたのですが、比べ物になりません。

出力される文章の長さも指定より短く、明らかな誤字、文脈上の矛盾、現実的な論理の破綻が見られます。

例えば「凛奈(りんあ)」はルビの間違い。

洸一のセリフ「凛奈ちゃん、今日も来るのか?」は、来るのは洸一の方なのでおかしい。

「それは、崩壊したお店の什器の間に、古びたチョコレートの箱が残されていた。」は主語が2つのねじれ文になっている。

洸一にあげるチョコレートを洸一と一緒に作っている。

などなど、この短い文章でも挙げればキリがありません。

しかもプロンプトで細かく指示をしても反映されず、文章の後半で同じ文を繰り返す減少が多発したので、簡単なプロンプトに修正して生成した中でチェリーピックしたのが上記の文章です。

実用性は低いと言わざるを得ません。

ローカルLLMとしての評価

ChatGPTなどの出力に慣れてしまっているのでこのレベルでは実用性が乏しいと感じてしまいますが、ローカルで動作できるという点にはさまざまなメリットがあります。

例えば、入力・出力内容を検閲されないので、ChatGPTなどでは出力しにくい文章を生成する目的には使える可能性があります。

またAIエージェントのように内部で何度もLLMの出力を利用するケースでは、外部APIの料金を気にしなくていいのは大きな利点です。

うまくAIエージェントを組めば、より自然な小説を書ける可能性があります(が、そんな工夫をしている間に高性能なモデルが出てくるでしょう)。

終わりに

今回、生成された小説を掲載しましたが、その前に「あらすじ」を載せたことには気付いていただけたでしょうか。

LLMの高性能化が進み、もはやAI小説は氾濫期を迎えています。大量に長編小説が生成される未来はすぐそこです。

しかしそれを読むにはリスクがあります。中身のクオリティが担保されているかが分からないからです。そもそも小説というものは読んでみなければ中身が分からないメディアですから、そこのハードルを下げる工夫が必要です。

その手段の一つとしてあらすじは有効だと思います。文庫本を買う時には、裏に書いてあるあらすじを読んで買うかどうか決めますよね。それが面白ければ買うし、うーんと感じたら買わない人が多いと思います。

つまり、あらすじで差別化できれば、読んでもらいやすくなるはずです。

逆に、とにかく大量に小説を生成するという戦略は、その中身が本当に良いものなのか担保されにくいので、あまり読まれないでしょう。もしそこに200字のあらすじを付けたところで、100本あったら2万字です。あらすじですら全部に目を通してくれる人はいないでしょう。

AI小説で差別化するなら、まずは良い物語を1つ作ることです。そこでセンスを磨かずに、やみくもに「数撃ちゃ当たる」でやってもPDCAサイクルは回りません。

あなたの作家としての成長ワークフローを適切に構築しましょう。

いいなと思ったら応援しよう!

この記事が参加している募集