File size: 3,228 Bytes
b550c2c
 
 
 
 
df84f35
b550c2c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bb5d425
b550c2c
bb5d425
 
b550c2c
 
 
 
a80029a
 
 
 
 
ffb1cf1
 
a80029a
 
7b855ed
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
import gradio as gr
import torch
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer

peft_model_id = "hackathon-somos-nlp-2023/PAG-BERT"
config = PeftConfig.from_pretrained(peft_model_id)
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, return_dict=True, load_in_8bit=True, device_map='auto')
tokenizer = AutoTokenizer.from_pretrained(peft_model_id)
# Load the Lora model
model = PeftModel.from_pretrained(model, peft_model_id)

def predecir_intervencion(text):
    text = "<SH>" + text + " Intervención: "
    batch = tokenizer(text, return_tensors='pt')
    with torch.cuda.amp.autocast():
        output_tokens = model.generate(**batch, max_new_tokens=256, eos_token_id=50258)

    output = tokenizer.decode(output_tokens[0], skip_special_tokens=False)

    aux = output.split("Intervención:")[1].strip()
    intervencion = aux.split("Resultado:")[0].strip()
    resultado = aux.split("Resultado:")[1].split("<EH>")[0].strip()
    
    return intervencion, resultado

with gr.Blocks() as demo:
    gr.Markdown("Predicción de intervenciones para mitigar el daño racista en el pueblo gitano")
    with gr.Row():
        hechos = gr.Textbox(placeholder="Un alumno gitano de un Instituto...", label="Hechos")
    with gr.Row():
        intervencion = gr.Textbox(label="Intervención")
        resultado = gr.Textbox(label="Resultado")
        
    btn = gr.Button("Go")
    btn.click(fn=predecir_intervencion, inputs=hechos, outputs=[intervencion, resultado])

    gr.Examples(
        examples=["El Diario de Almería publicó una noticia sobre un conflicto con la Guardia Civil, mencionando la etnia de la persona implicada.",
                  "Un hombre gitano participante de servicios la FSG en Valencia, nos contó que estaba en la puerta de su casa arreglando un asiento de su furgoneta y, para ello, lo desmontó y lo colocó en la acera mientras terminaba la reparación. En ese momento, se acercó un agente de policía local y le dijo que le dejara entrar a su casa para ver si tenía chatarra almacenada. El hombre le dijo que si no tenía una orden no le dejaba entrar a su casa. Ante esa respuesta, el policía (que según la víctima se enfadó por la respuesta que le dio) le puso una multa por “ensuciar la vía pública “. Para valorar la posibilidad de recurrir dicha multa, la Técnica de Igualdad entrevistó al hombre, que informó que esto le había ocurrido hacía tiempo, por lo que no fue posible interponer recurso. Igualmente, nos informó que en el barrio del Cabañal esta situación era bastante frecuente hacia otras personas gitanas. La víctima no quiso que interviniésemos con otras acciones, pero pidió que desde la FSG se estuviera más pendiente de las actuaciones policiales de su zona.",
                  "Una mujer gitana contó en la FSG que recibió comentarios inadecuados por teléfono por parte de la administrativa y de la trabajadora social de su centro de servicios sociales, que le dijeron que pidiera ayuda al Secretariado Gitano. La mujer estaba convencida que esto le había pasado por ser gitana."
                 ],
        inputs=hechos,
        label="Ejemplos"
    )

demo.launch()