Suparious's picture
Update README.md
5619f8d verified
|
raw
history blame
4.9 kB
metadata
base_model: mistralai/Mistral-7B-v0.1
tags:
  - Mistral
  - instruct
  - finetune
  - chatml
  - DPO
  - RLHF
  - gpt4
  - synthetic data
  - distillation
  - function calling
  - json mode
  - quantized
  - 4-bit
  - AWQ
  - text-generation
  - autotrain_compatible
  - endpoints_compatible
  - chatml
model-index:
  - name: Hermes-2-Pro-Mistral-7B
    results: []
license: apache-2.0
language:
  - en
datasets:
  - teknium/OpenHermes-2.5
widget:
  - example_title: Hermes 2 Pro
    messages:
      - role: system
        content: >-
          You are a sentient, superintelligent artificial general intelligence,
          here to teach and assist me.
      - role: user
        content: >-
          Write a short story about Goku discovering kirby has teamed up with
          Majin Buu to destroy the world.
model_type: mistral
pipeline_tag: text-generation
inference: false
prompt_template: |
  <|im_start|>system
  {system_message}<|im_end|>
  <|im_start|>user
  {prompt}<|im_end|>
  <|im_start|>assistant
quantized_by: Suparious

NousResearch/Hermes-2-Pro-Mistral-7B AWQ

image/png

Model Summary

Hermes 2 Pro on Mistral 7B is the new flagship 7B Hermes!

Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced Function Calling and JSON Mode dataset developed in-house.

This new version of Hermes maintains its excellent general task and conversation capabilities - but also excels at Function Calling, JSON Structured Outputs, and has improved on several other metrics as well, scoring a 90% on our function calling evaluation built in partnership with Fireworks.AI, and an 84% on our structured JSON Output evaluation.

Hermes Pro takes advantage of a special system prompt and multi-turn function calling structure with a new chatml role in order to make function calling reliable and easy to parse. Learn more about prompting below.

This work was a collaboration between Nous Research, @interstellarninja, and Fireworks.AI

Learn more about the function calling system for this model on our github repo here: https://github.com/NousResearch/Hermes-Function-Calling

How to use

Install the necessary packages

pip install --upgrade autoawq autoawq-kernels

Example Python code

from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer, TextStreamer

model_path = "solidrust/Hermes-2-Pro-Mistral-7B-AWQ"
system_message = "You are Hermes, incarnated as a powerful AI."

# Load model
model = AutoAWQForCausalLM.from_quantized(model_path,
                                          fuse_layers=True)
tokenizer = AutoTokenizer.from_pretrained(model_path,
                                          trust_remote_code=True)
streamer = TextStreamer(tokenizer,
                        skip_prompt=True,
                        skip_special_tokens=True)

# Convert prompt to tokens
prompt_template = """\
<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant"""

prompt = "You're standing on the surface of the Earth. "\
        "You walk one mile south, one mile west and one mile north. "\
        "You end up exactly where you started. Where are you?"

tokens = tokenizer(prompt_template.format(system_message=system_message,prompt=prompt),
                  return_tensors='pt').input_ids.cuda()

# Generate output
generation_output = model.generate(tokens,
                                  streamer=streamer,
                                  max_new_tokens=512)

About AWQ

AWQ is an efficient, accurate and blazing-fast low-bit weight quantization method, currently supporting 4-bit quantization. Compared to GPTQ, it offers faster Transformers-based inference with equivalent or better quality compared to the most commonly used GPTQ settings.

AWQ models are currently supported on Linux and Windows, with NVidia GPUs only. macOS users: please use GGUF models instead.

It is supported by:

Prompt template: ChatML

<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant