--- license: apache-2.0 tags: - moe --- ![](https://i.imgur.com/vq1QHEA.jpg) # Beyonder-4x7B-v2 This model is a Mixture of Experts (MoE) made with [mergekit](https://github.com/cg123/mergekit) (mixtral branch). It uses the following base models: * [openchat/openchat-3.5-1210](https://huggingface.co/openchat/openchat-3.5-1210) * [beowolx/CodeNinja-1.0-OpenChat-7B](https://huggingface.co/beowolx/CodeNinja-1.0-OpenChat-7B) * [maywell/PiVoT-0.1-Starling-LM-RP](https://huggingface.co/maywell/PiVoT-0.1-Starling-LM-RP) * [WizardLM/WizardMath-7B-V1.1](https://huggingface.co/WizardLM/WizardMath-7B-V1.1) ## 🏆 Evaluation Beyonder-4x7B-v2 is competitive with Mixtral-8x7B-Instruct-v0.1 on the Open LLM Leaderboard, while only having 4 experts instead of 8. ![](https://i.imgur.com/5raBff0.png) It also displays a significant improvement over the individual experts. ![](https://i.imgur.com/7Idwkb0.png) It also performs very well compared to other models on Nous benchmark suite. It's almost as good as the best Yi-34B fine-tune, which is a much bigger model: 24.2B parameters + only two experts are selected during inference (so ~12B) vs. 34B param. | Model |AGIEval|GPT4All|TruthfulQA|Bigbench|Average| |--------------------------------------------------------------------|------:|------:|---------:|-------:|------:| |[**Beyonder-4x7B-v2**](https://huggingface.co/shadowml/Beyonder-4x7B-v2)| **45.29**| **75.95**| **60.86**| **46.4**| **57.13**| |[NeuralHermes-2.5-Mistral-7B](https://huggingface.co/mlabonne/NeuralHermes-2.5-Mistral-7B)| 43.67| 73.24| 55.37| 41.76| 53.51| |[OpenHermes-2.5-Mistral-7B](https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B)| 42.75| 72.99| 52.99| 40.94| 52.42| |[Nous-Hermes-2-SOLAR-10.7B](https://huggingface.co/NousResearch/Nous-Hermes-2-SOLAR-10.7B)| 47.79| 74.69| 55.92| 44.84| 55.81| |[Nous-Hermes-2-Yi-34B](https://huggingface.co/NousResearch/Nous-Hermes-2-SOLAR-10.7B)| 50.27| 76.00| 60.34| 46.69| 58.33| ### AGIEval | Task |Version| Metric |Value| |Stderr| |------------------------------|------:|--------|----:|---|-----:| |agieval_aqua_rat | 0|acc |23.62|± | 2.67| | | |acc_norm|23.62|± | 2.67| |agieval_logiqa_en | 0|acc |41.47|± | 1.93| | | |acc_norm|43.01|± | 1.94| |agieval_lsat_ar | 0|acc |23.04|± | 2.78| | | |acc_norm|23.48|± | 2.80| |agieval_lsat_lr | 0|acc |51.57|± | 2.22| | | |acc_norm|52.94|± | 2.21| |agieval_lsat_rc | 0|acc |64.31|± | 2.93| | | |acc_norm|64.68|± | 2.92| |agieval_sat_en | 0|acc |79.13|± | 2.84| | | |acc_norm|79.13|± | 2.84| |agieval_sat_en_without_passage| 0|acc |43.20|± | 3.46| | | |acc_norm|43.20|± | 3.46| |agieval_sat_math | 0|acc |34.55|± | 3.21| | | |acc_norm|32.27|± | 3.16| ### GPT4All | Task |Version| Metric |Value| |Stderr| |-------------|------:|--------|----:|---|-----:| |arc_challenge| 0|acc |61.86|± | 1.42| | | |acc_norm|64.51|± | 1.40| |arc_easy | 0|acc |85.06|± | 0.73| | | |acc_norm|82.45|± | 0.78| |boolq | 1|acc |88.35|± | 0.56| |hellaswag | 0|acc |68.04|± | 0.47| | | |acc_norm|85.12|± | 0.36| |openbookqa | 0|acc |37.80|± | 2.17| | | |acc_norm|48.60|± | 2.24| |piqa | 0|acc |83.08|± | 0.87| | | |acc_norm|83.95|± | 0.86| |winogrande | 0|acc |78.69|± | 1.15| ### TruthfulQA | Task |Version|Metric|Value| |Stderr| |-------------|------:|------|----:|---|-----:| |truthfulqa_mc| 1|mc1 |44.55|± | 1.74| | | |mc2 |60.86|± | 1.57| ### Bigbench | Task |Version| Metric |Value| |Stderr| |------------------------------------------------|------:|---------------------|----:|---|-----:| |bigbench_causal_judgement | 0|multiple_choice_grade|58.95|± | 3.58| |bigbench_date_understanding | 0|multiple_choice_grade|66.40|± | 2.46| |bigbench_disambiguation_qa | 0|multiple_choice_grade|48.84|± | 3.12| |bigbench_geometric_shapes | 0|multiple_choice_grade|22.56|± | 2.21| | | |exact_str_match |13.37|± | 1.80| |bigbench_logical_deduction_five_objects | 0|multiple_choice_grade|30.40|± | 2.06| |bigbench_logical_deduction_seven_objects | 0|multiple_choice_grade|20.57|± | 1.53| |bigbench_logical_deduction_three_objects | 0|multiple_choice_grade|52.00|± | 2.89| |bigbench_movie_recommendation | 0|multiple_choice_grade|44.40|± | 2.22| |bigbench_navigate | 0|multiple_choice_grade|52.10|± | 1.58| |bigbench_reasoning_about_colored_objects | 0|multiple_choice_grade|69.75|± | 1.03| |bigbench_ruin_names | 0|multiple_choice_grade|55.36|± | 2.35| |bigbench_salient_translation_error_detection | 0|multiple_choice_grade|23.65|± | 1.35| |bigbench_snarks | 0|multiple_choice_grade|77.35|± | 3.12| |bigbench_sports_understanding | 0|multiple_choice_grade|73.02|± | 1.41| |bigbench_temporal_sequences | 0|multiple_choice_grade|46.80|± | 1.58| |bigbench_tracking_shuffled_objects_five_objects | 0|multiple_choice_grade|22.08|± | 1.17| |bigbench_tracking_shuffled_objects_seven_objects| 0|multiple_choice_grade|19.03|± | 0.94| |bigbench_tracking_shuffled_objects_three_objects| 0|multiple_choice_grade|52.00|± | 2.89| ## 🧩 Configuration ```yaml base_model: mlabonne/Marcoro14-7B-slerp experts: - source_model: openchat/openchat-3.5-1210 positive_prompts: - "chat" - "assistant" - "tell me" - "explain" - source_model: beowolx/CodeNinja-1.0-OpenChat-7B positive_prompts: - "code" - "python" - "javascript" - "programming" - "algorithm" - source_model: maywell/PiVoT-0.1-Starling-LM-RP positive_prompts: - "storywriting" - "write" - "scene" - "story" - "character" - source_model: WizardLM/WizardMath-7B-V1.1 positive_prompts: - "reason" - "math" - "mathematics" - "solve" - "count" ``` ## 💻 Usage ```python !pip install -qU transformers bitsandbytes accelerate from transformers import AutoTokenizer import transformers import torch model = "mlabonne/Beyonder-4x7B-v2" tokenizer = AutoTokenizer.from_pretrained(model) pipeline = transformers.pipeline( "text-generation", model=model, model_kwargs={"torch_dtype": torch.float16, "load_in_4bit": True}, ) messages = [{"role": "user", "content": "Explain what a Mixture of Experts is in less than 100 words."}] prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) outputs = pipeline(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95) print(outputs[0]["generated_text"]) ```