ローカルLLMで小説を書く:方法と ツール
AIで本を書くとは、「小説を書いて」と頼んで、その結果をコピーすることではありません。それでは、ぬるいおかゆのような、味気なくまとまりのない文章になってしまいます。本来の使い方は、執筆のパートナーとして活用することです。構成を練り、行き詰まった場面を進め、数百ページにわたって登場人物の一貫性を保つのをモデルが手伝います。このガイドでは、ローカルLLMでそれを実践する方法を紹介します。原稿が自分のマシンを離れることはなく、文体フィルターによって文章の持ち味が削られることもありません。
#クラウドではなくローカルAIで本を書く理由
小説には何か月もの作業が詰まっています。その原稿がモデルの学習用に取り込まれたり、暴力的、暗い、あるいは性的に露骨な場面があるという理由で受け付けられなかったりすることは望まないでしょう。一般向けのクラウドサービスにはコンテンツフィルターや利用ポリシーがあり、成人向けのフィクションやノワール小説では、最悪のタイミングで創作の勢いをたびたび削いでしまいます。
ご自身のマシンでLLMを動作させることで、両方の問題を一度に解決できます。テキストはディスク上に保持され、下書きもプロットのネタバレも第三者に送信されません。また、モデルの選択も自由で、スタイルの制限が解除されたバージョンを含め、ご要望のシーンを説教や拒否なしに生成するモデルも利用できます。長期プロジェクトにとって見逃せない利点として、月々のサブスクリプションや、第12章を10回目に微調整している間もカウントされ続けるトークンメーターの心配もありません。
- 完全なプライバシー
- 原稿、メモ、物語の筋書きはローカルに保存されます。第三者のモデルの学習に使われることはありません。
- スタイルフィルターなし
- 成人向けフィクション、ホラー、露骨な描写のスリラー:モデルは道徳的な理由で拒否することなく、場面に必要な内容を書きます。
- 固定コスト
- 機器の購入費用を回収した後は、従量課金なしで好きなだけ下書きを生成できます。
- オフラインで利用可能
- 接続に依存せず、電車の中やネットワークのない山小屋で執筆する。
#前提条件:ハードウェアおよびスタック
お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 30日間返金対応
創作はコーディングほど多くのリソースを必要としません。必要なのは市場で最大のモデルではなく、フランス語を巧みに扱い、文体を維持できるモデルです。12GBのGPU(RTX 3060 12GB、RTX 4070)でも、Q4_K_Mの12B〜14Bモデルを快適に実行でき、散文を書くには適した規模です。16GB(RTX 4080)なら24Bモデルまで扱えます。24GB(RTX 4090)やユニファイドメモリを搭載したMac M4 Proなら32Bモデルも扱え、長い場面では表現が格段に繊細になります。
- 3B (~2 GB VRAM)
- ちょっとした困りごとの解決や、言い換えに。章全体で文体を維持するには短すぎます。
- 7B(~5 GB)
- 8GBの控えめな構成でも、ブレインストーミングや短い場面の執筆に利用できます。
- 14B (~9 GB)
- 12 GBのGPUでバランスの取れた選択肢:フランス語でまずまずの文章を書けて、コンテキストの内容もよく保持します。
- 32B(約19GB)
- 本格的な小説を書くなら、品質とローカルでの実行のバランスが最もよい選択肢です。24 GB以上のVRAM、またはユニファイドメモリを搭載したMacで利用できます。
ソフトウェア面で最もシンプルな構成は、Ollama をデーモンとして動かし(http://localhost:11434 で待ち受けます)、インターフェースを組み合わせる方法です。気軽に会話を続けるなら Open WebUI や LM Studio が適しています。本格的な執筆プロジェクトでは、SillyTavern のように登場人物やコンテキストの継続的な保持を考慮したインターフェースがあると、作業が格段に楽になります(「さらに詳しく」を参照)。
#フランス語での文章作成が最も得意なローカルモデルは?
文学的なフランス語の文章を書く能力は、モデルによって異なります。主に英語で学習された多くのモデルは、正しいものの平板な文章を生成し、英語を直訳したような言い回しを使います(「Elle prit une profonde respiration」)。フィクションを書く場合は、多言語に強いと評価されているモデルや、文章作成向けにファインチューニングされた派生モデルを優先してください。
- Mistral Small(24B)
- フランス発で、自然なフランス語表現に優れています。小説を書く際にまず選ぶ候補で、長い文章でも文体をしっかり維持します。
- Gemma (12B–27B)
- 文章の質が良く、文体も比較的柔軟です。十分なVRAMがあれば、27Bモデルは会話文も十分うまく書けます。
- Qwen(14B–32B)
- 能力が非常に高く、長いコンテキストも余裕を持って扱えます。フランス語も良好ですが、Mistralより「自然さ」で劣ることがあります。
- 創作向けにファインチューニングされた派生モデル
- OllamaやHugging Faceでは、「writer」/「storyteller」系の派生モデルや検閲制限を解除したモデルが、ベースモデルでは拒否されるような場面を執筆します。執筆するジャンルに応じて試してみてください。
#章ごとに進める実用的な方法
初心者が陥りがちな間違いは、小説を丸ごと書くように頼むことです。LLMは全体を見通すことができず、短く、範囲が明確なタスクを得意とします。うまくいく方法は、常に構成の主導権を保ちながら、全体から細部へと段階を重ねて進めることです。作者はあくまであなたです。モデルは、あなたが方向性を指示する脚本家であり、初稿の役割も担います。
- 011. 物語の概要とテーマ題材、ジャンル、物語の中心となる課題を2文でまとめてください。切り口を見つけるために、モデルに読者を引きつける導入文を3〜4案出してもらい、その後、自分の案を確定してください。それが、以後の作業すべての指針になります。
- 022. 幕ごとに構成し、次に章ごとに構成する3幕構成に分けるよう依頼し、その後、各幕を章に展開してください。各章には、要約の一文(「何が起きるか」)と、物語上の重要な変化を示す一文(「何が変わるか」)を添えてください。こうして得られた1ページのあらすじを、自分の好みに合わせて書き直します。
- 033. 章のビートシート章を書く前に、その章のあらすじを5〜8個の「ビート」、つまりシーンの細かな展開に分けてください。モデルは、「第4章を書いて」という指示よりも、具体的なビート(「レアが手紙を見つけ、嘘に気づく」)を与えた方が、はるかにうまく書けます。
- 044. ビートごとに初稿を書くプロースをビートごとに生成し、現在のビートと登場人物の概要を提示します。次のビートに進む前に、各セグメントを修正または再生成してください。章を一度に書き出すのではなく、縫い合わせるように進めてください。
- 055. レビュー段階手書きと機械を使って章を書き終えたら、モデルに観点を絞った見直しを依頼してください。「繰り返しを見つけて」「会話を引き締めて」「時系列の矛盾を指摘して」といった依頼です。内容を確認せずに、全体の書き直しを受け入れることは決してしないでください。
#キャラクター設定資料と世界観設定集
小説の整合性を支えるのは「バイブル」と呼ばれる設定資料集です。書き手とモデルが常に参照するための文書です。これがなければ、ヒロインの目が第2章では緑、第18章では青になったり、近所のカフェの名前が変わったりしてしまいます。構想を立てる段階からこの文書を作り、執筆が進むにつれて内容を充実させてください。
- キャラクターのプロフィール
- 名前、年齢、外見を3つの要素で、声/口癖、目的、内面の傷、成長の軌跡。主要キャラクター一人につき半ページ。
- 世界観設定資料
- 繰り返し登場する場所、世界のルール(SF/ファンタジーの場合)、出来事の時系列、重要なアイテム。
- 文体の用語集
- 「作品の語り口」を示す二、三文の例文。各セッションで文体を合わせるために、プロンプトの先頭に貼り付けます。
- 物語の整合性を保つための記録
- 各章につき1行で、その時点で各登場人物が何を知っているかを記録します。これにより、明かすタイミングが早すぎたり、同じことを二度明かしたりするのを防げます。
実際には、シーンを書く前に、関連する資料を一つ、または複数、プロンプトの冒頭に貼り付けます(「登場するキャラクターは以下のとおり…では、次の展開を書いて」)。これは手作業の RAG です。モデルが「覚えている」ことを期待するのではなく、必要なコンテキストを適切なタイミングで渡します。
#300ページにおいて一貫性を保つ
本当の技術的課題はここにあります。300ページの小説は約12万語、つまり約18万トークンに相当し、どのローカルモデルのコンテキストウィンドウも大幅に超えます。モデルがあなたの本を丸ごと「読んだ」状態にはできません。したがって、一貫性はモデルの記憶によって保たれるのではなく、場面ごとに適切なコンテキストを欠かさず与え直すことで保たれます。
- カスケード式の要約
- 各章につき一文の要約を維持してください。第N章を書き始める前に、その章の全文ではなく、それ以前の各章の要約を提供してください。10行あれば、物語の状況を把握するのに十分です。
- スライディングウィンドウ
- 直前の1〜2章の全文(文体や章のつなぎを保つため)と、それ以外のすべての部分の要約をモデルに渡してください。コンテキストを膨らませすぎずに、直前の展開との連続性を保てます。
- プロンプトの先頭に作品設定資料を置く
- そのシーンに登場する人物の設定資料を、毎回必ず入れてください。これが細部の矛盾を防ぎます。
- 観点を絞った確認
- 定期的に、「このあらすじの要約と矛盾する点はありますか?」という具体的な質問を添えて、モデルに章を読み直してもらってください。質問の範囲を明確にすると、モデルは事実関係の誤りをうまく見つけられます。
#クリエイティブ設定:温度とサンプリング
サンプリングパラメータは生成結果を大きく変えます。フィクションでは、文章の整合性を保ちながら、多様性や意外性を引き出したいところです。主な調整手段は温度です。低い値(0.3–0.6)では、控えめで予測しやすい文章になり、技術的な記述や要約に適しています。高い値(0.8–1.1)では発想の自由度が増す一方、脱線のリスクも高まります。
- 温度 0.8~1.0
- 物語の文章に適した範囲です。生き生きとした表現になり、内容の整合性も保てます。要約や資料シートには 0.5 まで下げてください。
- top-p 0.9–0.95
- 語彙の多様性を十分に保ちながら、確率が極めて低い選択肢を除外します。
- 繰り返しペナルティ ~1.1
- LLM が同じ言い回しを繰り返す癖を抑えます。値を上げすぎないようにしてください。上げすぎると、文体が不自然になります。
- 応答の長さ
- 生成する長さを、物語の一つのビートや一つのシーンに収まる範囲に制限してください。非常に長い出力は脱線し、話の筋を見失います。
#よくある落とし穴とトラブルシューティング
- 「AIが書いた」と分かる文章
- 「背筋に悪寒が走った」「何が待ち受けていようとも」といった書き癖です。こうした表現を使わないようプロンプトで明示し、AIらしさが表れる決まり文句は手作業で書き直してください。
- モデルは要約するだけで文章を書かない
- モデルは場面をたった3文で片付けてしまいます。場面ごとに、会話や五感に訴える細部を盛り込み、「説明するのではなく、描写して見せる」よう明示的に指示してください。
- 章の途中で話の筋を見失う
- コンテキストの容量を超えている兆候です。シーンを短くするか、VRAMに余裕があればnum_ctxを増やすか、整理した要約を使ってやり直してください。
- 生成の拒否や内容のマイルド化
- ベースモデルは過激な場面の描写を制限します。創作向けにファインチューニングされたモデルのバリエーションに切り替えるか、フィクションであることを明確にして指示を書き直してください。
- すべてのキャラクターが同じように話します
- 各キャラクターの「声」をまとめた設定シートを入力し、キャラクターごとに異なる話し方の会話を求めてください。声に出して読み返し、話し方が画一的になっていないか確認してください。
#さらに詳しく
この方法を快適な執筆環境にするために、本サイトの3つのガイドで、このガイドの内容をさらに掘り下げられます。SillyTavernは、継続して使うキャラクター設定と長いコンテキストを想定したインターフェースを提供しており、毎回すべてを手作業で貼り直すことなく、設定シートやシーンを管理するのに最適です。温度とサンプリングのガイドでは、モデルの創造性を細かく調整する方法を説明しています。また、ハードウェアの準備やインストールを一から始めるなら、ローカルLLMのインストールガイドに沿って、小説を書き始める前にOllamaの実行環境をきちんと整えられます。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。