初始化项目,由ModelHub XC社区提供模型
Model: solidrust/Hermes-2-Pro-Mistral-7B-AWQ Source: Original Platform
This commit is contained in:
168
README.md
Normal file
168
README.md
Normal file
@@ -0,0 +1,168 @@
|
||||
---
|
||||
base_model: NousResearch/Hermes-2-Pro-Mistral-7B
|
||||
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
|
||||
|
||||
- Model creator: [NousResearch](https://huggingface.co/NousResearch)
|
||||
- Original model: [Hermes-2-Pro-Mistral-7B](https://huggingface.co/NousResearch/Hermes-2-Pro-Mistral-7B)
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
```bash
|
||||
pip install --upgrade autoawq autoawq-kernels
|
||||
```
|
||||
|
||||
### Example Python code
|
||||
|
||||
```python
|
||||
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:
|
||||
|
||||
- [Text Generation Webui](https://github.com/oobabooga/text-generation-webui) - using Loader: AutoAWQ
|
||||
- [vLLM](https://github.com/vllm-project/vllm) - version 0.2.2 or later for support for all model types.
|
||||
- [Hugging Face Text Generation Inference (TGI)](https://github.com/huggingface/text-generation-inference)
|
||||
- [Transformers](https://huggingface.co/docs/transformers) version 4.35.0 and later, from any code or client that supports Transformers
|
||||
- [AutoAWQ](https://github.com/casper-hansen/AutoAWQ) - for use from Python code
|
||||
|
||||
## Prompt template: ChatML
|
||||
|
||||
```plaintext
|
||||
<|im_start|>system
|
||||
{system_message}<|im_end|>
|
||||
<|im_start|>user
|
||||
{prompt}<|im_end|>
|
||||
<|im_start|>assistant
|
||||
```
|
||||
|
||||
## Function calling
|
||||
|
||||
System prompt example:
|
||||
|
||||
```plaintext
|
||||
You are a function calling AI model. You are provided with function signatures within <tools></tools> XML tags.
|
||||
You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions.
|
||||
Use the following json schema for each tool call you will make: {"title": "FunctionCall", "type": "object", "properties": {"arguments": {"title": "Arguments", "type": "object"}, "name": {"title": "Name", "type": "string"}}, "required": ["arguments", "name"]}
|
||||
For each function call return a json object with function name and arguments within <tool_call></tool_call> XML tags as follows:
|
||||
<tool_call>
|
||||
{"arguments": <args-dict>, "name": <function-name>}
|
||||
</tool_call>
|
||||
```
|
||||
|
||||
## How to cite:
|
||||
|
||||
```plaintext
|
||||
@misc{Hermes-2-Pro-Mistral-7B,
|
||||
url={[https://huggingface.co/NousResearch/Hermes-2-Pro-Mistral-7B]https://huggingface.co/NousResearch/Hermes-2-Pro-Mistral-7B)},
|
||||
title={Hermes-2-Pro-Mistral-7B},
|
||||
author={"interstellarninja", "Teknium", "theemozilla", "karan4d", "huemin_art"}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user