Views
No views yet

1import torch
2from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, GenerationConfig
3from vigogne.preprocess import generate_instruct_prompt
4
5model_name_or_path = "bofenghuang/vigogne-mpt-7b-instruct"
6tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
7config = AutoConfig.from_pretrained(model_name_or_path, trust_remote_code=True)
8# config.attn_config['attn_impl'] = 'triton'
9config.init_device = 'cuda:0' # For fast initialization directly on GPU!
10
11model = AutoModelForCausalLM.from_pretrained(
12 model_name_or_path,
13 config=config,
14 torch_dtype=torch.float16,
15 device_map="auto",
16 trust_remote_code=True,
17)
18
19user_query = "Expliquez la différence entre DoS et phishing."
20prompt = generate_instruct_prompt(user_query)
21input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(model.device)
22input_length = input_ids.shape[1]
23
24generated_outputs = model.generate(
25 input_ids=input_ids,
26 generation_config=GenerationConfig(
27 temperature=0.1,
28 do_sample=True,
29 repetition_penalty=1.0,
30 max_new_tokens=512,
31 ),
32 return_dict_in_generate=True,
33 pad_token_id=tokenizer.eos_token_id,
34)
35generated_tokens = generated_outputs.sequences[0, input_length:]
36generated_text = tokenizer.decode(generated_tokens, skip_special_tokens=True)
37print(generated_text)