Aratako commited on
Commit
9306c76
1 Parent(s): 685da7a

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +75 -0
README.md ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ datasets:
4
+ - Aratako/Syosetu711K-Cleaned-158K-Instruct
5
+ language:
6
+ - ja
7
+ library_name: transformers
8
+ tags:
9
+ - not-for-all-audiences
10
+ - nsfw
11
+ base_model:
12
+ - Elizezen/SniffyOtter-7B
13
+ ---
14
+ # SniffyOtter-7B-Novel-Writing-NSFW
15
+ [GGUF版はこちら/Click here for the GGUF version](https://huggingface.co/Aratako/SniffyOtter-7B-Novel-Writing-NSFW-GGUF)
16
+
17
+ ## 概要
18
+
19
+ [Elizezen/SniffyOtter-7B](https://huggingface.co/Elizezen/SniffyOtter-7B)をベースに、NSFW特化で小説生成用のinstruction tuningを施したモデルです。
20
+
21
+ ジャンルやクオリティ、キーワードや過激さを指定すると、それに従った小説を生成するようにinstruction tuningしています。
22
+
23
+ [Aratako/Antler-7B-Novel-Writing](https://huggingface.co/Aratako/Antler-7B-Novel-Writing)との違いは主に以下の点になります。
24
+
25
+ - 元モデルを[Elizezen/Antler-7B](https://huggingface.co/Elizezen/Antler-7B)から[Elizezen/SniffyOtter-7B](https://huggingface.co/Elizezen/SniffyOtter-7B)へ変更
26
+ - そのため、ライセンスがCC-BY-NC-4.0となります
27
+ - 学習データをNSFWのものに限定
28
+ - [Aratako/Syosetu711K-Cleaned-158K-Instruct](https://huggingface.co/datasets/Aratako/Syosetu711K-Cleaned-158K-Instruct)から、NSFWのテキストのみを抽出
29
+ - さらに、テキストを100文字ずつに分割し、[oshizo/japanese-sexual-moderation-v2](https://huggingface.co/oshizo/japanese-sexual-moderation-v2)を利用してsexuality scoreを取得し、テキスト内の平均スコアが0.4以上のものを抽出
30
+
31
+ ## プロンプトフォーマット
32
+ Mistralのchat templateを利用してください。また、学習に利用したデータのフォーマットの関係上、以下のような形式が望ましいと思われます。
33
+
34
+ ```
35
+ [INST] {小説生成の指示}
36
+ ジャンル:{ジャンル}
37
+ クオリティ:{クオリティを示す数値(0から3)}
38
+ キーワード:{小説の概要を示すタグ・キーワードを読点区切りで羅列}
39
+ 過激さ:{表現の過激さを示す数値(0~3、高い方がより過激)} [/INST]
40
+ ```
41
+
42
+ ## プロンプト内で指定する属性について
43
+ 本モデルは学習時の指示にジャンルやキーワード、クオリティ、過激さなどを追加して学習しているため、それらの属性を指定することである程度出力の制御が可能です。
44
+
45
+ ### ジャンル
46
+ [なろうR18小説API](https://dev.syosetu.com/xman/api/)における`nocgenre`のジャンルで学習しています。具体的には以下のものを学習時に使っています。この形式で指定するのが望ましいかと思われます。
47
+ - 男性向け、女性向け、BL、大人向け ※APIページ上での表記からやや変更して学習しています。
48
+
49
+ ### クオリティ
50
+ 本モデルの学習に使用した[データセット](https://huggingface.co/datasets/Aratako/Syosetu711K-Cleaned-158K-instruct)の大本である[RyokoAI/Syosetu711K](https://huggingface.co/datasets/RyokoAI/Syosetu711K)のq-scoreを利用して学習時のレコードにクオリティタグをつけています。
51
+
52
+ [使用したデータセット](https://huggingface.co/datasets/Aratako/Syosetu711K-Cleaned-158K-instruct)は既にq-scoreが0.8以上の高品質のものをフィルターしてありますが、さらにそれを25%ずつに分け、下から0、1、2、3とラベリングしています。3を指定するとより高品質な出力になる事が期待されます。
53
+
54
+ ### 過激さ
55
+ 学習テキストに対して[oshizo/japanese-sexual-moderation-v2](https://huggingface.co/oshizo/japanese-sexual-moderation-v2)を利用して取得したsexuality scoreの平均値を25%ずつ分割し、低い方から0、1、2、3とラベリングして学習しています。大きい数値を指定するとより過激な表現になる事が想定されます。
56
+
57
+ ## 学習関連の情報
58
+
59
+ ### 使用データセット
60
+ - [Aratako/Syosetu711K-Cleaned-158K-instruct](https://huggingface.co/Aratako/Syosetu711K-Cleaned-158K-instruct)
61
+ - 上記データセットのうち概要で説明した処理を行いフィルタしたデータを利用
62
+
63
+ ## 学習の設定
64
+ RunpodでGPUサーバを借り、A6000x4で学習を行いました。主な学習パラメータは以下の通りです。
65
+ - lora_r: 128
66
+ - lisa_alpha: 256
67
+ - lora_dropout: 0.05
68
+ - lora_target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", "lm_head"]
69
+ - learning_rate: 2e-5
70
+ - num_train_epochs: 10 epochs
71
+ - batch_size: 64
72
+ - max_seq_length: 4096
73
+
74
+ ## ライセンス
75
+ 元モデルである[Elizezen/SniffyOtter-7B](https://huggingface.co/Elizezen/SniffyOtter-7B)と同じく、CC-BY-NC-4.0の元配布します。