Locutusque's picture
Adding Evaluation Results (#4)
ced2fc9 verified
metadata
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

      In 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|>

      <|im_start|>assistant
    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.


        To solve for the motion of the ball, we can use the equation for
        vertical motion with acceleration due to gravity:


        h(t) = v0 * t + (1/2) * g * t^2 + y0


        Substituting the values given in the problem, we get:


        y(t) = (30)(t) + (1/2)(-32)(t)^2 + 3


        Now, let's simplify the equation:


        y(t) = 30t - 16t^2 + 3


        This 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

Model Card: Hercules-2.0-Mistral-7B

image/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

Detailed results can be found here

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