Views
No views yet
1from vllm import LLM, SamplingParams
2from transformers import AutoTokenizer
3
4model_id = "neuralmagic/Phi-3-medium-128k-instruct-quantized.w8a16"
5number_gpus = 2
6
7sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=256)
8
9tokenizer = AutoTokenizer.from_pretrained(model_id)
10
11messages = [
12 {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
13 {"role": "user", "content": "Who are you?"},
14]
15
16prompts = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
17
18llm = LLM(model=model_id, trust_remote_code=True, max_model_len=8196, tensor_parallel_size=number_gpus)
19
20outputs = llm.generate(prompts, sampling_params)
21
22generated_text = outputs[0].outputs[0].text
23print(generated_text)generate() function.1from transformers import AutoTokenizer, AutoModelForCausalLM
2
3model_id = "neuralmagic/Phi-3-medium-128k-instruct-quantized.w8a16"
4
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id,
8 torch_dtype="auto",
9 device_map="auto",
10 trust_remote_code=True,
11)
12
13messages = [
14 {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
15 {"role": "user", "content": "Who are you?"},
16]
17
18input_ids = tokenizer.apply_chat_template(
19 messages,
20 add_generation_prompt=True,
21 return_tensors="pt"
22).to(model.device)
23
24outputs = model.generate(
25 input_ids,
26 max_new_tokens=256,
27 do_sample=True,
28 temperature=0.6,
29 top_p=0.9,
30)
31response = outputs[0][input_ids.shape[-1]:]
32print(tokenizer.decode(response, skip_special_tokens=True))1from transformers import AutoTokenizer
2from datasets import Dataset
3from llmcompressor.transformers import SparseAutoModelForCausalLM, oneshot
4from llmcompressor.modifiers.quantization import GPTQModifier
5import random
6
7model_id = "microsoft/Phi-3-medium-128k-instruct"
8
9num_samples = 256
10max_seq_len = 8192
11
12tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
13
14max_token_id = len(tokenizer.get_vocab()) - 1
15input_ids = [[random.randint(0, max_token_id) for _ in range(max_seq_len)] for _ in range(num_samples)]
16attention_mask = num_samples * [max_seq_len * [1]]
17ds = Dataset.from_dict({"input_ids": input_ids, "attention_mask": attention_mask})
18
19recipe = GPTQModifier(
20 targets="Linear",
21 scheme="W8A16",
22 ignore=["lm_head"],
23 dampening_frac=0.01,
24)
25
26model = SparseAutoModelForCausalLM.from_pretrained(
27 model_id,
28 device_map="auto",
29 trust_remote_code=True,
30)
31
32oneshot(
33 model=model,
34 dataset=ds,
35 recipe=recipe,
36 max_seq_length=max_seq_len,
37 num_calibration_samples=num_samples,
38 tokenizer=tokenizer,
39)
40
41model.save_pretrained("Phi-3-medium-128k-instruct-quantized.w8a16")lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Phi-3-medium-128k-instruct-quantized.w8a16",dtype=auto,gpu_memory_utilization=0.4,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
--tasks openllm \
--batch_size auto| Benchmark | Phi-3-medium-128k-instruct | Phi-3-medium-128k-instruct-quantized.w8a16(this model) | Recovery |
| MMLU (5-shot) | 76.69 | 76.76 | 100.1% |
| ARC Challenge (25-shot) | 69.45 | 69.28 | 99.8% |
| GSM-8K (5-shot, strict-match) | 85.22 | 84.61 | 99.3% |
| Hellaswag (10-shot) | 85.10 | 85.09 | 100.0% |
| Winogrande (5-shot) | 73.56 | 74.03 | 100.6% |
| TruthfulQA (0-shot) | 54.57 | 54.45 | 99.8% |
| Average | 74.10 | 74.04 | 99.9% |