Views
No views yet
1pip install openvino-dev[pytorch]==2022.3.0
2pip install --upgrade --upgrade-strategy eager "optimum[neural-compressor]"
3pip install --upgrade --upgrade-strategy eager "optimum[openvino]"
4pip install --upgrade --upgrade-strategy eager "optimum[ipex]"1from transformers import AutoTokenizer
2from optimum.intel import OVWeightQuantizationConfig
3from optimum.intel.openvino import OVModelForCausalLM
4from optimum.exporters.openvino.convert import export_tokenizer
5from pathlib import Path
6import os
7#fp16 int8 int4
8precision="int8"
9#导出模型的路径
10ir_model_path = Path("./qwen0.5b-ov")
11if ir_model_path.exists() == False:
12 os.mkdir(ir_model_path)
13compression_configs = {
14 "sym": False,
15 "group_size": 128,
16 "ratio": 0.8,
17}
18#加载模型
19model_path = "Qwen/Qwen1.5-0.5B-Chat"
20
21print("====Exporting IR=====")
22if precision == "int4":
23 ov_model = OVModelForCausalLM.from_pretrained(model_path, export=True,
24 compile=False, quantization_config=OVWeightQuantizationConfig(
25 bits=4, **compression_configs))
26elif precision == "int8":
27 ov_model = OVModelForCausalLM.from_pretrained(model_path, export=True,
28 compile=True, load_in_8bit=True)
29else:
30 ov_model = OVModelForCausalLM.from_pretrained(model_path, export=True,
31 compile=False, load_in_8bit=False)
32
33ov_model.save_pretrained(ir_model_path)
34
35tokenizer = AutoTokenizer.from_pretrained(
36 model_path)
37tokenizer.save_pretrained(ir_model_path)
38
39print("====Exporting IR tokenizer=====")
40export_tokenizer(tokenizer, ir_model_path)1from optimum.intel.openvino import OVModelForCausalLM
2from transformers import (AutoTokenizer, AutoConfig,
3 TextIteratorStreamer)
4#导出模型的路径
5model_dir = "./qwen0.5b-ov"
6ov_config = {"PERFORMANCE_HINT": "LATENCY",
7 "NUM_STREAMS": "1", "CACHE_DIR": ""}
8tokenizer = AutoTokenizer.from_pretrained(
9 model_dir)
10ov_model = OVModelForCausalLM.from_pretrained(
11 model_dir,
12 device="cpu",
13 ov_config=ov_config,
14 config=AutoConfig.from_pretrained(model_dir),
15 trust_remote_code=True,
16)
17streamer = TextIteratorStreamer(
18 tokenizer, timeout=60.0, skip_prompt=True, skip_special_tokens=True
19)
20prompt = "今天天气如何?"
21length=len(prompt)
22messages = [
23{"role": "user", "content": prompt}
24]
25model_inputs = tokenizer.apply_chat_template(
26 messages,
27 tokenize=True,
28 add_generation_prompt=True,
29 return_tensors="pt"
30)
31generate_kwargs = dict(
32 input_ids=model_inputs,
33 max_new_tokens=length,
34 temperature=0.1,
35 max_length=500,
36 do_sample=True,
37 top_p=1.0,
38 top_k=50,
39 repetition_penalty=1.1,
40 streamer=streamer,
41 pad_token_id=151645,
42 )
43generated_ids = ov_model.generate(**generate_kwargs)
44generated_ids = [
45output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs, generated_ids)
46]
47response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
48print(response)