Triangle104 commited on
Commit
4b59c25
1 Parent(s): 9978b40

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +190 -0
README.md CHANGED
@@ -12,6 +12,196 @@ tags:
12
  This model was converted to GGUF format from [`Sao10K/MN-BackyardAI-Party-12B-v1`](https://huggingface.co/Sao10K/MN-BackyardAI-Party-12B-v1) using llama.cpp via the ggml.ai's [GGUF-my-repo](https://huggingface.co/spaces/ggml-org/gguf-my-repo) space.
13
  Refer to the [original model card](https://huggingface.co/Sao10K/MN-BackyardAI-Party-12B-v1) for more details on the model.
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  ## Use with llama.cpp
16
  Install llama.cpp through brew (works on Mac and Linux)
17
 
 
12
  This model was converted to GGUF format from [`Sao10K/MN-BackyardAI-Party-12B-v1`](https://huggingface.co/Sao10K/MN-BackyardAI-Party-12B-v1) using llama.cpp via the ggml.ai's [GGUF-my-repo](https://huggingface.co/spaces/ggml-org/gguf-my-repo) space.
13
  Refer to the [original model card](https://huggingface.co/Sao10K/MN-BackyardAI-Party-12B-v1) for more details on the model.
14
 
15
+ Model Info:
16
+ ---
17
+ ---
18
+ Trained with compute from Backyard.ai | Thanks to them and @dynafire for helping me out.
19
+
20
+ Trained on 2x A100 SXM 40GB as an 8-bit LoRA.
21
+
22
+ This is a group-chat based roleplaying model, based off of 12B-Lyra-v4a2, a variant of Lyra-v4 that is currently private.
23
+
24
+ It is trained on an entirely human-based dataset, based on forum / internet group roleplaying styles. The only augmentation done with LLMs is to the character sheets, to fit to the system prompt, to fit various character sheets within context.
25
+
26
+ This model is still capable of 1 on 1 roleplay, though I recommend using ChatML when doing that instead.
27
+
28
+ ---
29
+ Formatting:
30
+
31
+ Training for the multi-character roleplaying format is done with a variant of ChatML, replaced with [INST] blocks formatted as such. Use this to draw in more of the training done.
32
+
33
+ [INST]system
34
+ System Prompt Here[/INST]
35
+ [INST]user
36
+ User's Yapping[/INST]
37
+ [INST]model
38
+ Model Reply[/INST]
39
+
40
+ Relevant!
41
+ - Turns do not need to respect user -> model -> user. Training is done with disjointed turns that may have repeating turns to simulate real group roleplay / chat scenarios with multiple users.
42
+ - Additional work may be required to fit for your front-end.
43
+ - Ideally character cards are all included in the turns. Training is done with this in mind. Below on the page has relevant information.
44
+ - This is a Nemo model, so lower Temperature and a sprinkling of min_p helps.
45
+ - This does require a lot of tinkering to fit within SillyTavern / other frontends.
46
+
47
+ To get better performance on Regular 1 on 1 Roleplay or Chat scenarios, use ChatML to get more of Lyra's performance.
48
+
49
+ <|im_start|>system
50
+ System Prompt Here.<|im_end|>
51
+ <|im_start|>user
52
+ User's Instructions<|im_end|>
53
+ <|im_start|>assistant
54
+ Model Response<|im_end|>
55
+
56
+ For best results, set both <|im_end|> and [INST] as stopping strings. Recommended Temperature is <1 , min_p of ateast 0.1
57
+ Dataset Information:
58
+
59
+ This dataset is made from a human RP forum source, trimmed down, augmented and reformatted to fit.
60
+ - Each entry has a minimum of 6 turns to be inside
61
+ - Number of unique/main characters are ranged from 2 to 7 characters per entry.
62
+ - Each conversation is kept as is to preserve quality and uniqueness of the human data.
63
+ - Only the added system prompt makes use of the current character sheets given.
64
+
65
+ The following below is how the current Character Card / Sheets is done, which are augmented from the messy and non-uniform character sheets available. To get best results, please reformat your current character data to the on as seen below, or as similar as you can if possible.
66
+
67
+ - **Character Name**:
68
+ - **Age**:
69
+ - **Race**:
70
+ - **Mageblood Type**: (if applicable)
71
+ - **Favored Magic Class**: (if applicable)
72
+ - **Previous Magic Training**: (if applicable)
73
+ - **Occupation/Profession**: (if applicable)
74
+ - **Appearance**: (if applicable)
75
+ - **Biography**: (if applicable)
76
+ - **Good Attributes**: (if applicable)
77
+ - **Bad Attributes**: (if applicable)
78
+ - **Equipment**: (if applicable)
79
+ - **Other Information**: (if applicable)
80
+
81
+ Here is an example based on the above format:
82
+
83
+ **Character Name**: Keri Wolf
84
+ **Age**: 21
85
+ **Race**: Vampire
86
+ **Mageblood Type**: Hydromancy
87
+ **Favored Magic Class**: Aqua
88
+ **Previous Magic Training**: Novice
89
+ **Occupation/Profession**: None specified
90
+
91
+ **Appearance**:
92
+ - Height: 5'9"
93
+ - A wooden wolf necklace around her neck, contrasting with her pale skin
94
+ - Three swords strapped to her waist
95
+ - A tattoo of a thorn vine, her family crest, on her right arm
96
+ - Normal eye color is red but changes based on her mood or the topic of conversation
97
+ - Carries a hunk of wood and a carving knife for personal activities
98
+
99
+ **Biography**:
100
+ Keri Wolf grew up in a family of adopted siblings in Djarkel. She had a normal childhood, with her best friend Satori, and was taught basic self-defense by her father. Her brothers were considered troublemakers but remained close to her. On her 21st birthday, her family was slaughtered by a vampire nest, and she was bitten. This led to her developing vampiric traits and seeking answers at the college.
101
+
102
+ **Good Attributes**:
103
+ - Easy-going
104
+ - Observant
105
+ - Helps those in trouble
106
+ - Soft-hearted
107
+ - Kind
108
+ - Cool-headed
109
+ - Good at getting out of difficult situations
110
+ - Avoids violence
111
+ - Gets along well with different people
112
+ - Loves animals
113
+
114
+ **Bad Attributes**:
115
+ - Sunlight sensitivity
116
+ - Hatred towards vampires outside the college
117
+ - Keeps feelings in check, leading to dangerous outbursts
118
+ - Cruel manner of speaking
119
+ - Thirst for revenge
120
+
121
+ **Equipment**:
122
+ - Wooden wolf necklace
123
+ - Three swords (one engraved with a rose, one engraved with her father's name, and one for decoration)
124
+ - Carving knife
125
+ - Hunk of wood
126
+ - Stealth Ring
127
+ - Knight's Shield
128
+
129
+ **Other Information**:
130
+ - Secret word: rebirth
131
+
132
+ The following system prompt is augmented from available character sheets, or details from the original dataset. Placeholder names are given as shown.
133
+
134
+ You are involved in a multi-character internet-style roleplaying session with a human user, who is playing as Ballbuster Steve. Do not generate dialogue for the user's character, Ballbuster Steve. Focus on the other characters.
135
+
136
+ [Human User]
137
+ Ballbuster Steve # {user}
138
+ Character Bio: [Steve's bio]
139
+
140
+ [Involved Characters]
141
+ Altair "Arty" Enzo # {char1}
142
+ Character Bio: [Arty's bio]
143
+ ---
144
+ Sukuna Gojo # {char2}
145
+ Character Bio: [Sukuna's bio]
146
+ ---
147
+
148
+ The roleplay begins now.
149
+
150
+ This is how some of the turn example looks like, newlines are only for visual use.
151
+
152
+ [INST]user
153
+ Ballbuster Steve: Being the doorman at a nightclub, especially one as popular as LUSH... [/INST]
154
+
155
+ [INST]model
156
+ Altair "Arty" Enzo: While he was waiting for Jake to answer, Arty noticed from the corner of his eye... [/INST]
157
+
158
+ [INST]model
159
+ Sukuna Gojo: Nick was now out of his element; he just came off his portable radio app... [/INST]
160
+
161
+ [INST]user
162
+ Ballbuster Steve: Steve grabbed his black clutch from where it was stashed under the mixing desk... [/INST]
163
+
164
+ To make it easier, this is how I'd format responses for the backend:
165
+
166
+ <s>[INST]system
167
+ {system_prompt}[/INST]
168
+ [INST]user
169
+ {user}: {text}[/INST]
170
+ [INST]model
171
+ {char1}: {text}[/INST]
172
+ [INST]model
173
+ {char2}: {text}[/INST]
174
+ [INST]user
175
+ {user}: {text}[/INST]
176
+ [INST]model
177
+ {char1}: {text}[/INST]<|im_end|> # For Final Turn only. Alternatively, set <|im_end|> as a stopping string.
178
+
179
+ Current Issues:
180
+
181
+ - Impersonation - This is a common side-effect of pure human roleplaying data, unfortunately.
182
+ Users do like writing the actions of others, though this is more limited to end of reply.
183
+ - Varied Output Quality - A swipe should be enough?
184
+ I only removed obviously bad entries. Output quality varies thanks to the variety of human users involved.
185
+ - Character Detail Confusion when in group chats
186
+ This rarely happens, but it is usually when there are too many main characters, or the bio is improperly formatted and seperated.
187
+ Or if you're using an additional, complex system prompt.
188
+ - Random OOC / Story Break moments may still exist despite me filtering the data.
189
+ - Limited Dataset Size -> 4K Varied Samples ranging from 2-7 characters per entry. I'm looking to expand.
190
+ - Limited System Prompt? -> I'm trying to improve on this.
191
+ - Fantasy-bias? -> Most of the entries are fantasy-based after all.
192
+
193
+ Training Metrics
194
+
195
+ n_sample: 4000
196
+ n_gpu: 2
197
+ global batch size: 12
198
+ lora: bnb_8bit
199
+ no. epochs: 3
200
+ lr: 0.000004
201
+ lr_scheduler: cosine
202
+ deepspeed: zero2
203
+
204
+ ---
205
  ## Use with llama.cpp
206
  Install llama.cpp through brew (works on Mac and Linux)
207