|
--- |
|
language: |
|
- pt |
|
widget: |
|
- text: Explique o que é inteligência artificial. |
|
- text: Explique o que é processamento de linguagem natural. |
|
--- |
|
|
|
|
|
``` python |
|
|
|
|
|
from transformers import GenerationConfig |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
model = AutoModelForCausalLM.from_pretrained("josu/gpt-neo-1.3B-instruction") |
|
tokenizer = AutoTokenizer.from_pretrained("josu/gpt-neo-1.3B-instruction") |
|
|
|
|
|
def generate_prompt(instruction, input=None): |
|
if input: |
|
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. |
|
|
|
### Instrução: |
|
{instruction} |
|
|
|
### Entrada: |
|
{input} |
|
|
|
### Resposta:""" |
|
else: |
|
return f"""Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido. |
|
|
|
### Instrução: |
|
{instruction} |
|
|
|
### Resposta:""" |
|
|
|
generation_config = GenerationConfig( |
|
temperature=0.2, |
|
top_p=0.75, |
|
num_beams=4, |
|
) |
|
def evaluate(instruction, input=None): |
|
prompt = generate_prompt(instruction, input) |
|
inputs = tokenizer(prompt, return_tensors="pt") |
|
input_ids = inputs["input_ids"].cuda() |
|
generation_output = model.generate( |
|
input_ids=input_ids, |
|
generation_config=generation_config, |
|
return_dict_in_generate=True, |
|
output_scores=True, |
|
max_new_tokens=256 |
|
) |
|
content = [] |
|
for s in generation_output.sequences: |
|
output = tokenizer.decode(s) |
|
content.append(output.split("### Resposta:")[1].strip()) |
|
return content |
|
|
|
``` |