File size: 1,812 Bytes
820eb97
a8a4123
 
820eb97
a8a4123
e4cdf1e
a8a4123
 
 
e4cdf1e
a8a4123
a250eb1
a8a4123
 
a250eb1
 
a8a4123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41152e3
 
 
 
f8d2eeb
41152e3
f8d2eeb
41152e3
f8d2eeb
41152e3
 
 
f8d2eeb
41152e3
f8d2eeb
41152e3
 
 
 
 
 
fc33041
41152e3
f8d2eeb
41152e3
 
 
 
 
 
 
 
 
 
 
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
---
library_name: peft
base_model: mistralai/Mistral-7B-v0.1
---

### Model Details

### Model Description

This is quantized model of mistral-7B. 

- **Developed by:** Rais Kazi

### Model Sources [optional]
https://github.com/meetrais/LLM-Fine-Tuning/blob/main/finetune_mistral_7b.py
https://github.com/meetrais/LLM-Fine-Tuning/blob/main/call_finetune_mistral_7b.py

## Training procedure


The following `bitsandbytes` quantization config was used during training:
- quant_method: QuantizationMethod.BITS_AND_BYTES
- load_in_8bit: False
- load_in_4bit: True
- llm_int8_threshold: 6.0
- llm_int8_skip_modules: None
- llm_int8_enable_fp32_cpu_offload: False
- llm_int8_has_fp16_weight: False
- bnb_4bit_quant_type: nf4
- bnb_4bit_use_double_quant: True
- bnb_4bit_compute_dtype: bfloat16

### Framework versions


- PEFT 0.6.2.dev0

## Code to call this mnodel

import torch

from peft import PeftModel, PeftConfig

from transformers import AutoModelForCausalLM, AutoTokenizer

from transformers import BitsAndBytesConfig

peft_model_id = "meetrais/finetuned_mistral_7b"

config = PeftConfig.from_pretrained(peft_model_id)

bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)

model = AutoModelForCausalLM.from_pretrained(peft_model_id,  quantization_config=bnb_config, device_map='auto')

tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)

if tokenizer.pad_token is None:
    tokenizer.add_special_tokens({'pad_token': '[PAD]'})
text = "Capital of USA is"
device = "cuda:0"

inputs = tokenizer(text, return_tensors="pt").to(device)

outputs = model.generate(**inputs, pad_token_id= tokenizer.eos_token_id, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))