Views
No views yet
1from transformers import AutoTokenizer
2from vllm import LLM, SamplingParams
3
4max_model_len, tp_size = 4096, 4
5model_name = "neuralmagic/DeepSeek-Coder-V2-Instruct-FP8"
6tokenizer = AutoTokenizer.from_pretrained(model_name)
7llm = LLM(model=model_name, tensor_parallel_size=tp_size, max_model_len=max_model_len, trust_remote_code=True, enforce_eager=True)
8sampling_params = SamplingParams(temperature=0.3, max_tokens=256, stop_token_ids=[tokenizer.eos_token_id])
9
10messages_list = [
11 [{"role": "user", "content": "Who are you? Please respond in pirate speak!"}],
12]
13
14prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) for messages in messages_list]
15
16outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)
17
18generated_text = [output.outputs[0].text for output in outputs]
19print(generated_text)1from datasets import load_dataset
2from transformers import AutoTokenizer
3
4from auto_fp8 import AutoFP8ForCausalLM, BaseQuantizeConfig
5
6pretrained_model_dir = "deepseek-ai/DeepSeek-Coder-V2-Instruct"
7quantized_model_dir = "DeepSeek-Coder-V2-Instruct-FP8"
8
9tokenizer = AutoTokenizer.from_pretrained(pretrained_model_dir, use_fast=True, model_max_length=4096)
10tokenizer.pad_token = tokenizer.eos_token
11
12ds = load_dataset("mgoin/ultrachat_2k", split="train_sft").select(range(512))
13examples = [tokenizer.apply_chat_template(batch["messages"], tokenize=False) for batch in ds]
14examples = tokenizer(examples, padding=True, truncation=True, return_tensors="pt").to("cuda")
15
16quantize_config = BaseQuantizeConfig(
17 quant_method="fp8",
18 activation_scheme="static"
19 ignore_patterns=["re:.*lm_head"],
20)
21
22device_map = {
23 "model.embed_tokens": 0,
24 "model.layers.0": 0,
25}
26for i in range(1, 60):
27 device_map[f"model.layers.{i}"] = i//8
28
29device_map["model.norm"] = 7
30device_map["lm_head"] = 7
31
32model = AutoFP8ForCausalLM.from_pretrained(
33 pretrained_model_dir, quantize_config=quantize_config, device_map = device_map
34)
35model.quantize(examples)
36model.save_quantized(quantized_model_dir)python codegen/generate.py --model neuralmagic/DeepSeek-Coder-V2-Instruct-FP8 --temperature 0.2 --n_samples 50 --resume --root ~ --dataset humaneval
python evalplus/sanitize.py ~/humaneval/neuralmagic--DeepSeek-Coder-V2-Instruct-FP8_vllm_temp_0.2
evalplus.evaluate --dataset humaneval --samples ~/humaneval/neuralmagic--DeepSeek-Coder-V2-Instruct-FP8_vllm_temp_0.2-sanitized| Benchmark | DeepSeek-Coder-V2-Instruct | DeepSeek-Coder-V2-Instruct-FP8(this model) | Recovery |
| base pass@1 | 88.2 | 87.6 | 99.32% |
| base pass@10 | 92.3 | 94.7 | 102.60% |
| base+extra pass@1 | 83.3 | 83.2 | 99.88% |
| base+extra pass@10 | 86.7 | 90.4 | 104.27% |
| Average | 87.63 | 88.98 | 101.5% |