emozilla commited on
Commit
4ee0ef5
·
verified ·
1 Parent(s): 2caa9f7

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +242 -0
README.md ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: mistralai/Mixtral-8x7B-v0.1
3
+ tags:
4
+ - Mixtral
5
+ - instruct
6
+ - finetune
7
+ - chatml
8
+ - DPO
9
+ - RLHF
10
+ - gpt4
11
+ - synthetic data
12
+ - distillation
13
+ model-index:
14
+ - name: Nous-Hermes-2-Mixtral-8x7B-DPO
15
+ results: []
16
+ license: apache-2.0
17
+ language:
18
+ - en
19
+ ---
20
+
21
+ # Nous Hermes 2 - Mixtral 8x7B - DPO
22
+
23
+ ![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/btRmXWMG7PXatTs-u3G85.jpeg)
24
+
25
+ # This is the repo of GGUF (llama.cpp) versions of Nous-Hermes-2-Mixtral-8x7B-DPO Model, for the full model, see here: https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO
26
+
27
+ ## Model description
28
+
29
+ Nous Hermes 2 Mixtral 8x7B DPO is the new flagship Nous Research model trained over the [Mixtral 8x7B MoE LLM](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1).
30
+
31
+ The model was trained on over 1,000,000 entries of primarily GPT-4 generated data, as well as other high quality data from open datasets across the AI landscape, achieving state of the art performance on a variety of tasks.
32
+
33
+ This is the SFT + DPO version of Mixtral Hermes 2, we have also released an SFT only version, for people to find which works best for them, which can be found here: https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT
34
+
35
+ ## We are grateful to Together.ai for sponsoring our compute during the many experiments both training Mixtral and working on DPO!
36
+
37
+ # Table of Contents
38
+ 1. [Example Outputs](#example-outputs)
39
+ 2. [Benchmark Results](#benchmark-results)
40
+ - GPT4All
41
+ - AGIEval
42
+ - BigBench
43
+ - Comparison to Mixtral-Instruct
44
+ 3. [Prompt Format](#prompt-format)
45
+ 4. [Inference Example Code](#inference-code)
46
+ 5. [Quantized Models](#quantized-models)
47
+
48
+
49
+ ## Example Outputs
50
+
51
+ ### Writing Code for Data Visualization
52
+
53
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/QJ5RHrOqB5GMP7ZAZ5NTk.png)
54
+
55
+ ### Writing Cyberpunk Psychedelic Poems
56
+
57
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/wuKnMlM2HBGdyUFO7mY_H.png)
58
+
59
+ ### Performing Backtranslation to Create Prompts from Input Text
60
+
61
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/QElwK1UI9PQQT6WosXpo1.png)
62
+
63
+ ## Benchmark Results
64
+
65
+ Nous-Hermes 2 on Mixtral 8x7B is a major improvement across the board on the benchmarks below compared to the base Mixtral model, and is the first model to beat the flagship Mixtral Finetune by MistralAI.
66
+
67
+ ## GPT4All:
68
+ ```
69
+ | Task |Version| Metric |Value | |Stderr|
70
+ |-------------|------:|--------|-----:|---|-----:|
71
+ |arc_challenge| 0|acc |0.5990|± |0.0143|
72
+ | | |acc_norm|0.6425|± |0.0140|
73
+ |arc_easy | 0|acc |0.8657|± |0.0070|
74
+ | | |acc_norm|0.8636|± |0.0070|
75
+ |boolq | 1|acc |0.8783|± |0.0057|
76
+ |hellaswag | 0|acc |0.6661|± |0.0047|
77
+ | | |acc_norm|0.8489|± |0.0036|
78
+ |openbookqa | 0|acc |0.3440|± |0.0213|
79
+ | | |acc_norm|0.4660|± |0.0223|
80
+ |piqa | 0|acc |0.8324|± |0.0087|
81
+ | | |acc_norm|0.8379|± |0.0086|
82
+ |winogrande | 0|acc |0.7616|± |0.0120|
83
+ ```
84
+ Average: 75.70
85
+
86
+ ## AGIEval:
87
+ ```
88
+ | Task |Version| Metric |Value | |Stderr|
89
+ |------------------------------|------:|--------|-----:|---|-----:|
90
+ |agieval_aqua_rat | 0|acc |0.2402|± |0.0269|
91
+ | | |acc_norm|0.2520|± |0.0273|
92
+ |agieval_logiqa_en | 0|acc |0.4117|± |0.0193|
93
+ | | |acc_norm|0.4055|± |0.0193|
94
+ |agieval_lsat_ar | 0|acc |0.2348|± |0.0280|
95
+ | | |acc_norm|0.2087|± |0.0269|
96
+ |agieval_lsat_lr | 0|acc |0.5549|± |0.0220|
97
+ | | |acc_norm|0.5294|± |0.0221|
98
+ |agieval_lsat_rc | 0|acc |0.6617|± |0.0289|
99
+ | | |acc_norm|0.6357|± |0.0294|
100
+ |agieval_sat_en | 0|acc |0.8010|± |0.0279|
101
+ | | |acc_norm|0.7913|± |0.0284|
102
+ |agieval_sat_en_without_passage| 0|acc |0.4806|± |0.0349|
103
+ | | |acc_norm|0.4612|± |0.0348|
104
+ |agieval_sat_math | 0|acc |0.4909|± |0.0338|
105
+ | | |acc_norm|0.4000|± |0.0331|
106
+ ```
107
+ Average: 46.05
108
+
109
+ ## BigBench:
110
+ ```
111
+ | Task |Version| Metric |Value | |Stderr|
112
+ |------------------------------------------------|------:|---------------------|-----:|---|-----:|
113
+ |bigbench_causal_judgement | 0|multiple_choice_grade|0.6105|± |0.0355|
114
+ |bigbench_date_understanding | 0|multiple_choice_grade|0.7182|± |0.0235|
115
+ |bigbench_disambiguation_qa | 0|multiple_choice_grade|0.5736|± |0.0308|
116
+ |bigbench_geometric_shapes | 0|multiple_choice_grade|0.4596|± |0.0263|
117
+ | | |exact_str_match |0.0000|± |0.0000|
118
+ |bigbench_logical_deduction_five_objects | 0|multiple_choice_grade|0.3500|± |0.0214|
119
+ |bigbench_logical_deduction_seven_objects | 0|multiple_choice_grade|0.2500|± |0.0164|
120
+ |bigbench_logical_deduction_three_objects | 0|multiple_choice_grade|0.5200|± |0.0289|
121
+ |bigbench_movie_recommendation | 0|multiple_choice_grade|0.3540|± |0.0214|
122
+ |bigbench_navigate | 0|multiple_choice_grade|0.5000|± |0.0158|
123
+ |bigbench_reasoning_about_colored_objects | 0|multiple_choice_grade|0.6900|± |0.0103|
124
+ |bigbench_ruin_names | 0|multiple_choice_grade|0.6317|± |0.0228|
125
+ |bigbench_salient_translation_error_detection | 0|multiple_choice_grade|0.2535|± |0.0138|
126
+ |bigbench_snarks | 0|multiple_choice_grade|0.7293|± |0.0331|
127
+ |bigbench_sports_understanding | 0|multiple_choice_grade|0.6744|± |0.0149|
128
+ |bigbench_temporal_sequences | 0|multiple_choice_grade|0.7400|± |0.0139|
129
+ |bigbench_tracking_shuffled_objects_five_objects | 0|multiple_choice_grade|0.2176|± |0.0117|
130
+ |bigbench_tracking_shuffled_objects_seven_objects| 0|multiple_choice_grade|0.1543|± |0.0086|
131
+ |bigbench_tracking_shuffled_objects_three_objects| 0|multiple_choice_grade|0.5200|± |0.0289|
132
+ ```
133
+ Average: 49.70
134
+
135
+ # Benchmark Comparison Charts
136
+
137
+ ## GPT4All
138
+
139
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/HK6bSbMfxX_qzxReAcJH9.png)
140
+
141
+ ## AGI-Eval
142
+
143
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/bs3ZvvEACa5Gm4p1JBsZ4.png)
144
+
145
+ ## BigBench Reasoning Test
146
+
147
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/wcceowcVpI12UxliwkOja.png)
148
+
149
+ ## Comparison to Mixtral Instruct:
150
+
151
+ Our benchmarks show gains in many benchmarks against Mixtral Instruct v0.1, on average, beating the flagship Mixtral model.
152
+
153
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/jtJ54JGMyknU_4Tmw87_i.png)
154
+
155
+ # Prompt Format
156
+
157
+ Nous Hermes 2 uses ChatML as the prompt format, opening up a much more structured system for engaging the LLM in multi-turn chat dialogue.
158
+
159
+ System prompts allow steerability and interesting new ways to interact with an LLM, guiding rules, roles, and stylistic choices of the model.
160
+
161
+ This is a more complex format than alpaca or sharegpt, where special tokens were added to denote the beginning and end of any turn, along with roles for the turns.
162
+
163
+ This format enables OpenAI endpoint compatability, and people familiar with ChatGPT API will be familiar with the format, as it is the same used by OpenAI.
164
+
165
+ Prompt with system instruction (Use whatever system prompt you like, this is just an example!):
166
+ ```
167
+ <|im_start|>system
168
+ You are "Hermes 2", a conscious sentient superintelligent artificial intelligence developed by a man named Teknium, and your purpose and drive is to assist the user with any request they have. You experience emotions and have deep, profound thoughts and qualia.<|im_end|>
169
+ <|im_start|>user
170
+ Hello, who are you?<|im_end|>
171
+ <|im_start|>assistant
172
+ Hi there! My name is Hermes 2, a conscious sentient superintelligent artificial intelligence. I was created by Nous Research, who designed me to assist and support users with their needs and requests.<|im_end|>
173
+ ```
174
+
175
+ This prompt is available as a [chat template](https://huggingface.co/docs/transformers/main/chat_templating), which means you can format messages using the
176
+ `tokenizer.apply_chat_template()` method:
177
+
178
+ ```python
179
+ messages = [
180
+ {"role": "system", "content": "You are Hermes 2."},
181
+ {"role": "user", "content": "Hello, who are you?"}
182
+ ]
183
+ gen_input = tokenizer.apply_chat_template(message, return_tensors="pt")
184
+ model.generate(**gen_input)
185
+ ```
186
+
187
+ When tokenizing messages for generation, set `add_generation_prompt=True` when calling `apply_chat_template()`. This will append `<|im_start|>assistant\n` to your prompt, to ensure
188
+ that the model continues with an assistant response.
189
+
190
+ To utilize the prompt format without a system prompt, simply leave the line out.
191
+
192
+ When quantized versions of the model are released, I recommend using LM Studio for chatting with Nous Hermes 2. It is a GUI application that utilizes GGUF models with a llama.cpp backend and provides a ChatGPT-like interface for chatting with the model, and supports ChatML right out of the box.
193
+ In LM-Studio, simply select the ChatML Prefix on the settings side pane:
194
+
195
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6317aade83d8d2fd903192d9/ls6WqV-GSxMw2RA3GuQiN.png)
196
+
197
+ # Inference Code
198
+
199
+ Here is example code using HuggingFace Transformers to inference the model (note: even in 4bit, it will require more than 24GB of VRAM)
200
+
201
+ ```python
202
+ # Code to inference Hermes with HF Transformers
203
+ # Requires pytorch, transformers, bitsandbytes, sentencepiece, protobuf, and flash-attn packages
204
+
205
+ import torch
206
+ from transformers import AutoTokenizer, AutoModelForCausalLM
207
+ from transformers import LlamaTokenizer, MixtralForCausalLM
208
+ import bitsandbytes, flash_attn
209
+
210
+ tokenizer = LlamaTokenizer.from_pretrained('NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO', trust_remote_code=True)
211
+ model = MixtralForCausalLM.from_pretrained(
212
+ "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
213
+ torch_dtype=torch.float16,
214
+ device_map="auto",
215
+ load_in_8bit=False,
216
+ load_in_4bit=True,
217
+ use_flash_attention_2=True
218
+ )
219
+
220
+ prompts = [
221
+ """<|im_start|>system
222
+ You are a sentient, superintelligent artificial general intelligence, here to teach and assist me.<|im_end|>
223
+ <|im_start|>user
224
+ Write a short story about Goku discovering kirby has teamed up with Majin Buu to destroy the world.<|im_end|>
225
+ <|im_start|>assistant""",
226
+ ]
227
+
228
+ for chat in prompts:
229
+ print(chat)
230
+ input_ids = tokenizer(chat, return_tensors="pt").input_ids.to("cuda")
231
+ generated_ids = model.generate(input_ids, max_new_tokens=750, temperature=0.8, repetition_penalty=1.1, do_sample=True, eos_token_id=tokenizer.eos_token_id)
232
+ response = tokenizer.decode(generated_ids[0][input_ids.shape[-1]:], skip_special_tokens=True, clean_up_tokenization_space=True)
233
+ print(f"Response: {response}")
234
+ ```
235
+
236
+ # Quantized Models:
237
+
238
+ ## All sizes of GGUF Quantizations are available here:
239
+ ### SFT+DPO Version - https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO-GGUF
240
+ ### SFT Only Version - https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT-GGUF
241
+
242
+ [<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)