base_model: teknium/OpenHermes-2.5-Mistral-7B
tags:
- mistral
- instruct
- finetune
- chatml
- gpt4
- synthetic data
- distillation
- dpo
- rlhf
- laser
license: apache-2.0
language:
- en
datasets:
- mlabonne/chatml_dpo_pairs
NeuralHermes 2.5 - Mistral 7B - LASER
This is an experimental LASER version of NeuralHermes using laserRMT, based on this paper.
Model | AGIEval | GPT4All | TruthfulQA | Bigbench | Average |
---|---|---|---|---|---|
NeuralHermes-2.5-Mistral-7B-laser | 43.54 | 73.44 | 55.26 | 42.24 | 53.62 |
NeuralHermes-2.5-Mistral-7B | 43.67 | 73.24 | 55.37 | 41.76 | 53.51 |
Fernando Fernandes Neto and Eric Hartford. "Optimizing Large Language Models Using Layer-Selective Rank Reduction and Random Matrix Theory." 2024.
NeuralHermes is an teknium/OpenHermes-2.5-Mistral-7B model that has been further fine-tuned with Direct Preference Optimization (DPO) using the mlabonne/chatml_dpo_pairs dataset. It surpasses the original model on several benchmarks (see results).
It is directly inspired by the RLHF process described by Intel/neural-chat-7b-v3-1's authors to improve performance. I used the same dataset and reformatted it to apply the ChatML template.
The code to train this model is available on Google Colab and GitHub. It required an A100 GPU for about an hour.
Results
AGIEval
Task | Version | Metric | Value | Stderr | |
---|---|---|---|---|---|
agieval_aqua_rat | 0 | acc | 21.26 | ± | 2.57 |
acc_norm | 22.83 | ± | 2.64 | ||
agieval_logiqa_en | 0 | acc | 39.32 | ± | 1.92 |
acc_norm | 40.71 | ± | 1.93 | ||
agieval_lsat_ar | 0 | acc | 25.65 | ± | 2.89 |
acc_norm | 25.65 | ± | 2.89 | ||
agieval_lsat_lr | 0 | acc | 48.82 | ± | 2.22 |
acc_norm | 50.00 | ± | 2.22 | ||
agieval_lsat_rc | 0 | acc | 58.36 | ± | 3.01 |
acc_norm | 57.25 | ± | 3.02 | ||
agieval_sat_en | 0 | acc | 74.27 | ± | 3.05 |
acc_norm | 73.30 | ± | 3.09 | ||
agieval_sat_en_without_passage | 0 | acc | 43.69 | ± | 3.46 |
acc_norm | 42.23 | ± | 3.45 | ||
agieval_sat_math | 0 | acc | 37.27 | ± | 3.27 |
acc_norm | 36.36 | ± | 3.25 |
Average: 43.54%
GPT4All
Task | Version | Metric | Value | Stderr | |
---|---|---|---|---|---|
arc_challenge | 0 | acc | 57.76 | ± | 1.44 |
acc_norm | 60.32 | ± | 1.43 | ||
arc_easy | 0 | acc | 83.84 | ± | 0.76 |
acc_norm | 81.10 | ± | 0.80 | ||
boolq | 1 | acc | 86.70 | ± | 0.59 |
hellaswag | 0 | acc | 63.15 | ± | 0.48 |
acc_norm | 82.55 | ± | 0.38 | ||
openbookqa | 0 | acc | 34.40 | ± | 2.13 |
acc_norm | 45.20 | ± | 2.23 | ||
piqa | 0 | acc | 81.94 | ± | 0.90 |
acc_norm | 82.97 | ± | 0.88 | ||
winogrande | 0 | acc | 75.22 | ± | 1.21 |
Average: 73.44%
TruthfulQA
Task | Version | Metric | Value | Stderr | |
---|---|---|---|---|---|
truthfulqa_mc | 1 | mc1 | 37.70 | ± | 1.70 |
mc2 | 55.26 | ± | 1.52 |
Average: 55.26%
Bigbench
Task | Version | Metric | Value | Stderr | |
---|---|---|---|---|---|
bigbench_causal_judgement | 0 | multiple_choice_grade | 53.16 | ± | 3.63 |
bigbench_date_understanding | 0 | multiple_choice_grade | 65.31 | ± | 2.48 |
bigbench_disambiguation_qa | 0 | multiple_choice_grade | 34.11 | ± | 2.96 |
bigbench_geometric_shapes | 0 | multiple_choice_grade | 27.02 | ± | 2.35 |
exact_str_match | 0.28 | ± | 0.28 | ||
bigbench_logical_deduction_five_objects | 0 | multiple_choice_grade | 27.80 | ± | 2.01 |
bigbench_logical_deduction_seven_objects | 0 | multiple_choice_grade | 19.86 | ± | 1.51 |
bigbench_logical_deduction_three_objects | 0 | multiple_choice_grade | 48.33 | ± | 2.89 |
bigbench_movie_recommendation | 0 | multiple_choice_grade | 41.40 | ± | 2.20 |
bigbench_navigate | 0 | multiple_choice_grade | 50.00 | ± | 1.58 |
bigbench_reasoning_about_colored_objects | 0 | multiple_choice_grade | 65.00 | ± | 1.07 |
bigbench_ruin_names | 0 | multiple_choice_grade | 46.21 | ± | 2.36 |
bigbench_salient_translation_error_detection | 0 | multiple_choice_grade | 27.25 | ± | 1.41 |
bigbench_snarks | 0 | multiple_choice_grade | 70.72 | ± | 3.39 |
bigbench_sports_understanding | 0 | multiple_choice_grade | 65.72 | ± | 1.51 |
bigbench_temporal_sequences | 0 | multiple_choice_grade | 30.40 | ± | 1.46 |
bigbench_tracking_shuffled_objects_five_objects | 0 | multiple_choice_grade | 22.56 | ± | 1.18 |
bigbench_tracking_shuffled_objects_seven_objects | 0 | multiple_choice_grade | 17.09 | ± | 0.90 |
bigbench_tracking_shuffled_objects_three_objects | 0 | multiple_choice_grade | 48.33 | ± | 2.89 |
Average: 42.24%
Average score: 53.62%
Usage
You can run this model using LM Studio or any other frontend.
You can also run this model using the following code:
import transformers
from transformers import AutoTokenizer
# Format prompt
message = [
{"role": "system", "content": "You are a helpful assistant chatbot."},
{"role": "user", "content": "What is a Large Language Model?"}
]
tokenizer = AutoTokenizer.from_pretrained(new_model)
prompt = tokenizer.apply_chat_template(message, add_generation_prompt=True, tokenize=False)
# Create pipeline
pipeline = transformers.pipeline(
"text-generation",
model="mlabonne/NeuralHermes-2.5-Mistral-7B-laser",
tokenizer=tokenizer
)
# Generate text
sequences = pipeline(
prompt,
do_sample=True,
temperature=0.7,
top_p=0.9,
num_return_sequences=1,
max_length=200,
)
print(sequences[0]['generated_text'])