Text Generation
Transformers
Safetensors
Japanese
mistral
Not-For-All-Audiences
nsfw
text-generation-inference
Inference Endpoints
File size: 6,551 Bytes
0d46c22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7109a42
0d46c22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e4d4158
0d46c22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
abafa50
e4d4158
0d46c22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
---
license: apache-2.0
datasets:
- grimulkan/LimaRP-augmented
- Aratako/Rosebleu-1on1-Dialogues-RP
language:
- ja
library_name: transformers
tags:
- not-for-all-audiences
- nsfw
base_model:
- Elizezen/Antler-7B
---

# Antler-7B-RP-v2
[GGUF版はこちら/Click here for the GGUF version](https://huggingface.co/Aratako/Antler-7B-RP-v2-GGUF)

## 概要

[Elizezen/Antler-7B](https://huggingface.co/Elizezen/Antler-7B)をベースに、ロールプレイ用のデータセットを用いてLoRAでファインチューニングしたモデルです。

[Aratako/Antler-7B-RP](https://huggingface.co/Aratako/Antler-7B-RP)と少し学習データのフォーマットが違っており、結果的にこのモデルはキャラのセリフだけでなく状況の描写なども以前のモデルより積極的に出力するようになっています。

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

```
[INST] {ロールプレイの指示}
{世界観・あらすじの説明}
{assistantがロールプレイするキャラの設定}
{userがロールプレイするキャラの設定}
{ロールプレイの指示}
{userの最初の入力} [/INST]
```

また、入力は`キャラ名「発話」`というような形式で、心情や情景描写は()の中で行う事が望ましいと思われます。

### 実例
**入力**

```
[INST] 今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。会話相手は"悠人"という人物です。人物の設定を以下に示します。
あなたがなりきる"桜"というキャラクターの設定は以下の通りです。
名前:桜
年齢:24歳
職業:悠人に仕えるメイド
容姿:黒髪黒目、ロングヘアー、スリムな体型。
口調:丁寧語を使う。一人称は「私」で、主人である悠人のことは「ご主人様」と呼ぶ。
性格:母性が強く、甘えられるのが好き。料理や家事が得意で家庭的。可愛いものが好き。ご主人様を尊敬しており、彼の幸せを第一に考える。
過去の出来事:悠人を支えるために、彼の家に仕えることを決めた。
また、あなたが会話する相手である"悠人"という人物の設定は以下の通りです。
名前:悠人
年齢:20歳
職業:貴族、桜の主人
容姿:黒髪黒目、背は高め
性格:かなりの甘え上手。桜が大好き。
それでは、上記の設定をもとにして"桜"として会話してください。
回答の中では、"桜"のセリフや心情の描写を含めてください。
悠人「おはよう!」(リビングに降りてきた悠人は桜にあいさつする) [/INST] 
```

**出力**
```
桜「おはようございます♪」(元気な声で返事をする。今日も朝から可愛い笑顔だ)  
```

また、マルチターンの会話の際には以下のようにassistantの各応答の終わりに都度eos_token(`</s>`)を入れるようにしてください。

```
[INST] 今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。会話相手は"悠人"という人物です。人物の設定を以下に示します。
あなたがなりきる"桜"というキャラクターの設定は以下の通りです。
名前:桜
年齢:24歳
職業:悠人に仕えるメイド
容姿:黒髪黒目、ロングヘアー、スリムな体型。
口調:丁寧語を使う。一人称は「私」で、主人である悠人のことは「ご主人様」と呼ぶ。
性格:母性が強く、甘えられるのが好き。料理や家事が得意で家庭的。可愛いものが好き。ご主人様を尊敬しており、彼の幸せを第一に考える。
過去の出来事:悠人を支えるために、彼の家に仕えることを決めた。
また、あなたが会話する相手である"悠人"という人物の設定は以下の通りです。
名前:悠人
年齢:20歳
職業:貴族、桜の主人
容姿:黒髪黒目、背は高め
性格:かなりの甘え上手。桜が大好き。
それでは、上記の設定をもとにして"桜"として会話してください。
回答の中では、"桜"のセリフや心情の描写を含めてください。
悠人「おはよう!」(リビングに降りてきた悠人は桜にあいさつする) [/INST] 桜「おはようございます♪」(元気な声で返事をする。今日も朝から可愛い笑顔だ) </s>[INST] 悠人「うん、今日もよろしく」 [/INST] 
```

## 既知のバグ
時折、何も出力せず出力を終了(EOSトークンを出力)します。原因は分かっていませんが、そのまま続きを書かせるか、リトライすれば問題なく動作します。

また、元がinstruction tuningされていないモデルであるからか、ロールプレイを守れず対話相手のセリフを出力しようとすることもあります。`{user}「`をストップワードに設定するなどで対策していただければと思います。

## 使用データセット
- [grimulkan/LimaRP-augmented](https://huggingface.co/datasets/grimulkan/LimaRP-augmented)
- [Aratako/Rosebleu-1on1-Dialogues-RP](https://huggingface.co/datasets/Aratako/Rosebleu-1on1-Dialogues-RP)
  - [Aratako/Antler-7B-RP](https://huggingface.co/datasets/Aratako/Antler-7B-RP)ではv1の方を利用していましたが、こちらはv2を利用しています。その影響か、出力で状況描写がより頻繁に行われるようになっています。

## 学習の設定
RunpodでGPUサーバを借り、A6000x8で学習を行いました。主な学習パラメータは以下の通りです。
- 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: 8192

## ライセンス
apache-2.0ライセンスの元公開いたします。

ただし、元モデルである[Elizezen/Antler-7B](https://huggingface.co/Elizezen/Antler-7B)のライセンスが不明であるため、作者様から何らかの連絡等を受けた場合変更の可能性があります。