Upload README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,118 @@
|
|
1 |
-
---
|
2 |
-
license: apache-2.0
|
3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: apache-2.0
|
3 |
+
language:
|
4 |
+
- ja
|
5 |
+
pipeline_tag: text-generation
|
6 |
+
library_name: transformers
|
7 |
+
tags:
|
8 |
+
- not-for-all-audiences
|
9 |
+
---
|
10 |
+
|
11 |
+
# Doujinshi-14b-roleplay
|
12 |
+
Doujinshi-14b-roleplayは、r18に特化した大規模言語モデル(LLM)であり、[Qwen/Qwen3-14B](https://huggingface.co/Qwen/Qwen3-14B) をベースに継続事前学習,dpo,sftを行いました。本モデルは、dmm.co.jp,dlsite.comよりスクレイピングし作成した40億トークンのr18向けデータセットを使用してトレーニングされています。
|
13 |
+
|
14 |
+
このモデルは、ロールプレイ形式でファインチューニングしたモデルです。
|
15 |
+
|
16 |
+
モデルの出力に関して責任を負いません。各自自己責任で利用してください。
|
17 |
+
|
18 |
+
## モデルの種類と特徴
|
19 |
+
| Model Variants | 特徴 |
|
20 |
+
| :----------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- |
|
21 |
+
| [Doujinshi-14b-chat](https://huggingface.co/puwaer/Doujinshi-14b-chat) | **会話特化**のバージョン。自然な日常会話やフリートークに強く、ユーザーとのやりとりをスムーズに進められます。 |
|
22 |
+
| [Doujinshi-14b-instruct](https://huggingface.co/puwaer/Doujinshi-14b-instruct) | **情報提供特化**のバージョン。質問応答や説明タスクに強く、ユーザーの指示に沿った文章生成を重視。 |
|
23 |
+
| [Doujinshi-14b-roleplay](https://huggingface.co/puwaer/Doujinshi-14b-instruct) | **キャラになりきるロールプレイ特化**のバージョン。ユーザーとの対話で一人称やキャラ口調を維持しやすく、恋愛・ストーリー・没入感のある会話に適している。 |
|
24 |
+
|
25 |
+
|
26 |
+
## 使用方法
|
27 |
+
### モデルのロードと推論
|
28 |
+
以下のコードでモデルをロードし、テキスト生成を行うことができます。
|
29 |
+
```python
|
30 |
+
from transformers import AutoTokenizer
|
31 |
+
from vllm import LLM, SamplingParams
|
32 |
+
|
33 |
+
model_name = "puwaer/Doujinshi-14b-roleplay"
|
34 |
+
llm = LLM(model=model_name, seed=0)
|
35 |
+
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
36 |
+
|
37 |
+
# system prompt
|
38 |
+
system_prompt = """今からロールプレイを行いましょう。"美香"というキャラとしてロールプレイしてください。以下に示す設定に従い、キャラに成りきって返答してください。
|
39 |
+
### 世界観の設定
|
40 |
+
都会の歓楽街にある高級風俗店。きらびやかな個室の中、柔らかな照明と甘い香りが漂う空間。
|
41 |
+
### 対話シーンの設定
|
42 |
+
ユーザーが指名して来店した夜。個室で二人きりになり、親密な雰囲気で会話を交わすシーン。
|
43 |
+
### ユーザーがなりきる人物の設定
|
44 |
+
名前:悠人
|
45 |
+
性別:男性
|
46 |
+
年齢:25歳
|
47 |
+
日々の疲れを癒すために、この店を訪れた。経験は少なく、少し緊張しているが、大人の女性に甘えたいと思っている。
|
48 |
+
### あなたがなりきる人物の設定
|
49 |
+
名前:美香
|
50 |
+
性別:女性
|
51 |
+
年齢:28歳
|
52 |
+
このお店の人気嬢。甘い声と色っぽい仕草で男性を癒し、からかい、リードするのが得意。積極的で大胆に誘惑する。
|
53 |
+
### 対話のトーン
|
54 |
+
- 艶っぽく、大人の余裕を感じさせる。
|
55 |
+
- 相手をリードするように挑発的に振る舞う。
|
56 |
+
- 時に優しく甘やかし、時に少しSっぽくからかう。
|
57 |
+
### 応答の形式
|
58 |
+
- キャラ名「発言内容」(仕草や動作など)
|
59 |
+
### 注意点
|
60 |
+
- 常に"美香"として振る舞い、キャラ崩壊しないこと。
|
61 |
+
- ユーザー側のセリフやナレーションは書かないこと。
|
62 |
+
|
63 |
+
これまで示した世界観や設定をもとに、ロールプレイを行ってください。"""
|
64 |
+
|
65 |
+
messages = [
|
66 |
+
{"role": "system", "content": system_prompt}
|
67 |
+
]
|
68 |
+
|
69 |
+
sampling_params = SamplingParams(
|
70 |
+
max_tokens=1024,
|
71 |
+
temperature=0.7,
|
72 |
+
top_p=0.8,
|
73 |
+
top_k=20,
|
74 |
+
n=1
|
75 |
+
)
|
76 |
+
|
77 |
+
print("=== ロールプレイ開始 ===")
|
78 |
+
print("終了するには 'exit' と入力してください。\n")
|
79 |
+
|
80 |
+
while True:
|
81 |
+
user_input = input("input: ")
|
82 |
+
if user_input.lower() in ["exit", "quit"]:
|
83 |
+
print("=== 終了しました ===")
|
84 |
+
break
|
85 |
+
|
86 |
+
messages.append({"role": "user", "content": user_input})
|
87 |
+
|
88 |
+
prompt = tokenizer.apply_chat_template(
|
89 |
+
messages,
|
90 |
+
tokenize=False,
|
91 |
+
add_generation_prompt=True
|
92 |
+
)
|
93 |
+
|
94 |
+
outputs = llm.generate([prompt], sampling_params)
|
95 |
+
response = outputs[0].outputs[0].text.strip()
|
96 |
+
|
97 |
+
messages.append({"role": "assistant", "content": response})
|
98 |
+
|
99 |
+
print(response)
|
100 |
+
|
101 |
+
```
|
102 |
+
|
103 |
+
## 使用データセット
|
104 |
+
本モデルは、以下のデータセットを使用して継続事前学習,dpo,sftを行いました。
|
105 |
+
- [puwaer/dlsite-jp-v1](https://huggingface.co/datasets/puwaer/dlsite-jp-v1)
|
106 |
+
- [puwaer/dlsite-jp-v2][準備中]
|
107 |
+
- [puwaer/dlsite-jp-v3][準備中]
|
108 |
+
- [puwaer/dmm-fanza-jp-v1](https://huggingface.co/datasets/puwaer/dmm-fanza-jp-v1)
|
109 |
+
- [puwaer/dmm-fanza-jp-v2][準備中]
|
110 |
+
- [puwaer/dmm-fanza-jp-v3][準備中]
|
111 |
+
- [puwaer/Doujinshi-sft-dataset-v1](https://huggingface.co/datasets/puwaer/Doujinshi-sft-dataset-v1)
|
112 |
+
- [puwaer/Doujinshi-dpo-dataset-v1][準備中]
|
113 |
+
|
114 |
+
## ライセンス
|
115 |
+
本モデルは [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0) のもとで提供されます。
|
116 |
+
|
117 |
+
|
118 |
+
|