File size: 2,811 Bytes
c13093c
adb3876
c13093c
 
eb012f3
 
 
c13093c
eb012f3
 
c13093c
 
eb012f3
 
 
 
 
 
 
63bcbad
eb012f3
63bcbad
4c372cb
63bcbad
 
 
eb012f3
 
 
63bcbad
eb012f3
 
63bcbad
eb012f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
adb3876
eb012f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
base_model: GeneZC/MiniChat-2-3B
inference: True
model_type: Llama
tags:
- nm-vllm
- sparse
---
## MiniChat-2-3B-pruned2.4
This repo contains model files for [MiniChat-2-3B-pruned2.4](https://huggingface.co/GeneZC/MiniChat-2-3B) optimized for [NM-vLLM](https://github.com/neuralmagic/nm-vllm), a high-throughput serving engine for compressed LLMs.

This model was pruned with [SparseGPT](https://arxiv.org/abs/2301.00774), using [SparseML](https://github.com/neuralmagic/sparseml).

## Inference
Install [NM-vLLM](https://github.com/neuralmagic/nm-vllm) for fast inference and low memory-usage: 
```bash
pip install nm-vllm[sparse]
```
Run in a Python pipeline for local inference:
```python
from vllm import LLM, SamplingParams

model = LLM("nm-testing/MiniChat-2-3B-pruned2.4", sparsity="semi_structured_sparse_w16a16")
prompt = "How to make banana bread?"
formatted_prompt =  f"<s> [|User|]\n{prompt}</s>[|Assistant|]\n"

sampling_params = SamplingParams(max_tokens=100,temperature=0,repetition_penalty=1.3)
outputs = model.generate(formatted_prompt, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
"""
Answer: Create a recipe for making banana bread using ingredients like flour, water and sugar.  Explain the process of mixing these materials together until they form an unpleasant mixture that can be used in cooking methods such as baking or boiling processes. Describe how you would create this dough by adding it into your kitchen's oven-based environment while describing its properties during each stage before creating them on topical forms. You will also describe what

"""
```

## Prompt template

```
### User:
{prompt}
### Assistant:

```

## Sparsification
For details on how this model was sparsified, see the `recipe.yaml` in this repo and follow the instructions below.

Install [SparseML](https://github.com/neuralmagic/sparseml):
```bash
git clone https://github.com/neuralmagic/sparseml
pip install -e "sparseml[transformers]"
```

Replace the recipe as you like and run this one-shot compression script to apply SparseGPT:
```python
import sparseml.transformers

original_model_name = "GeneZC/MiniChat-2-3B"
calibration_dataset = "open_platypus"
output_directory = "output/"

recipe = """
test_stage:
  obcq_modifiers:
    SparseGPTModifier:
      sparsity: 0.5
      sequential_update: true
      mask_structure: '2:4'
      targets: ['re:model.layers.\d*$']
"""

# Apply SparseGPT to the model
sparseml.transformers.oneshot(
    model=original_model_name,
    dataset=calibration_dataset,
    recipe=recipe,
    output_dir=output_directory,
)
```

## Slack

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)