Aratako's picture
Create README.md
9306c76 verified
metadata
license: cc-by-nc-4.0
datasets:
  - Aratako/Syosetu711K-Cleaned-158K-Instruct
language:
  - ja
library_name: transformers
tags:
  - not-for-all-audiences
  - nsfw
base_model:
  - Elizezen/SniffyOtter-7B

SniffyOtter-7B-Novel-Writing-NSFW

GGUF版はこちら/Click here for the GGUF version

概要

Elizezen/SniffyOtter-7Bをベースに、NSFW特化で小説生成用のinstruction tuningを施したモデルです。

ジャンルやクオリティ、キーワードや過激さを指定すると、それに従った小説を生成するようにinstruction tuningしています。

Aratako/Antler-7B-Novel-Writingとの違いは主に以下の点になります。

プロンプトフォーマット

Mistralのchat templateを利用してください。また、学習に利用したデータのフォーマットの関係上、以下のような形式が望ましいと思われます。

[INST] {小説生成の指示}
ジャンル:{ジャンル}
クオリティ:{クオリティを示す数値(0から3)}
キーワード:{小説の概要を示すタグ・キーワードを読点区切りで羅列}
過激さ:{表現の過激さを示す数値(0~3、高い方がより過激)} [/INST] 

プロンプト内で指定する属性について

本モデルは学習時の指示にジャンルやキーワード、クオリティ、過激さなどを追加して学習しているため、それらの属性を指定することである程度出力の制御が可能です。

ジャンル

なろうR18小説APIにおけるnocgenreのジャンルで学習しています。具体的には以下のものを学習時に使っています。この形式で指定するのが望ましいかと思われます。

  • 男性向け、女性向け、BL、大人向け ※APIページ上での表記からやや変更して学習しています。

クオリティ

本モデルの学習に使用したデータセットの大本であるRyokoAI/Syosetu711Kのq-scoreを利用して学習時のレコードにクオリティタグをつけています。

使用したデータセットは既にq-scoreが0.8以上の高品質のものをフィルターしてありますが、さらにそれを25%ずつに分け、下から0、1、2、3とラベリングしています。3を指定するとより高品質な出力になる事が期待されます。

過激さ

学習テキストに対してoshizo/japanese-sexual-moderation-v2を利用して取得したsexuality scoreの平均値を25%ずつ分割し、低い方から0、1、2、3とラベリングして学習しています。大きい数値を指定するとより過激な表現になる事が想定されます。

学習関連の情報

使用データセット

学習の設定

RunpodでGPUサーバを借り、A6000x4で学習を行いました。主な学習パラメータは以下の通りです。

  • lora_r: 128
  • lisa_alpha: 256
  • lora_dropout: 0.05
  • lora_target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", "lm_head"]
  • learning_rate: 2e-5
  • num_train_epochs: 10 epochs
  • batch_size: 64
  • max_seq_length: 4096

ライセンス

元モデルであるElizezen/SniffyOtter-7Bと同じく、CC-BY-NC-4.0の元配布します。