Views
No views yet
1from vllm import LLM, SamplingParams
2from transformers import AutoTokenizer
3
4model_id = "neuralmagic/Llama-2-7b-chat-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?"},
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/Llama-2-7b-chat-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?"},
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 auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
3from datasets import load_dataset
4import random
5
6model_id = "meta-llama/Llama-2-7b-chat"
7
8num_samples = 512
9max_seq_len = 4096
10
11tokenizer = AutoTokenizer.from_pretrained(model_id)
12
13preprocess_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)}
14
15dataset_name = "neuralmagic/LLM_compression_calibration"
16dataset = load_dataset(dataset_name, split="train")
17ds = dataset.shuffle().select(range(num_samples))
18ds = ds.map(preprocess_fn)
19
20examples = [
21 tokenizer(
22 example["text"], padding=False, max_length=max_seq_len, truncation=True,
23 ) for example in ds
24]
25
26quantize_config = BaseQuantizeConfig(
27 bits=4,
28 group_size=128,
29 desc_act=True,
30 model_file_base_name="model",
31 damp_percent=0.1,
32)
33
34model = AutoGPTQForCausalLM.from_pretrained(
35 model_id,
36 quantize_config,
37 device_map="auto",
38)
39
40model.quantize(examples)
41model.save_pretrained("Llama-2-7b-chat-quantized.w4a16")lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Llama-2-7b-chat-quantized.w4a16",dtype=auto,tensor_parallel_size=2,gpu_memory_utilization=0.4,add_bos_token=True,max_model_len=4096 \
--tasks openllm \
--batch_size auto| Benchmark | Llama-2-7b-chat | Llama-2-7b-chat-quantized.w4a16(this model) | Recovery |
| MMLU (5-shot) | 47.33 | 46.7 | 98.66% |
| ARC Challenge (25-shot) | 53.24 | 53.75 | 100.95% |
| GSM-8K (5-shot, strict-match) | 23.19 | 21.75 | 93.79% |
| Hellaswag (10-shot) | 78.64 | 77.35 | 98.36% |
| Winogrande (5-shot) | 72.45 | 70.4 | 98.66% |
| TruthfulQA (0-shot) | 45.58 | 45.94 | 100.78% |
| Average | 53.40 | 52.64 | 98.58% |