wanabi-24B

wanabi-24B は、小説執筆支援に特化してファインチューニングされた日本語大規模言語モデルです。

このモデルは、mistralai/Mistral-Small-24B-Base-2501 をベースとし、日本語の小説関連テキストデータを用いて継続的に学習されています。アイデア出しから本文生成、文脈に沿った続きの生成まで、小説執筆の様々なプロセスをサポートすることを目指しています。

現在のバージョン: v0.2(2025/05/09)公開

  • 開発状況: 本モデルは現在も開発・学習の途上であり、v0.2 はv0.1より2.5倍学習が進んでいます。

v0.1

  • 開発状況: 本モデルは現在も開発・学習の途上であり、v0.1 はその初期リリース版です。今後、学習のチェックポイントごとに順次バージョンアップを行い、性能向上を目指します。
  • 提供形式: 現在、GGUF (Q4_K_M) 形式のみ提供しています。非量子化バージョンは全ての学習が完了次第、アップロードする予定です。
  • Preview版からの進化: 以前公開していた Preview 版をご利用・テストいただいた皆様、誠にありがとうございました。皆様からのフィードバックを参考に、データセットを改良し、本バージョン (v0.1) では以下の新機能や改善を導入しています。

🚀 Project Wannabe との連携 (強く推奨)

このモデルは、専用のデスクトップアプリケーション Project Wannabe と連携して使用することを強く推奨します。Project Wannabe は、wanabi-24B の能力を最大限に引き出すための GUI を提供し、以下で説明する機能を直感的に利用できるように設計されています。

⚠️ 重要: 現在公開されている wanabi-24B v0.1 の全機能(特にオーサーズノート、新しい続き生成プロンプト、レーティング、セリフ量指定)を利用するには、Project Wannabe を更新する必要があります。 Project Wannabe を使用することで、以下で説明する詳細なプロンプト形式を意識することなく、モデルの機能を活用できます。

✨ 新機能

wanabi-24B v0.1 は、以下の主要なタスクを実行できます。Preview版から機能が追加・改善されています。

  1. オーサーズノート機能 (新):

    • 目的: 次に起きる展開、行動、心情描写など、今後おおよそ1000文字以内に起こるような直近の内容を記述することで、続きの文章生成をより細かく誘導します。小説全体の構造を示すプロットとは異なります。
    • 適用: 続き生成 (CONT) タスクのプロンプトに組み込まれます。
  2. レーティング機能 (新):

    • 目的: 生成内容のレーティング(general または r18)を指定します。
    • 適用: 全てのタスク (GEN, CONT, IDEA) の指示 (Instruction) の末尾に レーティング: {指定値} が付与されます。Project Wannabe では「詳細情報」タブで設定された値が優先されます。
  3. セリフ量指定機能 (新):

    • 目的: 生成される文章中のセリフの割合を「指定なし」「少ない」「やや少ない」「普通」「やや多い」「多い」から選択します。(現在のv0.1ではまだ完全に反映されませんが、将来のバージョンでの対応を見据えた機能です。)
    • 適用: 「指定なし」以外が選択された場合、本文生成 (GEN) および続き生成 (CONT) タスクのプロンプトの入力 (Input) 部分(参考情報ブロック内)に # セリフ量: {指定値} が含まれます。

✨ 主な機能と改善点

  1. 本文生成 (GEN):

    • 指示に加え、任意で与えられるメタデータ(タイトル、キーワード、ジャンル、あらすじ、設定、プロット)や セリフ量レーティングに基づいて小説本文を生成します。
    • メタデータなしで自由に生成することも可能です。
  2. 続き生成 (CONT):

    • 与えられた本文の続きを、任意で与えられるメタデータ、セリフ量レーティング、そして新たに追加された オーサーズノート を考慮しながら生成します。
    • プロンプト構造を大幅に改善: 従来の (参考情報/本文)応答 形式から、より文脈を捉えやすく制御性を高めることを目指し、[ (参考情報/本文主要部) → オーサーズノート(任意) → 本文末尾約3行 ]応答 という形式に変更しました。Project Wannabe の設定で参考情報と本文主要部の順序も変更可能です。
  3. アイデア生成 (IDEA):

    • 任意で与えられるメタデータの一部(または無し)と レーティング を基に、完全な小説のアイデア(タイトル、キーワード、ジャンル、あらすじ、設定、プロット)を生成します。
    • (セリフ量はこのタスクには影響しません。)

💻 学習の詳細

ベースモデル

学習フレームワーク

学習手法

  • 手法: Supervised Fine-tuning (SFT)
  • 量子化・アダプター: QLoRA (4-bit)
    • lora_rank: 128
    • lora_alpha: 256
    • lora_dropout: 0.05
    • lora_target: all (全ての線形層)
  • 精度: bf16
  • シーケンス長: 32768
  • バッチサイズ: per_device_train_batch_size=1, gradient_accumulation_steps=24 (実効バッチサイズ 24)
  • 最適化:
    • Optimizer: PagedAdamW (8-bit)
    • Flash Attention 2: 有効 (fa2)
    • Unsloth Gradient Checkpointing: 有効 (use_unsloth_gc: true)
    • Liger Kernel: 有効 (enable_liger_kernel: true)
  • 学習率:
    • learning_rate: 3.0e-5
    • lr_scheduler_type: cosine_with_restarts
    • lr_scheduler_kwargs: {"num_cycles": 5}
    • warmup_ratio: 0.03

📝 プロンプト形式 (mistral_small テンプレート)

本モデルは LLaMA-Factory の mistral_small チャットテンプレート形式で学習されています。推論時も同様の形式を推奨します。Project Wannabe を使用する場合は、以下の形式を意識する必要はありません。

基本構造: <s>[INST]{Instruction}\n{Input}[/INST]{Output}</s>

  • <s>, </s>: 開始・終了トークン
  • [INST], [/INST]: ユーザー指示の開始・終了を示すタグ(タグと内容の間にスペースは入りません
  • {Instruction}: タスク指示(例: 「小説を生成してください。」) + レーティング
  • {Input}: タスクに必要な入力情報(メタデータ、本文の一部など)。Instruction と Input の間は改行1つ (\n)。
  • {Output}: モデルが生成すべき応答テキスト。

形式例:

1. 本文生成 (GEN):

  • 例 (メタデータ・セリフ量あり):
    <s>[INST]以下の情報に基づいて小説本文を生成してください。 レーティング: general
    # タイトル:
    星降る夜の魔法使い
    # キーワード:
    ファンタジー
    魔法学園
    # セリフ量: 多い[/INST]{生成される本文}</s>
    
  • 例 (メタデータなし):
    <s>[INST]自由に小説を生成してください。 レーティング: general[/INST]{生成される本文}</s>
    

2. 続き生成 (CONT):

  • 例 (参考情報・オーサーズノートあり):

    <s>[INST]参考情報と本文を踏まえ、最後の文章の自然な続きとなるように小説を生成してください。 レーティング: general
    【参考情報】
    ```
    # ジャンル:
    学園コメディ
    # セリフ量: 普通
    ```
    【本文】
    ```
    廊下を歩いていると、角から飛び出してきたクラスメイトとぶつかってしまった。彼女の手には大量のプリントが。
    「わわっ、ごめんなさ――」
    ```
    【オーサーズノート】
    ```
    ぶつかった衝撃でプリントが宙を舞う。
    主人公は慌てて拾うのを手伝う。
    相手の女の子は少しドジな人気者。
    ```
    彼女は顔を赤らめて言った。[/INST]{生成される続きの本文}</s>
    

    (注: 【参考情報】と【本文】の順序は Project Wannabe の設定で変更可能です)

  • 例 (本文主要部・末尾のみ):

    <s>[INST]本文を踏まえ、最後の文章の自然な続きとなるように小説を生成してください。 レーティング: r18
    【本文】
    ```
    暗い路地裏、壁に押し付けられ、彼の熱い吐息が耳にかかる。抵抗しようにも、力の差は歴然だった。
    「……やめ……」
    か細い声は、夜の闇に吸い込まれていく。
    ```
    唇が、ゆっくりと近づいてきて――[/INST]{生成される続きの本文}</s>
    

3. アイデア生成 (IDEA):

  • 例 (一部メタデータあり):
    <s>[INST]以下の情報に基づいて、完全な小説のアイデア(タイトル、キーワード、ジャンル、あらすじ、設定、プロット)を生成してください。 レーティング: general
    # ジャンル:
    SF
    サイバーパンク[/INST]# タイトル:
    電脳都市の孤独な探偵
    
    # キーワード:
    サイバーパンク
    探偵
    アンドロイド
    巨大企業
    陰謀
    
    # ジャンル:
    SF
    サイバーパンク
    ハードボイルド
    
    # あらすじ:
    雨の降りしきる2077年のメガシティ。失意の探偵ジャックは、失踪したアンドロイド歌手の捜索依頼を受ける。調査を進めるうちに、彼は都市を裏で操る巨大企業の陰謀に巻き込まれていく。
    
    # 設定:
    舞台は超高度技術と格差社会が共存する未来都市。人々は脳インプラントでネットワークに常時接続されている。アンドロイドは人間と見分けがつかないほど進化している。
    
    # プロット:
    依頼受注 -> 情報収集と関係者への聞き込み -> 妨害と襲撃 -> 核心に迫る証拠の発見 -> 巨大企業との対決 -> 衝撃の結末</s>
    
  • 例 (メタデータなし):
    <s>[INST]自由に小説のアイデア(タイトル、キーワード、ジャンル、あらすじ、設定、プロット)を生成してください。 レーティング: general[/INST]{生成されるアイデア一式}</s>
    

⚠️ 制限事項と注意点

  • 開発中のモデル: 本モデルは現在も開発途上であり、v0.1 は初期リリース版です。性能や安定性は今後のバージョンで向上する可能性があります。Preview版をご利用いただいた皆様のご協力に感謝いたします。
  • 偏り: 学習データの特性上、生成内容が特定のジャンル、表現、展開に偏る可能性があります。
  • 不適切な内容: 学習データには多様なテキストが含まれるため、未成年者の閲覧に適さない、または不快感を与える可能性のある文章が生成されることがあります。レーティング機能で制御を試みていますが、完全ではありません。
  • 品質の限界: 生成される文章の多様性、一貫性、文脈への追従性には限界があります。特に長い文章の生成では破綻する可能性があります。オーサーズノート機能などでの誘導をお試しください。
  • 利用上の注意: 本モデルは研究および実験的な目的で提供されています。利用者は、適用される法律および規制を遵守する責任を負います。違法な目的や他者の権利を侵害する目的での使用は固く禁じます。
  • 自己責任: 本モデルの使用によって生じたいかなる結果についても、開発者は一切の責任を負いません。全て自己責任においてご利用ください。

今後の予定

  • 継続的な学習: 現在も拡張データセットを用いた学習を継続しており、チェックポイントごとに順次バージョンアップを公開予定です。
  • 小規模モデルの検討: より軽量で利用しやすい小規模なモデル(12Bクラスなど)での学習も検討しています。

(ロードマップは変更される可能性があります)

Downloads last month
97
GGUF
Model size
23.6B params
Architecture
llama
Hardware compatibility
Log In to view the estimation
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support