File size: 2,835 Bytes
60eb66e
 
 
 
 
 
 
 
 
 
 
 
 
36299e4
60eb66e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
---
base_model: neuralmagic/Llama-2-7b-pruned50-retrained
inference: true
model_type: llama
pipeline_tag: text-generation
datasets:
  - openai/gsm8k
tags:
- sparse
---

# Llama-2-7b-gsm8k-pruned_50

This repo contains a [50% sparse Llama 2 7B](https://huggingface.co/neuralmagic/Llama-2-7b-pruned50-retrained) finetuned for arithmetic reasoning using the [GSM8k](https://huggingface.co/datasets/openai/gsm8k) dataset.

Official model weights from [Enabling High-Sparsity Foundational Llama Models with Efficient Pretraining and Deployment](https://arxiv.org/abs/2405.03594).

**Authors**: Neural Magic, Cerebras

## Usage

Below we share some code snippets on how to get quickly started with running the model.

### Sparse Transfer

By leveraging a pre-sparsified model's structure, you can efficiently fine-tune on new data, leading to reduced hyperparameter tuning, training times, and computational costs. Learn about this process [here](https://neuralmagic.github.io/docs-v2/get-started/transfer).

### Running the model

This model may be run with the transformers library. For accelerated inference with sparsity, deploy with [nm-vllm](https://github.com/neuralmagic/nm-vllm) or [deepsparse](https://github.com/neuralmagic/deepsparse).

```python
# pip install transformers accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("neuralmagic/Llama-2-7b-gsm8k-pruned_50")
model = AutoModelForCausalLM.from_pretrained("neuralmagic/Llama-2-7b-gsm8k-pruned_50", device_map="auto")

input_text = "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May?"
input_ids = tokenizer.apply_chat_template(input_text, add_generation_prompt=True, return_tensors="pt").to("cuda")

outputs = model.generate(**input_ids)
print(tokenizer.decode(outputs[0]))
```

## Evaluation Benchmark Results

Model evaluation metrics and results.

| Benchmark | Metric | Llama-2-7b-gsm8k | Llama-2-7b-gsm8k-pruned_50 |
|:----:|:----:|:----:|:----:|
| [GSM8K](https://arxiv.org/abs/2110.14168) | 0-shot  | 35.5%  | 36.5% |


## Model Training Details

This model was obtained by sparse-tranfer of the sparse foundational model [Llama-2-7b-pruned50-retrained](https://huggingface.co/neuralmagic/Llama-2-7b-pruned50-retrained) on the [GSM8k](https://huggingface.co/datasets/openai/gsm8k) dataset.
Sparse-transfer was performed with [SquareHead](https://arxiv.org/abs/2310.06927) knowledge distillation with [Llama-2-7b-gsm8k](https://huggingface.co/neuralmagic/Llama-2-7b-gsm8k) as teacher.

## Help

For further support, and discussions on these models and AI in general, join [Neural Magic's Slack Community](https://join.slack.com/t/discuss-neuralmagic/shared_invite/zt-q1a1cnvo-YBoICSIw3L1dmQpjBeDurQ)