Spaces:
Sleeping
Sleeping
File size: 2,096 Bytes
43d40c7 16e8f29 8df8532 b8715d4 8df8532 5cbb35f ed42ce1 43d40c7 5cbb35f b8715d4 ba91276 43d40c7 5cbb35f 43d40c7 b8715d4 5cbb35f b8715d4 5cbb35f b8715d4 297d4c5 5cbb35f 16e8f29 b8715d4 16e8f29 540b791 5cbb35f 16e8f29 297d4c5 16e8f29 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import gradio as gr
from transformers import pipeline
# Modelos geradores otimizados
model_a = pipeline("text-generation", model="distilgpt2") # Modelo A
model_b = pipeline("text-generation", model="EleutherAI/gpt-neo-125M") # Modelo B
# Modelo juiz
arbiter = pipeline("text-classification",model="google/flan-t5-small") # Modelo Árbitro
# Julgamento por batch
def judge_response(response_a, response_b):
results = arbiter([response_a, response_b])
score_a = results[0]['score']
score_b = results[1]['score']
# Critério de julgamento: maior pontuação é melhor
return ("Modelo A", response_a) if score_a > score_b else ("Modelo B", response_b)
# Função principal
def chatbot(prompt):
# Gera respostas para ambos os modelos
response_a = model_a(prompt, max_new_tokens=40)[0]['generated_text'].strip()
response_b = model_b(prompt, max_new_tokens=40)[0]['generated_text'].strip()
# Julga as respostas
winner, final_response = judge_response(response_a, response_b)
# Retorna as informações
return {
"prompt": prompt,
"resposta_modelo_a": response_a,
"resposta_modelo_b": response_b,
"modelo_vencedor": winner,
"resposta_escolhida": final_response,
"informacoes_modelos": {
"modelo_a": "distilgpt2 - Modelo de geração de texto leve.",
"modelo_b": "EleutherAI/gpt-neo-125M - Modelo de geração de texto maior.",
"modelo_juiz": "neuralmind/bert-base-portuguese-cased - Modelo de classificação para julgar as respostas."
},
"criterio_julgamento": "O modelo juiz classifica as respostas com base em uma pontuação de sentimento positivo."
}
# Interface
iface = gr.Interface(
fn=chatbot,
inputs=gr.Textbox(label="Digite sua pergunta:"),
outputs=[
gr.JSON(label="Resultados"),
],
title= "Atividade N2 Chatbot com Julgamento - Equipe: FDCH_FMU",
description="Compara respostas de dois modelos e usa um árbitro para escolher a melhor com base no sentimento positivo."
)
iface.launch()
|