Views
No views yet
1from vllm import LLM, SamplingParams
2from transformers import AutoTokenizer
3
4model_id = "neuralmagic/gemma-2-9b-it-quantized.w4a16"
5
6sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=256)
7
8tokenizer = AutoTokenizer.from_pretrained(model_id)
9
10messages = [
11 {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
12 {"role": "user", "content": "Who are you? Please respond in pirate speak."},
13]
14
15prompts = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
16
17llm = LLM(model=model_id, tensor_parallel_size=2)
18
19outputs = llm.generate(prompts, sampling_params)
20
21generated_text = outputs[0].outputs[0].text
22print(generated_text)generate() function.1from transformers import AutoTokenizer, AutoModelForCausalLM
2
3model_id = "neuralmagic/gemma-2-9b-it-quantized.w4a16"
4
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id,
8 torch_dtype="auto",
9 device_map="auto",
10)
11
12messages = [
13 {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
14 {"role": "user", "content": "Who are you? Please respond in pirate speak"},
15]
16
17input_ids = tokenizer.apply_chat_template(
18 messages,
19 add_generation_prompt=True,
20 return_tensors="pt"
21).to(model.device)
22
23terminators = [
24 tokenizer.eos_token_id,
25 tokenizer.convert_tokens_to_ids("<|eot_id|>")
26]
27
28outputs = model.generate(
29 input_ids,
30 max_new_tokens=256,
31 eos_token_id=terminators,
32 do_sample=True,
33 temperature=0.6,
34 top_p=0.9,
35)
36response = outputs[0][input_ids.shape[-1]:]
37print(tokenizer.decode(response, skip_special_tokens=True))1from transformers import AutoTokenizer
2from llmcompressor.transformers import SparseAutoModelForCausalLM, oneshot
3from llmcompressor.modifiers.quantization import GPTQModifier
4from datasets import load_dataset
5import random
6
7model_id = "google/gemma-2-9b-it"
8
9num_samples = 512
10max_seq_len = 4096
11
12tokenizer = AutoTokenizer.from_pretrained(model_id)
13
14preprocess_fn = lambda example: {"text": "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n{text}".format_map(example)}
15
16dataset_name = "neuralmagic/LLM_compression_calibration"
17dataset = load_dataset(dataset_name, split="train")
18ds = dataset.shuffle().select(range(num_samples))
19ds = ds.map(preprocess_fn)
20
21examples = [
22 tokenizer(
23 example["text"], padding=False, max_length=max_seq_len, truncation=True,
24 ) for example in ds
25]
26
27recipe = GPTQModifier(
28 targets="Linear",
29 scheme="W4A16",
30 ignore=["lm_head"],
31 dampening_frac=0.01,
32)
33
34model = SparseAutoModelForCausalLM.from_pretrained(
35 model_id,
36 device_map="auto",
37 trust_remote_code=True,
38)
39
40oneshot(
41 model=model,
42 dataset=ds,
43 recipe=recipe,
44 max_seq_length=max_seq_len,
45 num_calibration_samples=num_samples,
46)
47
48model.save_pretrained("gemma-2-9b-it-quantized.w4a16")lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/gemma-2-9b-it-quantized.w4a16",dtype=auto,tensor_parallel_size=2,gpu_memory_utilization=0.4,add_bos_token=True,max_model_len=4096,trust_remote_code=True \
--tasks openllm \
--batch_size auto| Benchmark | gemma-2-9b-it | gemma-2-9b-it-quantized.w4a16(this model) | Recovery |
| MMLU (5-shot) | 72.28 | 71.36 | 98.72% |
| ARC Challenge (25-shot) | 71.5 | 70.98 | 99.27% |
| GSM-8K (5-shot, strict-match) | 76.26 | 79.83 | 104.68% |
| Hellaswag (10-shot) | 81.91 | 81.29 | 99.24% |
| Winogrande (5-shot) | 77.11 | 78.29 | 101.53% |
| TruthfulQA (0-shot) | 60.32 | 59.97 | 99.42% |
| Average | 73.23 | 73.62 | 100.53% |