
# PAG-BERT: Protocolo Antiracismo Gitano basado en BERT

<!-- Provide a quick summary of what the model is/does. -->

### Detalles del adaptador

<!-- Provide a longer summary of what this model is. -->

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**.

### Fuentes del modelo

<!-- Provide the basic links for the model. -->

- **Notebook del entrenamiento:** Se ha utilizado como base el notebook compartido por @mrm8488 en el taller ["Fine-tuning de grandes modelos de lenguaje con Manuel Romero | Hackathon Somos NLP 2023"](https://www.youtube.com/live/WYcJb8gYBZU?feature=share). El notebook adaptado a este modelo se encuentra en https://colab.research.google.com/drive/1eEOiuYdg63JOWUiVSdiZ-GUocH48_2wj?usp=sharing
- **Demo:** https://huggingface.co/spaces/hackathon-somos-nlp-2023/demo_IntervencionesRacismo

## Usos

<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
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.


## Cómo empezar a utilizar el modelo

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}")
```

## Detalles del entrenamiento

### Datos de entrenamiento

Se han utilizado los datos del dataset [informes_discriminacion_gitana](https://huggingface.co/datasets/hackathon-somos-nlp-2023/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.


### Hiperparámetros del entrenamiento

- **Training regime:** fp16
- **Step:** 1000
- **Learning rate:** 2e-4
- **num_epochs**: 21
- **train_batch_size**: 4


### Métricas

<!-- These are the evaluation metrics being used, ideally with a description of why. -->
- **Loss:** 0.6538
- **Perplexity**: 9.2

### Frameworks

- bitsandbytes 0.37.2
- datasets 2.11.0
- loralib 0.1.1
- peft 0.3.0.dev0 
- pytorch 2.0.0
- tokenizers 0.13.2
- transformers 4.28.0.dev0

## Impacto medioambiental

<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->

Las emisiones de CO2 a la hora de entrenar el modelo han sido estimadas usando la plataforma [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presentada en [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
A continuación es muestran los detalles del impacto: 

- **Hardware Type:** RTX 3090
- **Hours used:** 2.5
- **Cloud Provider:** Private infrastructure
- **Compute Region:** Belgium
- **Carbon Emitted:** 0.38 kg

## Autores

* <a href="https://www.linkedin.com/in/ramonruedadelgado/">Ramón Rueda</a>
* <a href="https://www.linkedin.com/in/frorozcol/">Fredy Orozco</a>
* <a href="https://www.linkedin.com/in/mariajesusgs">María Jesús García</a>
{"language": ["es"], "license": "apache-2.0", "datasets": ["hackathon-somos-nlp-2023/informes_discriminacion_gitana"], "metrics": ["perplexity"]}
es dataset:hackathon-somos-nlp-2023/informes_discriminacion_gitana arxiv:1910.09700 license:apache-2.0 has_space region:us
TAGS
#es #dataset-hackathon-somos-nlp-2023/informes_discriminacion_gitana #arxiv-1910.09700 #license-apache-2.0 #has_space #region-us 


# PAG-BERT: Protocolo Antiracismo Gitano basado en BERT



### Detalles del adaptador



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.

### Fuentes del modelo



- Notebook del entrenamiento: Se ha utilizado como base el notebook compartido por @mrm8488 en el taller "Fine-tuning de grandes modelos de lenguaje con Manuel Romero | Hackathon Somos NLP 2023". El notebook adaptado a este modelo se encuentra en URL
- Demo: URL

## Usos


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.


## Cómo empezar a utilizar el modelo

Use el código mostrado a continuación para comenzar a utilizar el modelo.



## Detalles del entrenamiento

### Datos de entrenamiento

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.


### Hiperparámetros del entrenamiento

- Training regime: fp16
- Step: 1000
- Learning rate: 2e-4
- num_epochs: 21
- train_batch_size: 4


### Métricas


- Loss: 0.6538
- Perplexity: 9.2

### Frameworks

- bitsandbytes 0.37.2
- datasets 2.11.0
- loralib 0.1.1
- peft 0.3.0.dev0 
- pytorch 2.0.0
- tokenizers 0.13.2
- transformers 4.28.0.dev0

## Impacto medioambiental



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: 

- Hardware Type: RTX 3090
- Hours used: 2.5
- Cloud Provider: Private infrastructure
- Compute Region: Belgium
- Carbon Emitted: 0.38 kg

## Autores

* <a href="URL>Ramón Rueda</a>
* <a href="URL Orozco</a>
* <a href="URL>María Jesús García</a>
# PAG-BERT: Protocolo Antiracismo Gitano basado en BERT ### Detalles del adaptador



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. ### Fuentes del modelo



- Notebook del entrenamiento: Se ha utilizado como base el notebook compartido por @mrm8488 en el taller "Fine-tuning de grandes modelos de lenguaje con Manuel Romero | Hackathon Somos NLP 2023". El notebook adaptado a este modelo se encuentra en URL
- Demo: URL ## Usos


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. ## Cómo empezar a utilizar el modelo

Use el código mostrado a continuación para comenzar a utilizar el modelo. ## Detalles del entrenamiento ### Datos de entrenamiento

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. ### Hiperparámetros del entrenamiento

- Training regime: fp16
- Step: 1000
- Learning rate: 2e-4
- num_epochs: 21
- train_batch_size: 4 ### Métricas


- Loss: 0.6538
- Perplexity: 9.2 ### Frameworks

- bitsandbytes 0.37.2
- datasets 2.11.0
- loralib 0.1.1
- peft 0.3.0.dev0 
- pytorch 2.0.0
- tokenizers 0.13.2
- transformers 4.28.0.dev0 ## Impacto medioambiental



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: 

- Hardware Type: RTX 3090
- Hours used: 2.5
- Cloud Provider: Private infrastructure
- Compute Region: Belgium
- Carbon Emitted: 0.38 kg ## Autores

* <a href="URL>Ramón Rueda</a>
* <a href="URL Orozco</a>
* <a href="URL>María Jesús García</a>
TAGS
#es #dataset-hackathon-somos-nlp-2023/informes_discriminacion_gitana #arxiv-1910.09700 #license-apache-2.0 #has_space #region-us 
 # PAG-BERT: Protocolo Antiracismo Gitano basado en BERT ### Detalles del adaptador



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. ### Fuentes del modelo



- Notebook del entrenamiento: Se ha utilizado como base el notebook compartido por @mrm8488 en el taller "Fine-tuning de grandes modelos de lenguaje con Manuel Romero | Hackathon Somos NLP 2023". El notebook adaptado a este modelo se encuentra en URL
- Demo: URL ## Usos


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. ## Cómo empezar a utilizar el modelo

Use el código mostrado a continuación para comenzar a utilizar el modelo. ## Detalles del entrenamiento ### Datos de entrenamiento

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. ### Hiperparámetros del entrenamiento

- Training regime: fp16
- Step: 1000
- Learning rate: 2e-4
- num_epochs: 21
- train_batch_size: 4 ### Métricas


- Loss: 0.6538
- Perplexity: 9.2 ### Frameworks

- bitsandbytes 0.37.2
- datasets 2.11.0
- loralib 0.1.1
- peft 0.3.0.dev0 
- pytorch 2.0.0
- tokenizers 0.13.2
- transformers 4.28.0.dev0 ## Impacto medioambiental



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: 

- Hardware Type: RTX 3090
- Hours used: 2.5
- Cloud Provider: Private infrastructure
- Compute Region: Belgium
- Carbon Emitted: 0.38 kg ## Autores

* <a href="URL>Ramón Rueda</a>
* <a href="URL Orozco</a>
* <a href="URL>María Jesús García</a>
TAGS
#es #dataset-hackathon-somos-nlp-2023/informes_discriminacion_gitana #arxiv-1910.09700 #license-apache-2.0 #has_space #region-us 
# PAG-BERT: Protocolo Antiracismo Gitano basado en BERT### Detalles del adaptador



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.### Fuentes del modelo



- Notebook del entrenamiento: Se ha utilizado como base el notebook compartido por @mrm8488 en el taller "Fine-tuning de grandes modelos de lenguaje con Manuel Romero | Hackathon Somos NLP 2023". El notebook adaptado a este modelo se encuentra en URL
- Demo: URL## Usos


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.## Cómo empezar a utilizar el modelo

Use el código mostrado a continuación para comenzar a utilizar el modelo.## Detalles del entrenamiento### Datos de entrenamiento

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.### Hiperparámetros del entrenamiento

- Training regime: fp16
- Step: 1000
- Learning rate: 2e-4
- num_epochs: 21
- train_batch_size: 4### Métricas


- Loss: 0.6538
- Perplexity: 9.2### Frameworks

- bitsandbytes 0.37.2
- datasets 2.11.0
- loralib 0.1.1
- peft 0.3.0.dev0 
- pytorch 2.0.0
- tokenizers 0.13.2
- transformers 4.28.0.dev0## Impacto medioambiental



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: 

- Hardware Type: RTX 3090
- Hours used: 2.5
- Cloud Provider: Private infrastructure
- Compute Region: Belgium
- Carbon Emitted: 0.38 kg## Autores

* <a href="URL>Ramón Rueda</a>
* <a href="URL Orozco</a>
* <a href="URL>María Jesús García</a>