Downloads · 30 days
0
somosnlp-hackathon-2023/PAG-BERT
PAG-BERT is a machine learning model from somosnlp-hackathon-2023. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
Este modelo ha sido creado con la librería PEFT, que nos ha permitido hacer fine tuning al modelo base bertin-project/bertin-gpt-j-6B sobre el dataset hackathon-somos-nlp-2023/informesdiscriminaciongitana usando el mé…
Downloads · 30 days
0
Access
Public
Updated Apr 9, 2023
Repo size
29.4 MB
Likes
8
Public
Click a slice to open those files.
.bin29.4 MB · 90%
From the Hugging Face model README
Este modelo ha sido creado con la librería PEFT, que nos ha permitido hacer fine tuning al modelo base bertin-project/bertin-gpt-j-6B sobre el dataset hackathon-somos-nlp-2023/informes_discriminacion_gitana usando el método LoRA.
El objetivo del modelo consiste en generar un conjunto de acciones ante un hecho de discriminación hacia el pueblo gitano, así como tratar de predecir si dicha acción tendrá un resultado positivo, negativo o neutro. Por ejemplo, ante el hecho "Una joven gitana fue a hacer la compra acompañada de su hija de 12 años y su sobrina de ocho. Mientras compraban, el vigilante de seguridad no dejó de seguirlas en todo momento.", el modelo debe sugerir una posible intervención ante este supuesto caso: "Desde la FSG se asesoró a la joven de sus derechos y de cómo actuar ante un incidente de este tipo." y el posible resultado esperado tras aplicar dicha intervención.
Use el código mostrado a continuación para comenzar a utilizar el modelo.
import torch
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
peft_model_id = "hackathon-somos-nlp-2023/discriminacion_gitana_intervenciones_balanceado"
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
hechos = "Una joven gitana fue a hacer la compra acompañada de su hija de 12 años y su sobrina de ocho. Mientras compraban, el vigilante de seguridad no dejó de seguirlas en todo momento."
intervencion, resultado = predecir_intervencion(hechos)
print(f"Intervención: {intervencion}")
print(f"Resultado: {resultado}")
Se han utilizado los datos del dataset informes_discriminacion_gitana. Cabe destacar que el conjunto de datos no está balanceado y hay un mayor número de muestras con resultado negativo y neutro que positivo. Para conseguir un entrenamiento más equilibrado hemos seleccionado de forma aleatoria el mismo número de muestras negativas y neutras que positivas y hemos realizado el entrenamiento con este subconjunto de datos.
Las emisiones de CO2 a la hora de entrenar el modelo han sido estimadas usando la plataforma Machine Learning Impact calculator presentada en Lacoste et al. (2019). A continuación es muestran los detalles del impacto: