# Model Card: Hercules-2.0-Mistral-7B

![image/png](https://cdn-uploads.huggingface.co/production/uploads/6437292ecd93f4c9a34b0d47/SeH52c8_9VMAnzCUg4QUE.png)

## Model Description

Hercules-2.0-Mistral-7B is a fine-tuned language model derived from Mistralai/Mistral-7B-v0.1. It is specifically designed to excel in instruction following, function calls, and conversational interactions across various scientific and technical domains. The dataset used for fine-tuning, also named Hercules-v2.0, expands upon the diverse capabilities of OpenHermes-2.5 with contributions from numerous curated datasets. This fine-tuning has endowed Hercules-v2.0 with enhanced abilities in:

- Complex Instruction Following: Understanding and accurately executing multi-step instructions, even those involving specialized terminology.
- Function Calling: Seamlessly interpreting and executing function calls, providing appropriate input and output values.
- Domain-Specific Knowledge: Engaging in informative and educational conversations about Biology, Chemistry, Physics, Mathematics, Medicine, Computer Science, and more.

This model outperforms OpenHermes-2.5 and OpenChat-3.5, even when it is trained on only 100,000 rows, which is ten times less than the training data of OpenHermes-2.5.

## Intended Uses & Potential Bias

Hercules-2.0-Mistral-7B is well-suited to the following applications:

- Specialized Chatbots: Creating knowledgeable chatbots and conversational agents in scientific and technical fields.
- Instructional Assistants: Supporting users with educational and step-by-step guidance in various disciplines.
- Code Generation and Execution: Facilitating code execution through function calls, aiding in software development and prototyping.

**Important Note: Although Hercules-v2.0 is carefully constructed, it's important to be aware that the underlying data sources may contain biases or reflect harmful stereotypes. Use this model with caution and consider additional measures to mitigate potential biases in its responses.**

## Limitations and Risks

- Toxicity: The dataset may still contain toxic or harmful examples despite cleaning efforts.
- Hallucinations and Factual Errors: Like other language models, Hercules-2.0-Mistral-7B may generate incorrect or misleading information, especially in specialized domains where it lacks sufficient expertise.
- Potential for Misuse: The ability to engage in technical conversations and execute function calls could be misused for malicious purposes.

## Evaluation Metrics

To provide suitable benchmarks for Hercules-2.0-Mistral-7B, consider using a combination of the following metrics:

- Instruction Following: Task-specific evaluation datasets for instruction following in relevant domains (e.g., datasets specifically focused on math problems, code generation, etc.).
- Function Calling: Evaluate the model's accuracy in interpreting and executing function calls with varying inputs and outputs.
- Conversational Quality: Assess the model's ability to maintain coherence, naturalness, and informativeness across conversational turns.

## Training Data

Hercules-2.0-Mistral-7B is fine-tuned from the following sources:

- cognitivecomputations/dolphin (first 200k examples)
- Evol Instruct 70K && 140K
- teknium/GPT4-LLM-Cleaned
- jondurbin/airoboros-3.2
- AlekseyKorshuk/camel-chatml
- CollectiveCognition/chats-data-2023-09-22
- Nebulous/lmsys-chat-1m-smortmodelsonly
- glaiveai/glaive-code-assistant-v2
- glaiveai/glaive-code-assistant
- glaiveai/glaive-function-calling-v2
- garage-bAInd/Open-Platypus
- meta-math/MetaMathQA (first 40k examples)
- teknium/GPTeacher-General-Instruct
- GPTeacher roleplay datasets
- BI55/MedText
- pubmed_qa labeled subset
- Unnatural Instructions
- CollectiveCognition/chats-data-2023-09-27
- CollectiveCognition/chats-data-2023-10-16

## Training Procedure

- This model was trained on 8 kaggle TPUs, using torch xla SPMD for high MXU efficiency. There was no expense on my end (meaning you can reproduce this too!)
- A learning rate of 2e-06 with the Adam optimizer. A linear scheduler was used, with an end factor of 0.5. A low learning rate was used to prevent exploding gradients.
- No mixed precision was used, with the default dtype being bfloat16.
- Trained on 200,000 examples of Hercules-v2.0.
- No model parameters were frozen.
- This model was trained on OpenAI's ChatML prompt format. Because this model has function calling capabilities, the prompt format is slightly different, here's what it would look like: ```<|im_start|>system\n{message}<|im_end|>\n<|im_start|>user\n{user message}<|im_end|>\n<|im_start|>call\n{function call message}<|im_end|>\n<|im_start|>function\n{function response message}<|im_end|>\n<|im_start|>assistant\n{assistant message}</s>```

This model was fine-tuned using the TPU-Alignment repository. https://github.com/Locutusque/TPU-Alignment

# Updates

- 🔥 **February 3, 2024: This model scored an average of 62 on Open LLM Leaderboard, outperforming OpenHermes-2.5 and OpenChat-3.5.**

# Quants

exl2 by @bartowski https://huggingface.co/bartowski/Hercules-2.0-Mistral-7B-exl2
# [Open LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
Detailed results can be found [here](https://huggingface.co/datasets/open-llm-leaderboard/details_Locutusque__Hercules-2.0-Mistral-7B)

|             Metric              |Value|
|---------------------------------|----:|
|Avg.                             |62.69|
|AI2 Reasoning Challenge (25-Shot)|61.09|
|HellaSwag (10-Shot)              |83.69|
|MMLU (5-Shot)                    |63.47|
|TruthfulQA (0-shot)              |43.97|
|Winogrande (5-shot)              |79.48|
|GSM8k (5-shot)                   |44.43|


{"license": "apache-2.0", "library_name": "transformers", "tags": ["not-for-all-audiences", "chemistry", "math", "code", "physics"], "datasets": ["Locutusque/hercules-v2.0"], "widget": [{"example_title": "Derivative", "text": "<|im_start|>user\nIn this task, you are given a description of an object and its surroundings. Your task is to describe the motion of the object mentioned in the description using differential equations. The answer should be a mathematical expression in t. Description: A ball is thrown up at 30 ft/sec from 3 feet off the ground. Solve this step-by-step, explaining each step in detail.<|im_end|>\n<|im_start|>assistant\n", "output": {"text": "Let h(t) be the height of the ball at time t after it was thrown. We know that when the ball is thrown, it has an initial velocity v0 = 30 ft/sec and initial height y0 = 3 ft. We also know that the acceleration due to gravity g = -32 ft/sec^2.\n\nTo solve for the motion of the ball, we can use the equation for vertical motion with acceleration due to gravity:\n\nh(t) = v0 * t + (1/2) * g * t^2 + y0\n\nSubstituting the values given in the problem, we get:\n\ny(t) = (30)(t) + (1/2)(-32)(t)^2 + 3\n\nNow, let's simplify the equation:\n\ny(t) = 30t - 16t^2 + 3\n\nThis is the final solution for the height of the ball as a function of time."}}], "model-index": [{"name": "Hercules-2.0-Mistral-7B", "results": [{"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "AI2 Reasoning Challenge (25-Shot)", "type": "ai2_arc", "config": "ARC-Challenge", "split": "test", "args": {"num_few_shot": 25}}, "metrics": [{"type": "acc_norm", "value": 61.09, "name": "normalized accuracy"}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}, {"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "HellaSwag (10-Shot)", "type": "hellaswag", "split": "validation", "args": {"num_few_shot": 10}}, "metrics": [{"type": "acc_norm", "value": 83.69, "name": "normalized accuracy"}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}, {"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "MMLU (5-Shot)", "type": "cais/mmlu", "config": "all", "split": "test", "args": {"num_few_shot": 5}}, "metrics": [{"type": "acc", "value": 63.47, "name": "accuracy"}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}, {"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "TruthfulQA (0-shot)", "type": "truthful_qa", "config": "multiple_choice", "split": "validation", "args": {"num_few_shot": 0}}, "metrics": [{"type": "mc2", "value": 43.97}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}, {"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "Winogrande (5-shot)", "type": "winogrande", "config": "winogrande_xl", "split": "validation", "args": {"num_few_shot": 5}}, "metrics": [{"type": "acc", "value": 79.48, "name": "accuracy"}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}, {"task": {"type": "text-generation", "name": "Text Generation"}, "dataset": {"name": "GSM8k (5-shot)", "type": "gsm8k", "config": "main", "split": "test", "args": {"num_few_shot": 5}}, "metrics": [{"type": "acc", "value": 44.43, "name": "accuracy"}], "source": {"url": "https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=Locutusque/Hercules-2.0-Mistral-7B", "name": "Open LLM Leaderboard"}}]}]}
transformers safetensors mistral text-generation not-for-all-audiences chemistry math code physics dataset:Locutusque/hercules-v2.0 license:apache-2.0 model-index autotrain_compatible endpoints_compatible has_space text-generation-inference region:us