|
--- |
|
language: |
|
- en |
|
tags: |
|
- upstage |
|
- llama-2 |
|
- instruct |
|
- instruction |
|
pipeline_tag: text-generation |
|
--- |
|
# SOLAR-0-70b-8bit model card |
|
|
|
This is a 8bit quantized version of [upstage/Llama-2-70b-instruct-v2](https://huggingface.co/upstage/Llama-2-70b-instruct-v2) |
|
|
|
## Model Details |
|
|
|
* **Developed by**: [Upstage](https://en.upstage.ai) |
|
* **Backbone Model**: [LLaMA-2](https://github.com/facebookresearch/llama/tree/main) |
|
* **Language(s)**: English |
|
* **Library**: [HuggingFace Transformers](https://github.com/huggingface/transformers) |
|
* **License**: Fine-tuned checkpoints is licensed under the Non-Commercial Creative Commons license ([CC BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/)) |
|
* **Where to send comments**: Instructions on how to provide feedback or comments on a model can be found by opening an issue in the [Hugging Face community's model repository](https://huggingface.co/upstage/SOLAR-0-70b-8bit/discussions) |
|
* **Contact**: For questions and comments about the model, please email [contact@upstage.ai](mailto:contact@upstage.ai) |
|
|
|
## Dataset Details |
|
|
|
### Used Datasets |
|
- Orca-style dataset |
|
- Alpaca-style dataset |
|
- No other dataset was used except for the dataset mentioned above |
|
- No benchmark test set or the training set are used |
|
|
|
|
|
### Prompt Template |
|
``` |
|
### System: |
|
{System} |
|
|
|
### User: |
|
{User} |
|
|
|
### Assistant: |
|
{Assistant} |
|
``` |
|
|
|
## Usage |
|
|
|
- The followings are tested on A100 80GB |
|
- Our model can handle up to 10k+ input tokens, thanks to the `rope_scaling` option |
|
|
|
```python |
|
import torch |
|
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("upstage/SOLAR-0-70b-8bit") |
|
model = AutoModelForCausalLM.from_pretrained( |
|
"upstage/SOLAR-0-70b-8bit", |
|
device_map="auto", |
|
torch_dtype=torch.float16, |
|
load_in_8bit=True, |
|
rope_scaling={"type": "dynamic", "factor": 2} # allows handling of longer inputs |
|
) |
|
|
|
prompt = "### User:\nThomas is healthy, but he has to go to the hospital. What could be the reasons?\n\n### Assistant:\n" |
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
del inputs["token_type_ids"] |
|
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True) |
|
|
|
output = model.generate(**inputs, streamer=streamer, use_cache=True, max_new_tokens=float('inf')) |
|
output_text = tokenizer.decode(output[0], skip_special_tokens=True) |
|
``` |
|
|
|
## Hardware and Software |
|
|
|
* **Hardware**: We utilized an A100x8 * 4 for training our model |
|
* **Training Factors**: We fine-tuned this model using a combination of the [DeepSpeed library](https://github.com/microsoft/DeepSpeed) and the [HuggingFace Trainer](https://huggingface.co/docs/transformers/main_classes/trainer) / [HuggingFace Accelerate](https://huggingface.co/docs/accelerate/index) |
|
|
|
## Evaluation Results |
|
|
|
### Overview |
|
- We conducted a performance evaluation following the tasks being evaluated on the [Open LLM Leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard). |
|
We evaluated our model on four benchmark datasets, which include `ARC-Challenge`, `HellaSwag`, `MMLU`, and `TruthfulQA` |
|
We used the [lm-evaluation-harness repository](https://github.com/EleutherAI/lm-evaluation-harness), specifically commit [b281b0921b636bc36ad05c0b0b0763bd6dd43463](https://github.com/EleutherAI/lm-evaluation-harness/tree/b281b0921b636bc36ad05c0b0b0763bd6dd43463). |
|
- We used [MT-bench](https://github.com/lm-sys/FastChat/tree/main/fastchat/llm_judge), a set of challenging multi-turn open-ended questions, to evaluate the models |
|
|
|
### Main Results |
|
| Model | H4(Avg) | ARC | HellaSwag | MMLU | TruthfulQA | | MT_Bench | |
|
|--------------------------------------------------------------------|----------|----------|----------|------|----------|-|-------------| |
|
| **[Llama-2-70b-instruct-v2](https://huggingface.co/upstage/Llama-2-70b-instruct-v2)**(***Ours***, ***Open LLM Leaderboard***) | **73** | **71.1** | **87.9** | **70.6** | **62.2** | | **7.44063** | |
|
| [Llama-2-70b-instruct](https://huggingface.co/upstage/Llama-2-70b-instruct) (Ours, Open LLM Leaderboard) | 72.3 | 70.9 | 87.5 | 69.8 | 61 | | 7.24375 | |
|
| [llama-65b-instruct](https://huggingface.co/upstage/llama-65b-instruct) (Ours, Open LLM Leaderboard) | 69.4 | 67.6 | 86.5 | 64.9 | 58.8 | | | |
|
| Llama-2-70b-hf | 67.3 | 67.3 | 87.3 | 69.8 | 44.9 | | | |
|
| [llama-30b-instruct-2048](https://huggingface.co/upstage/llama-30b-instruct-2048) (Ours, Open LLM Leaderboard) | 67.0 | 64.9 | 84.9 | 61.9 | 56.3 | | | |
|
| [llama-30b-instruct](https://huggingface.co/upstage/llama-30b-instruct) (Ours, Open LLM Leaderboard) | 65.2 | 62.5 | 86.2 | 59.4 | 52.8 | | | |
|
| llama-65b | 64.2 | 63.5 | 86.1 | 63.9 | 43.4 | | | |
|
| falcon-40b-instruct | 63.4 | 61.6 | 84.3 | 55.4 | 52.5 | | | |
|
|
|
### Scripts for H4 Score Reproduction |
|
- Prepare evaluation environments: |
|
``` |
|
# clone the repository |
|
git clone https://github.com/EleutherAI/lm-evaluation-harness.git |
|
# check out the specific commit |
|
git checkout b281b0921b636bc36ad05c0b0b0763bd6dd43463 |
|
# change to the repository directory |
|
cd lm-evaluation-harness |
|
``` |
|
|
|
## Contact Us |
|
|
|
### About Upstage |
|
- [Upstage](https://en.upstage.ai) is a company specialized in Large Language Models (LLMs) and AI. We will help you build private LLMs and related applications. |
|
If you have a dataset to build domain specific LLMs or make LLM applications, please contact us at ► [click here to contact](https://www.upstage.ai/private-llm?utm_source=huggingface&utm_medium=link&utm_campaign=privatellm) |
|
- As of August 1st, our 70B model has reached the top spot in openLLM rankings, marking itself as the current leading performer globally. |