Gerard-1705 commited on
Commit
a1b28ee
·
verified ·
1 Parent(s): a1505ba

Upload README version en español

Browse files

Version en español del archivo readme

Files changed (1) hide show
  1. README_ES.md +262 -0
README_ES.md ADDED
@@ -0,0 +1,262 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ base_model: bertin-project/bertin-roberta-base-spanish
4
+ tags:
5
+ - generated_from_trainer
6
+ metrics:
7
+ - accuracy
8
+ model-index:
9
+ - name: bertin_base_climate_detection_spa
10
+ results: []
11
+ datasets:
12
+ - somosnlp/spa_climate_detection
13
+ language:
14
+ - es
15
+ widget:
16
+ - text: >
17
+ El uso excesivo de fertilizantes nitrogenados -un fenómeno frecuente en la
18
+ agricultura- da lugar a la producción de óxido nitroso, un potente gas de
19
+ efecto invernadero. Un uso más juicioso de los fertilizantes puede frenar
20
+ estas emisiones y reducir la producción de fertilizantes, que consume mucha
21
+ energía.
22
+ pipeline_tag: text-classification
23
+ ---
24
+
25
+
26
+ # Model Card for bertin_base_climate_detection_spa_v2
27
+
28
+ <p align="center">
29
+ <img src="https://huggingface.co/somosnlp/bertin_base_climate_detection_spa/resolve/main/model_image_repo_380.jpg" alt="Model Illustration" width="500">
30
+ </p>
31
+
32
+
33
+ Este modelo es una version fine-tuning del modelo: [bertin-project/bertin-roberta-base-spanish](https://huggingface.co/bertin-project/bertin-roberta-base-spanish) utilizando el dataset somosnlp/spa_climate_detection.
34
+ El modelo esta enfocado en la identificación de textos sobre tematicas relacionadas al cambio climatico y la sustentabilidad. Este proyecto fue basado en la versión en inglés de [climatebert/distilroberta-base-climate-detector](https://huggingface.co/climatebert/distilroberta-base-climate-detector).
35
+
36
+ La motivación del proyecto fue crear una repositorio en español sobre informacion o recursos en temas como: cambio climatico, sustentabilidad, calentamiento global, energía, etc; la idea es dar visibilidad a soluciones, ejemplos de buenas practicas ambientales o noticias que nos ayuden a combatir los efectos del cambio climatico; en cierta forma parecido a lo que el proyecto [Drawdown](https://drawdown.org/solutions/table-of-solutions) realiza pero aportando ejemplos de las soluciones o nuevas investigaciones en cada tema. Para lograr este
37
+ objetivo, consideramos que la identificacion de textos que hablen sobre dichas tematicas es el primer paso. Algunas de las aplicaciones directas son: clasificacion de papers y publicaciones cientificas, noticias, opiniones.
38
+
39
+ Futuros pasos:
40
+ - Se pretende crear un modelo avanzado que clasifique en base a sectores (token classification) los textos relacionados a cambio climatico, por ejemplo: clasificar en base a electricidad, agricultura, industria, transporte, etc.
41
+ - Publicar un dataset basado en sectores.
42
+ - Realizar un modelo Q/A que pueda brindar información relevante al usuario en la tematica de cambio climatico.
43
+
44
+ ## Detalles del modelo
45
+
46
+ ### Descripción del modelo
47
+ - **Desarrollado por:** [Gerardo Huerta](https://huggingface.co/Gerard-1705) [Gabriela Zuñiga](https://huggingface.co/Gabrielaz)
48
+ - **Patrocinado por:** SomosNLP, HuggingFace
49
+ - **Tipo de Modelo:** Modelo de lenguaje, tuneado en instrucciones para clasificación de texto
50
+ - **Lenguaje(s):** es-ES, es-PE
51
+ - **Licencia:** cc-by-nc-sa-4.0
52
+ - **Entrenado usando el modelo:** [bertin-project/bertin-roberta-base-spanish](https://huggingface.co/bertin-project/bertin-roberta-base-spanish)
53
+ - **Dataset utilizado:** [somosnlp/spa_climate_detection](https://huggingface.co/datasets/somosnlp/spa_climate_detection)
54
+
55
+ ### Fuentes de modelos
56
+
57
+ - **Repositorio:** [somosnlp/bertin_base_climate_detection_spa](https://huggingface.co/somosnlp/bertin_base_climate_detection_spa/tree/main) <!-- Enlace al `main` del repo donde tengáis los scripts, i.e.: o del mismo repo del modelo en HuggingFace o a GitHub. -->
58
+ - **Demo:** [identificacion de textos sobre cambio climatico y sustentabilidad](https://huggingface.co/spaces/somosnlp/Identificacion_de_textos_sobre_sustentabilidad_cambio_climatico)
59
+ - **Video presentación:** [Proyecto BERTIN-ClimID](https://www.youtube.com/watch?v=sfXLUP9Ei-o)
60
+
61
+ ## Usos
62
+
63
+ ### Usos directos:
64
+ - Clasificación de noticias: Con este modelo se puede clasificar titulares de noticias relacionadas a las areas de cambio climatico.
65
+ - Clasificación de papers: La identificación de textos científicos que divulgan soluciones y/o efectos del cambio climatico. Para este uso se puede utilizar el abstract de cada documento para realizar la identificación.
66
+
67
+ ### Usos inderectos:
68
+ - Para la creación de repositorios de información con respecto a temas climaticos.
69
+ - Este modelo puede funcionar de base para crear nuevos sistemas de clasificación de soluciones climáticas para divulgar los nuevos esfuerzos en combatir el cambio climático en los diferentes sectores.
70
+ - Creacion de nuevos datasets que aborden el tema.
71
+
72
+ ### Usos fuera del ámbito:
73
+ - El uso para la clasificación de textos de fuentes no verificables o poco confiables y su divulgacion ejemplo: noticias falsas o desinformación.
74
+
75
+ ## Sesgos, riesgos y limitaciones:
76
+ En este punto no se han realizados estudios concretos sobre los sesgos y limitaciones, sin embargo hacemos los siguientes apuntes en base a experiencia previa y pruebas del modelo:
77
+ - Hereda los sesgos y limitaciones del modelo base con el que fue entrenado, para mas detalles véase: [BERTIN: Efficient Pre-Training of a Spanish Language Model using Perplexity Sampling](http://journal.sepln.org/sepln/ojs/ojs/index.php/pln/article/view/6403). Sin embargo, no son tan evidentes de encontrar por el tipo de tarea en el que se esta implementando el modelo como lo es la clasificacion de texto.
78
+ - Sesgos directos como por ejemplo el mayoritario uso de lenguaje de alto nivel en el dataset debido a que se utilizan textos extraidos de noticias, documentación legal de empresas que pueden complicar la identificación de textos con lenguajes de bajo nivel (ejemplo: coloquial). Para mitigar estos sesgos, se incluyeron en el dataset opiniones diversas sobre temas de cambio climatico extraidas de fuentes como redes sociales, adicional se hizo un rebalanceo de las etiquetas.
79
+ - El dataset nos hereda otras limitaciones como por ejemplo: el modelo pierde rendimiento en textos cortos, esto es debido a que la mayoria de los textos utilizados en el dataset tienen una longitud larga de entre 200 - 500 palabras. Nuevamente se intentó mitigar estas limitaciones con la inclusión de textos cortos.
80
+
81
+ ### Recomendaciones
82
+ - Como hemos mencionado, el modelo tiende a bajar el rendimiento en textos cortos, por lo que lo recomendable es establecer un criterio de selección de textos largos a los cuales se necesita identificar su temática.
83
+
84
+ ## Ejemplo sencillo de como utilizar el modelo
85
+ ```python
86
+ ## Asumiendo tener instalados transformers, torch
87
+ from transformers import AutoModelForSequenceClassification
88
+ import torch
89
+ from transformers import AutoTokenizer
90
+
91
+ tokenizer = AutoTokenizer.from_pretrained("somosnlp/bertin_base_climate_detection_spa")
92
+ model = AutoModelForSequenceClassification.from_pretrained("somosnlp/bertin_base_climate_detection_spa")
93
+
94
+ # Traduccion del label
95
+ id2label = {0: "NEGATIVE", 1: "POSITIVE"}
96
+ label2id = {"NEGATIVE": 0, "POSITIVE": 1}
97
+
98
+ # Funcion de inferencia
99
+ def inference_fun(Texto):
100
+ inputs = tokenizer(Texto, return_tensors="pt")
101
+ with torch.no_grad():
102
+ logits = model(**inputs).logits
103
+ predicted_class_id = logits.argmax().item()
104
+ output_tag = model.config.id2label[predicted_class_id]
105
+ return output_tag
106
+
107
+ input_text = "El uso excesivo de fertilizantes nitrogenados -un fenómeno frecuente en la agricultura- da lugar a la producción de óxido nitroso, un potente gas de efecto invernadero. Un uso más juicioso de los fertilizantes puede frenar estas emisiones y reducir la producción de fertilizantes, que consume mucha energía."
108
+
109
+ print(inference_fun(input_text))
110
+ ```
111
+
112
+
113
+ ## Detalles del entrenamiento:
114
+
115
+ ### Datos de entrenamiento:
116
+ Los datos del entrenamiento fueron obtenidos del dataset [somosnlp/spa_climate_detection](https://huggingface.co/datasets/somosnlp/spa_climate_detection).
117
+ Los datos de entrenamiento representan alrededor de un 79% de los datos totales del dataset.
118
+
119
+ Las etiquetas estan representadas de la siguiente forma:
120
+
121
+ Etiquetas 1s
122
+
123
+ 1000 - datos sobre parrafos extraidos de informes empresariales sobre el tema.
124
+
125
+ 600 - datos sobre opiniones diversas, en su mayorias textos cortos.
126
+
127
+ Etiquetas 0s
128
+
129
+ 300 - datos sobre parrafos extraidos de informes empresariales no relacionados al tema.
130
+
131
+ 500 - datos sobre noticias de temas diversos no relacionados al tema.
132
+
133
+ 500 - datos sobre opiniones de temas diversos no relacionados al tema.
134
+
135
+ ### Procedimiento de entrenamiento
136
+ Puedes consultar nuestro Google Colab para revisar el procedimiento de entranamiento que tomamos: [Colab Entrenamiento](https://huggingface.co/somosnlp/bertin_base_climate_detection_spa/blob/main/entrenamiento_del_modelo.ipynb)
137
+ La configuración de accelerate es la siguiente:
138
+ In which compute environment are you running?: 0
139
+ Which type of machine are you using?: No distributed training
140
+ Do you want to run your training on CPU only (even if a GPU / Apple Silicon / Ascend NPU device is available)? [yes/NO]:NO
141
+ Do you wish to optimize your script with torch dynamo?[yes/NO]:NO
142
+ Do you want to use DeepSpeed? [yes/NO]: NO
143
+ What GPU(s) (by id) should be used for training on this machine as a comma-seperated list? [all]:all
144
+ Do you wish to use FP16 or BF16 (mixed precision)?: no
145
+
146
+ ### Hiperparametros de entrenamiento:
147
+ The following hyperparameters were used during training:
148
+ - learning_rate: 2e-05
149
+ - train_batch_size: 16
150
+ - eval_batch_size: 16
151
+ - seed: 42
152
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
153
+ - lr_scheduler_type: linear
154
+ - num_epochs: 2
155
+
156
+ ### Speeds, Sizes, Times
157
+ El modelo fue entrenado en 2 epocas con una duración total de 14.22 minutos de entrenamiento, 'train_runtime': 853.6759.
158
+ Como dato adicional: No se utilizó precision mixta (FP16 ó BF16)
159
+
160
+
161
+ ### Resultados del entrenamiento:
162
+
163
+ | Training Loss | Epoch | Step | Validation Loss | Accuracy |
164
+ |:-------------:|:-----:|:----:|:---------------:|:--------:|
165
+ | No log | 1.0 | 182 | 0.1964 | 0.9551 |
166
+ | No log | 2.0 | 364 | 0.1592 | 0.9705 |
167
+
168
+
169
+ ## Evaluación
170
+
171
+ ### Datos de prueba, factores y metricas
172
+
173
+ #### Datos de prueba
174
+ Los datos de evaluación fueron obtenidos del dataset [somosnlp/spa_climate_detection](https://huggingface.co/datasets/somosnlp/spa_climate_detection).
175
+ Los datos de evaluación representan alrededor de un 21% de los datos totales del dataset.
176
+
177
+ Las etiquetas estan representadas de la siguiente forma:
178
+
179
+ Etiquetas 1s
180
+
181
+ 320 - datos sobre parrafos extraidos de informes empresariales sobre el tema.
182
+
183
+ 160 - datos sobre opiniones diversas, en su mayorias textos cortos.
184
+
185
+ Etiquetas 0s
186
+
187
+ 80 - datos sobre parrafos extraidos de informes empresariales no relacionados al tema.
188
+
189
+ 120 - datos sobre noticias de temas diversos no relacionados al tema.
190
+
191
+ 100 - datos sobre opiniones de temas diversos no relacionados al tema.
192
+
193
+
194
+ **El modelo actual logra los siguientes resultados en el set de evaluación:**
195
+ - **Loss:** 0.1592
196
+ - **Accuracy:** 0.9705
197
+
198
+ #### Metrica utilizada:
199
+ La métrica utilizada para evaluar el modelo fue precisión.
200
+
201
+ #### Resultados:
202
+
203
+ Por favor dirigirse a la sección de "Inference" en el colab: [entrenamiento_del_modelo](https://huggingface.co/somosnlp/bertin_base_climate_detection_spa/blob/main/entrenamiento_del_modelo.ipynb)
204
+
205
+ Accuracy 0.95
206
+ Precision 0.916
207
+ Recall 0.99
208
+ F1 score 0.951
209
+
210
+ ## Impacto ambiental
211
+ Utilizando la herramienta de [ML CO2 IMPACT](https://mlco2.github.io/impact/#co2eq) calculamos que el siguiente impacto ambiental debido al entrenamiento:
212
+ - **Tipo de hardware:** T4
213
+ - **Horas utilizadas (incluye pruebas e iteraciones para mejorar el modelo):** 4 horas
214
+ - **Proveedor de nube:** Google Cloud (colab)
215
+ - **Región computacional:** us-east
216
+ - **Huella de carbono emitida:** 0.1kg CO2
217
+
218
+
219
+ ## Información Tecnica
220
+
221
+ #### Software
222
+
223
+ - Transformers 4.39.3
224
+ - Pytorch 2.2.1+cu121
225
+ - Datasets 2.18.0
226
+ - Tokenizers 0.15.2
227
+
228
+ #### Hardware
229
+
230
+ - GPU equivalente a T4
231
+ - Para tomarlo como referencia, el modelo se entrenó en la version gratuita de Google Colab
232
+
233
+ ## Licencia:
234
+
235
+ cc-by-nc-sa-4.0 Debido a herencias de los datos utilizados en el dataset.
236
+
237
+ ## Cita:
238
+
239
+ **BibTeX:**
240
+
241
+ @software{BERTIN-ClimID,
242
+ author = {Gerardo Huerta, Gabriela Zuñiga},
243
+ title = {BERTIN-ClimID: BERTIN-Base Climate-related text Identification},
244
+ month = Abril,
245
+ year = 2024,
246
+ url = {https://huggingface.co/somosnlp/bertin_base_climate_detection_spa}
247
+ }
248
+
249
+
250
+ ## More Information
251
+
252
+ Este proyecto fue desarrollado durante el [Hackathon #Somos600M](https://somosnlp.org/hackathon) Organizado por SomosNLP. Agradecemos a todos los organizadores del evento y patrocinadores por el apoyo durante el desarrollo del mismo.
253
+
254
+ **Team:**
255
+
256
+ - [Gerardo Huerta](https://huggingface.co/Gerard-1705)
257
+ - [Gabriela Zuñiga](https://huggingface.co/Gabrielaz)
258
+
259
+ ## Contact [optional]
260
+
261
262