Views
No views yet

1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
3from vigogne.preprocess import generate_inference_chat_prompt
4
5model_name_or_path = "bofenghuang/vigogne-falcon-7b-chat"
6
7tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, padding_side="right", use_fast=False)
8tokenizer.pad_token = tokenizer.eos_token
9
10model = AutoModelForCausalLM.from_pretrained(
11 model_name_or_path,
12 torch_dtype=torch.float16,
13 device_map="auto",
14 trust_remote_code=True,
15)
16
17user_query = "Expliquez la différence entre DoS et phishing."
18prompt = generate_inference_chat_prompt([[user_query, ""]], tokenizer=tokenizer)
19input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(model.device)
20input_length = input_ids.shape[1]
21
22generated_outputs = model.generate(
23 input_ids=input_ids,
24 generation_config=GenerationConfig(
25 temperature=0.1,
26 do_sample=True,
27 repetition_penalty=1.0,
28 max_new_tokens=512,
29 ),
30 return_dict_in_generate=True,
31 pad_token_id=tokenizer.eos_token_id,
32 eos_token_id=tokenizer.eos_token_id,
33)
34generated_tokens = generated_outputs.sequences[0, input_length:]
35generated_text = tokenizer.decode(generated_tokens, skip_special_tokens=True)
36print(generated_text)