Views
No views yet
1
2
3from transformers import GenerationConfig
4from transformers import AutoModelForCausalLM, AutoTokenizer
5
6model = AutoModelForCausalLM.from_pretrained("josu/gpt-neo-1.3B-instruction")
7tokenizer = AutoTokenizer.from_pretrained("josu/gpt-neo-1.3B-instruction")
8
9
10def generate_prompt(instruction, input=None):
11 if input:
12 return f"""Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
13
14### Instrução:
15{instruction}
16
17### Entrada:
18{input}
19
20### Resposta:"""
21 else:
22 return f"""Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
23
24### Instrução:
25{instruction}
26
27### Resposta:"""
28
29generation_config = GenerationConfig(
30 temperature=0.2,
31 top_p=0.75,
32 num_beams=4,
33)
34def evaluate(instruction, input=None):
35 prompt = generate_prompt(instruction, input)
36 inputs = tokenizer(prompt, return_tensors="pt")
37 input_ids = inputs["input_ids"].cuda()
38 generation_output = model.generate(
39 input_ids=input_ids,
40 generation_config=generation_config,
41 return_dict_in_generate=True,
42 output_scores=True,
43 max_new_tokens=256
44 )
45 content = []
46 for s in generation_output.sequences:
47 output = tokenizer.decode(s)
48 content.append(output.split("### Resposta:")[1].strip())
49 return content
50