commit f2dd36ff3b00048c904348e7fdf3e9dd86ebe5f5 Author: ModelHub XC Date: Sun Sep 6 13:14:17 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: kawaimasa/Wanabi-Novelist-12B-GGUF Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..68d8409 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,48 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_IQ3_XXS.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_Q3_K_M.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_Q6_K.gguf filter=lfs diff=lfs merge=lfs -text +imatrix/Wanabi_Novelist_12B_Q8_0.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_bf16.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_Q3_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_Q6_K.gguf filter=lfs diff=lfs merge=lfs -text +Wanabi_Novelist_12B_Q8_0.gguf filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..0e647d1 --- /dev/null +++ b/README.md @@ -0,0 +1,219 @@ +--- +license: apache-2.0 +language: ja +tags: +- japanese +- text-generation +- novel-writing +- mistral +base_model: +- kawaimasa/Wanabi-Novelist-12B +datasets: +- TFMC/imatrix-dataset-for-japanese-llm +pipeline_tag: text-generation +--- + +[Wanabi-Novelist-12B](https://huggingface.co/kawaimasa/Wanabi-Novelist-12B)のGGUF量子化モデルです。 +**[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)** とkoboldcppと組み合わせて使用することを強く推奨します。 + +実験的にimatrix量子化も合わせて提供しています。主に低量子化環境での理論上の性能向上が期待されますが、キャリブレーションデータに強く依存し、不適切なデータで量子化を行った場合実性能が悪化したという報告もあります。今回のモデルにおいて最低限のテストしか行っていないため適切な量子化が出来ているか未検証です。基本的にはノーマルの量子化(imatrixフォルダ外)を推奨します。 +imatrixのデータは[TFMC/imatrix-dataset-for-japanese-llm](https://huggingface.co/datasets/TFMC/imatrix-dataset-for-japanese-llm)と小説データを組み合わせて作成しています。 + +**Wanabi-Novelist-12B** は、小説執筆支援に特化してファインチューニングされた、日本語大規模言語モデルです。 + +このモデルは、専用デスクトップアプリケーション **[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)** と連携して使用することを前提に設計されています。アプリケーションが提供するGUIを通じて、ユーザーはアイデア出しから本文生成、続きの執筆まで、一貫した執筆体験を得ることができます。 + +ベースモデルには[`Mistral-Nemo-Base-2407`](https://huggingface.co/mistralai/Mistral-Nemo-Base-2407)を採用しました。 +**本モデルは[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)で使用することを想定した小説執筆特化モデルです。一般的なInstructモデルのような汎用的な指示応答性能はありません。** + +⚠️ 重要: 新モデル「Wanabi-Novelist-12B」を使用するには[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)のアップデートが必要です。モデル側のプロンプト仕様変更に対応するため、古いバージョンでは正しく動作しません。以前から本プロジェクトをご利用の方はご注意ください。 + +## ✨ 主な機能 +`Wanabi-Novelist-12B`は、[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)を通じて以下の3つの主要なタスクを実行します。各項目の具体的な説明は [Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)の[チュートリアル](https://github.com/kawaii-justice/Project-Wannabe/blob/main/docs/Quick_Start_Guide.md)をご確認ください。 + +1. **本文生成 (GEN)** + * タイトル、あらすじ、プロットといったメタ情報に基づいて、小説の冒頭や新たなシーンを生成します。メタ情報なしで、完全に自由に生成することも可能です。 + +2. **続き生成 (CONT)** + * 執筆済みの本文を読み込み、文脈に沿った自然な続きを生成します。オーサーズノート(短期的な展開指示)を用いることで、より細かく展開を誘導できます。 + +3. **アイデア生成 (IDEA)** + * キーワードやジャンルなど、断片的な情報から、小説の骨子となるアイデア(タイトル、あらすじ、プロット、設定など)を生成します。v2以前とは異なり、簡潔な内容やと途切れた文章からアイデアを生成できるようになりました。 + +これらのタスク実行時に、**レーティング (`general`/`r18`)** や **セリフ量の割合** を指定することで、生成される内容をさらに細かくコントロールできます。 + +## 主な特長とwanabi-v2からの進化点 +Wanabi-Novelist-12Bは、wanabi-v2の基本機能を継承しつつ、データセットの品質、モデルの基礎性能、そして生成の安定性を全面的に向上させました。 + +### 1. データセットの全面的刷新 +学習データの質と多様性を向上させるため、データセットをゼロから再構築しました。 + +* **多様な文体の学習:** Web小説のデータセットを**約2万4千件**まで拡張したのに加えて、新たに**青空文庫(約7千件)**のデータを追加しました。これにより、現代的な文体から格調高い表現まで、より幅広い文体への対応を目指しました。 +* **データ品質の改善:** 本文データをすべて再取得することで今まで本文に含まれていたノイズ(作者名や作品IDの混入など)を除去。さらに、小説の体裁に不可欠な**空行や字下げが適切に維持されるように**データ処理を改善しました。 +* **ジャンルの偏り是正:** Web小説データにありがちな女性向けジャンルへの偏りを緩和し、よりバランスの取れたデータ構成になるよう調整しました。 +* **高品質な合成メタデータ:** 300B以上のオープンウェイトモデルとSOTAレベルのLLM 8種類以上と20種類以上のプロンプトをランダムに組み合わせながら各小説に6種類のメタデータ(計18万件)を生成しよりユーザーの多様な入力を模倣することを目指しました。 + +### 2. 基礎性能 +* **ベースモデル:** [`Mistral-Nemo-Base-2407`](https://huggingface.co/mistralai/Mistral-Nemo-Base-2407) を採用しています。12Bパラメータながら、Mistralアーキテクチャによる高い言語理解能力を持っています。 + +注意:理論上のコンテキストは128Kまで対応していますが、学習時のコンテキストは最大32Kです。ロングコンテキストでは性能が低下する可能性があります。 + +### 3. 機能の改善と有効化 +ユーザーがより直感的に生成内容をコントロールできるよう、機能不全に陥っていた機能をモデルがサポートするように改善しました。 + +* **アイデアタスクの修正:** v2以前ではタイトル、あらすじ、プロット、設定などのアイデアの項目の欠落部分を生成することのみに特化しておりアイデアを膨らませることができず、実用的なアイデア生成が困難でしたが、上記の豊富なメタデータを利用して簡潔/不完全なアイデアを入力すると詳細なアイデアを生成するようにしました。。これにより、生成したいアイデアを簡単に記すだけで、それを膨らませた多様なアイデア案を作ってくれるようになりました。 +* **「セリフ量」指定機能の改善:** 従来は曖昧だったセリフ量の指定を、「**次に生成される文章**」のセリフ量を明示的に指定する形式に改善しました。これにより、シーンに応じた会話量の調整がより容易になりました。(以前は小説全体のセリフ量を計算していため、不安定でした。) +* **この先の展開についての指示・メモ:** 次の展開をわかりやすい名称で指示できるようになりました。(v2以前のオーサーズノートと同一機能ですが、名称をわかりやすくしました。) + +このモデルの能力を最大限に引き出すには、専用アプリケーション **[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)** の使用が不可欠です。 + +Project Wannabeは、本モデルが学習した特殊な指示形式(構造化プロンプト)を、ユーザーが意識することなくGUIから簡単に生成できるように設計されています。正しく形式を理解すればモデル単体での使用も可能ですが、煩雑なためProject Wannabeとの連携を強く推奨します。 + +## 💻 学習の詳細 + +### ベースモデル +* [mistralai/Mistral-Nemo-Base-2407](https://huggingface.co/mistralai/Mistral-Nemo-Base-2407) + +### 学習フレームワーク +* [LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory) + +### 学習設定 +
学習設定 (LLaMA-Factory) + +```yaml +# モデルとデータセット +model_name_or_path: mistralai/Mistral-Nemo-Base-2407 +dataset: wanabi_novelist_dataset_32K_len, wanabi_novelist_dataset_24K_len, wanabi_novelist_dataset_16K_len +eval_dataset: wanabi_novelist_dataset_for_eval_16K_len +template: mistral_small + +# 学習方法と出力先 +stage: sft +do_train: true +finetuning_type: lora # LoRA を使用 +output_dir: saves//Wanabi_Novelist_12B_v1 + +# LoRA 設定 +lora_target: all +lora_rank: 16 +lora_alpha: 32 +lora_dropout: 0.05 +use_rslora: False +seed: 260322 + +# シーケンス長とバッチサイズ +cutoff_len: 32768 +per_device_train_batch_size: 1 # バッチサイズは 1 +gradient_accumulation_steps: 64 # 勾配累積ステップ + +preprocessing_num_workers: 16 +# 最適化と混合精度 +flash_attn: fa2 # FlashAttention-2 を有効化 +use_unsloth_gc: true # Activation Offloading を有効化 +bf16: true + +# 学習パラメータ +learning_rate: 3e-5 +num_train_epochs: 1 +lr_scheduler_type: cosine_with_min_lr +lr_scheduler_kwargs: {"min_lr_rate":0.1} +warmup_ratio: 0.02 +logging_steps: 5 +save_steps: 100 +save_total_limit: 80 +optim: paged_adamw_8bit +weight_decay: 0.01 +max_grad_norm: 1.0 + +# その他の最適化 +enable_liger_kernel: true + +# eval +eval_steps: 100 +eval_strategy: steps +per_device_eval_batch_size: 1 +eval_accumulation_steps: 1 + +report_to: tensorboard +``` +
+ + +
+ +本モデルは LLaMA-Factory の `mistral_small` チャットテンプレート形式で学習していますが、[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)で使われる特定のフォーマットのみしかサポートされていません。一般的なチャットや指示応答には使えません。具体的なフォーマットは[ドキュメント](https://github.com/kawaii-justice/Project-Wannabe/blob/main/docs/prompt_logic.md) をご覧ください。またこれらの内容は[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)を使用する際は気にする必要はありません。 + +**基本構造:** +`[INST]{Instruction}\n{Input}[/INST]{Output}` +--- +
形式例をみる + +**1. 本文生成 (GEN):** +* **例 (メタデータ・セリフ量あり):** + ``` + [INST]以下の情報に基づいて小説本文を生成してください。 レーティング: general + # タイトル: + 星降る夜の魔法使い + # キーワード: + ファンタジー + 魔法学園 + # セリフ量: 多い[/INST]{生成される本文} + ``` +* **例 (メタデータなし):** + ``` + [INST]自由に小説を生成してください。 レーティング: general[/INST]{生成される本文} + ``` + +**2. 続き生成 (CONT):** +* **例 (参考情報・オーサーズノートあり):** + ``` + [INST]参考情報と本文を踏まえ、最後の文章の自然な続きとなるように小説を生成してください。 レーティング: general + 【参考情報】 + ``` + # ジャンル: + 学園コメディ + # セリフ量: 普通 + ``` + 【本文】 + ``` + 廊下を歩いていると、角から飛び出してきたクラスメイトとぶつかってしまった。彼女の手には大量のプリントがある。 + っ…まずい + 「わわっ、ごめんなさ――」 + ``` + 【この先の展開についての指示・メモ】 + ``` + ぶつかった衝撃でプリントが宙を舞う。 + 主人公は慌てて拾うのを手伝う。 + 相手の女の子は少しドジな人気者。 + ``` + 彼女は顔を赤らめて言った。 + 「ごめんなさい」 + そう言いながら…[/INST]{生成される続きの本文} + ``` + *(注: 【参考情報】と【本文】の順序は変更可能です)* + +**3. アイデア生成 (IDEA):** +* **例 (一部メタデータあり):** + ``` + [INST]以下の情報に基づいて、完全な小説のアイデア(タイトル、キーワード、ジャンル、あらすじ、設定、プロット)を生成してください。 レーティング: general + # ジャンル: + SF + サイバーパンク[/INST]# タイトル: + 電脳都市の孤独な探偵 + # キーワード: + サイバーパンク + 探偵 + アンドロイド + # ... (以下、生成されるアイデア一式) + + ``` +

+ +## ⚠️ 制限事項と注意点 + +* **汎用性の制限:** 本モデルは[Project Wannabe](https://github.com/kawaii-justice/Project-Wannabe)で使用することを想定した小説執筆特化モデルです。一般的なInstructモデルのような指示応答性能はありません。 +* **偏り:** 学習データの特性上、生成内容が特定のジャンル、表現、展開に偏る可能性があります。 +* **不適切な内容:** 学習データには多様なテキストが含まれるため、未成年者の閲覧に適さない、または不快感を与える可能性のある文章が生成されることがあります。レーティング機能で制御を試みていますが、完全ではありません。 +* **品質の限界:** 生成される文章の多様性、一貫性、文脈への追従性には限界があります。特に長い文章の生成では破綻する可能性があります。オーサーズノート機能などでの誘導をお試しください。 +* **利用上の注意:** 本モデルは研究および実験的な目的で提供されています。利用者は、適用される法律および規制を遵守する責任を負います。違法な目的や他者の権利を侵害する目的での使用は固く禁じます。 +* **自己責任:** 本モデルの使用によって生じたいかなる結果についても、開発者は一切の責任を負いません。全て自己責任においてご利用ください。 diff --git a/Wanabi_Novelist_12B_Q3_K_M.gguf b/Wanabi_Novelist_12B_Q3_K_M.gguf new file mode 100644 index 0000000..207af0d --- /dev/null +++ b/Wanabi_Novelist_12B_Q3_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8312acfb1cc8ff4faf8b76439c17f0174eec74b58d388eee4cbe9c1e31651c0 +size 6083089344 diff --git a/Wanabi_Novelist_12B_Q4_K_M.gguf b/Wanabi_Novelist_12B_Q4_K_M.gguf new file mode 100644 index 0000000..1d16947 --- /dev/null +++ b/Wanabi_Novelist_12B_Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38d51323d9fd36bd4407ef9595ad31b0653a373db7a0a023f2e58b56b7d4a10e +size 7477203904 diff --git a/Wanabi_Novelist_12B_Q5_K_M.gguf b/Wanabi_Novelist_12B_Q5_K_M.gguf new file mode 100644 index 0000000..7579c95 --- /dev/null +++ b/Wanabi_Novelist_12B_Q5_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:366d0fd17ae412533937d69f863eba9b028cc2d3e7f2ca80434d4a272ea499a5 +size 8727630784 diff --git a/Wanabi_Novelist_12B_Q6_K.gguf b/Wanabi_Novelist_12B_Q6_K.gguf new file mode 100644 index 0000000..7be633e --- /dev/null +++ b/Wanabi_Novelist_12B_Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d55033d682d38ad4f550a71be6df56fd82f94b2fce4772bd95d37cd8c1ced69f +size 10056209344 diff --git a/Wanabi_Novelist_12B_Q8_0.gguf b/Wanabi_Novelist_12B_Q8_0.gguf new file mode 100644 index 0000000..4de399c --- /dev/null +++ b/Wanabi_Novelist_12B_Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e69b2aa16bdcd1e99c7dcadfb408cbae2af7a53a9d0f01d7d0475d673580ac04 +size 13022368704 diff --git a/Wanabi_Novelist_12B_bf16.gguf b/Wanabi_Novelist_12B_bf16.gguf new file mode 100644 index 0000000..a2b2cfe --- /dev/null +++ b/Wanabi_Novelist_12B_bf16.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:838af9af0abdb1c3edaf31770ce8cb3e89f5977d797bd785562cae4d5b03c0e8 +size 24504275904 diff --git a/imatrix/Wanabi_Novelist_12B_IQ3_XXS.gguf b/imatrix/Wanabi_Novelist_12B_IQ3_XXS.gguf new file mode 100644 index 0000000..859ae4a --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_IQ3_XXS.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e97fdee5e28ac6b4d2de6b4521a6397e60a8856ee072bd59e755d96cdd606e1 +size 4945384704 diff --git a/imatrix/Wanabi_Novelist_12B_IQ4_XS.gguf b/imatrix/Wanabi_Novelist_12B_IQ4_XS.gguf new file mode 100644 index 0000000..75b7b02 --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_IQ4_XS.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b97d6d091efb16515fb44c29dbe4519ce57a7930302955568361ea80cfcfaaf7 +size 6742709504 diff --git a/imatrix/Wanabi_Novelist_12B_Q3_K_M.gguf b/imatrix/Wanabi_Novelist_12B_Q3_K_M.gguf new file mode 100644 index 0000000..94fb50b --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_Q3_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83721fadd713d207e452f554ca88c78f5db19e58d657f49b6a1eea8e8f519f93 +size 6083089664 diff --git a/imatrix/Wanabi_Novelist_12B_Q4_K_M.gguf b/imatrix/Wanabi_Novelist_12B_Q4_K_M.gguf new file mode 100644 index 0000000..f086a1d --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8017e36f18175ca98177db324af4fe3c8843cb208e6281c7a0a08123be2719fc +size 7477204224 diff --git a/imatrix/Wanabi_Novelist_12B_Q5_K_M.gguf b/imatrix/Wanabi_Novelist_12B_Q5_K_M.gguf new file mode 100644 index 0000000..7cdfad0 --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_Q5_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68ba48591d8891e610be01e7828648947fb850b4106cbfa80cec4f1bef2eafe7 +size 8727631104 diff --git a/imatrix/Wanabi_Novelist_12B_Q6_K.gguf b/imatrix/Wanabi_Novelist_12B_Q6_K.gguf new file mode 100644 index 0000000..572ca40 --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1fdbaa6299abb3a3292b77d043ba5fd1ac15c5d0b02573fa63799732917b1b6 +size 10056209664 diff --git a/imatrix/Wanabi_Novelist_12B_Q8_0.gguf b/imatrix/Wanabi_Novelist_12B_Q8_0.gguf new file mode 100644 index 0000000..e52fefd --- /dev/null +++ b/imatrix/Wanabi_Novelist_12B_Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a4ad587a8a5b1d88079c358cde81d366a94116e1d10920c30a35c4d50707138 +size 13022369024