modelo-juridico-mexicano / app_details.py
mrm8488's picture
Fix typo
93827f7
title = "Modelo Jurídico Mexicano"
description = """
<div id="content">
<div id="left">
<center>
<img src="https://www.pactomundial.org/wp-content/uploads/2021/10/16-paz-justicia-e-instituciones-solidas-3.jpg" width=200px>
</center>
<ul>
<li>16.3 Promover el estado de derecho en los planos nacional e internacional y garantizar la igualdad de acceso a la justicia para todos.</li>
<li>16.10 Garantizar el acceso público a la información y proteger las libertades fundamentales, de conformidad con las leyes nacionales y los acuerdos internacionales. </li>
</ul>
</div>
<div id="left">
<center>
<img src="https://www.pactomundial.org/wp-content/uploads/2021/10/4-educacion-de-calidad-3.jpg" width=200px>
</center>
<ul>
<li>4.4 De aquí a 2030, aumentar considerablemente el número de jóvenes y adultos que tienen las competencias necesarias, en particular técnicas y profesionales, para acceder al empleo, el trabajo decente y el emprendimiento.</li>
<li>4.7 De aquí a 2030, asegurar que todos los alumnos adquieran los conocimientos teóricos y prácticos necesarios para promover el desarrollo sostenible, entre otras cosas mediante la educación para el desarrollo sostenible y los estilos de vida sostenibles, los derechos humanos, la igualdad de género, la promoción de una cultura de paz y no violencia, la ciudadanía mundial y la valoración de la diversidad cultural y la contribución de la cultura al desarrollo sostenible. </li>
</ul>
</div>
<div id="left">
<center>
<img src="https://www.pactomundial.org/wp-content/uploads/2021/10/10-reduccion-de-las-desigualdades-3.jpg "ODS 10" width=200px>
</center>
<ul>
<li>10.3 Garantizar la igualdad de oportunidades y reducir la desigualdad de resultados, incluso eliminando las leyes, políticas y prácticas discriminatorias y promoviendo legislaciones, políticas y medidas adecuadas a ese respecto. </li>
</ul>
</div>
</div>
## Motivación
- El gran esfuerzo y tiempo que se requiere analizar grandes cantidades de información que constantemente se encuentran cambiando.
- Buscar información puede llevarte demasiado tiempo no tanto por la acción en si, si no por el tiempo que inviertes en buscar la información necesaria y desechar toda aquella que no te aporta nada relacionado a tu tema de interés.
- Aún el cerebro humano con una gran capacidad de almacenamiento no puede competir con la cantidad de información que se genera día con día.
- Es difícil exigir algo que desconoces.
Por ello decidimos aventurarnos en la creación de modelos que permiten en términos generales:
- Extraer y recuperar información.
- Clasificar documentos.
- Identificar si los documentos son tan parecidos que podrían tartar de un mismo tema o incluso que se traten de los mismos.
Estos modelos integrados en diversos sistemas se pueden obtener beneficios como:
- Agilizar y facilitar el trabajo de quienes imparten justicia.
- Facilitar la búsqueda de los estudiantes e investigadores de derecho.
- Ayudar a la ciudadanía permitiéndole identificar si se esta violentando alguno de los Derechos Humanos que protegen el Sistema Universal o la Convención Americana de Derechos Humanos.
- Coadyuvar en la generación de indicadores sobre violaciones a los Derechos Humanos.
### Este proyecto esta compuesto por los siguientes modelos:
- [hackathon-pln-es/jurisbert-finetuning-ner](https://huggingface.co/hackathon-pln-es/jurisbert-finetuning-ner)
- [hackathon-pln-es/jurisbert-class-tratados-internacionales-sistema-universal](https://huggingface.co/hackathon-pln-es/jurisbert-class-tratados-internacionales-sistema-universal)
- [hackathon-pln-es/jurisbert-clas-art-convencion-americana-dh](https://huggingface.co/hackathon-pln-es/jurisbert-clas-art-convencion-americana-dh)
- [hackathon-pln-es/jurisbert-tsdae-sentence-transformer](https://huggingface.co/hackathon-pln-es/jurisbert-tsdae-sentence-transformer)
### Como funciona el demo:
1. Requiere que se proporcionen dos textos (el primero denominada texto a analizar y el segundo texto a comparar), los cuales se pueden seleccionar de la lista de ejemplos.
2. Cada uno de estos textos pasa por cada uno de los modelos que conforman el proyecto.
* Primero, se utiliza el modelo de reconocimiento de entidades **jurisbert-finetuning-ner**. El cual, podría encontrar alguna entidad de tipo LEY o TRAT_INTL.
* Segundo, se utiliza el modelo de clasificación **jurisbert-class-tratados-internacionales-sistema-universal** acorde al sistema universal de **Derechos Humanos** el cual se fundamenta en convenciones o pactos para identificar si podria existir alguna violación acorde a lo definido por la **ONU**.
* Tercero, se utiliza el modelo de clasificación **jurisbert-clas-art-convencion-americana-dh** para identificar cual de los artículos de la **[Convención Americana de Derechos Humanos](https://www.cndh.org.mx/sites/default/files/doc/Programas/TrataPersonas/MarcoNormativoTrata/InsInternacionales/Regionales/Convencion_ADH.pdf)** se podría estar violentando.
* Cuarto, para poder ejemplificar el modelo **jurisbert-tsdae-sentence-transformer** se aprovechan el texto a analizar y el texto a comparar para calcular la similitud entre ambos.
3. Se presentan los resultados obtenidos en el orden siguiente:
* Primero lo obtenido para el texto a analizar.
* Segundo, el porcentaje de similitud entre ambos textos.
* Tercero, lo obtenido para el texto a comparar.
"""
article="""
### Retos
#### Creación de los datasets
El principal problema de entrenar modelos que pertenezcan a un dominio especializado como el **jurídico** que además sea en **español** se centra en la construcción de los **datasets** por la prácticamente inexistencia de los mismos.
Es por ello que tuvimos que crear dos datasets:
- [scjnugacj/scjn_dataset_corpus_tesis] (https://huggingface.co/datasets/scjnugacj/scjn_dataset_corpus_tesis) la información base fue obtenida del **[Buscador Juridico de la SCJN de México]** (https://bj.scjn.gob.mx/) utilizando como fuente de información: Tesis y filtrando la información por décima y undécima época; sin embargo, fue necesario realizar procesos de ETL para la limpieza de información no relevante y estructuración de los campos:
* `id`: a `string` feature.
* `text`: a `string` features.
- [scjnugacj/scjn_dataset_ner](https://huggingface.co/datasets/scjnugacj/scjn_dataset_ner) el primer reto para este dataset fue entender la estructura que debía tener para ser utilizado la tarea **NER** afortunadamente esto fue relativamente sencillo de encontrar y nos dimos cuenta que no éramos el único equipo con el mismo problema. La estructura del dataset para esta tarea es el siguiente:
* `id`: a `string` feature.
* `tokens`: a `list` of `string` features.
* `ner_tags`: a `list` of classification labels (`int`). Full tagset with indices: {'O': 0, 'B-LEY': 1, 'I-LEY': 2, 'B-TRAT_INTL': 3, 'I-TRAT_INTL': 4}
Afortunadamente, teníamos claro que entidades nos interesaba identificar pero el reto estaba en crear el corpus anotado por la cantidad de ejemplos considerando como base los 27913 del dataset **scjn_corpus_tesis** aún utilizando una herramienta para realizar las anotaciones de manualmente el tiempo requerido era elevado es por ello que nos dimos a la rarea de crear un notebook que recibe una lista de los nombres de las leyes y tratados internacionales y realiza el ETL necesario para las anotaciones automáticamente, para asegurarnos de que todo estaba anotado acorde a lo esperado se extrajo una muestra para su verificación manual.
#### Compartir los datasets en HugginFace
Realizar la investigación de como compartir los datasets en HuggingFace represento un tiempo importante y la mejor forma que encontramos para hacerlo fue:
- Crear un script para utilizar la función **load_dataset** que lee desde un repositorio en github los archivos train.txt y dev.txt y los convierte en un **DatasetDict** para finalmente publicarlos con la función **push_to_hub**.
## Entrenamiento de los modelos
- Crear la línea base de los modelos.
- **hackathon-pln-es/jurisbert-finetuning-ner**
* Espacio de almacenamiento para almacenar los checkpoints que requerían 1.4 GB de almacenamiento por lo que no podíamos entrenar de forma continua.
* Los resultados de **F1** eran muy bajos.
* La cantidad de datos en el corpus era tan elevado y disparejo que el tiempo para entrenar una época era muy alto.
* Realizar múltiples entrenamientos hasta identificar cual era el mejor para realizar cual sería utilizado como base para el entrenamiento siguiente.
* Fue necesario dar un paso atrás y revisar el dataset para realizar un análisis exploratorio e idear estrategias para balancear la muestra por lo que se acoto a:
| name |train|validation|test|
|---------|----:|---------:|---:|
|SCJNNER|1396|345|0|
| annotations|train|validation|test|
|---------|----:|---------:|---:|
|LEY|1084|329|0|
|TRAT_INTL|935|161|0|
- **jurisbert-class-tratados-internacionales-sistema-unviersal**
* Se entrenó con un conjunto de datos que consta de 3,799 textos con su etiquetado a diferentes 8 tipos de convenios.
* Los textos se transforman utilizando SimpleTransformers en el que se entrenó tres épocas con modelo base Roberta y modelo especifico Jurisbert el cual es un modelo de enmascaramiento con corpus jurídico en español.
* La métrica de evaluación utilizada fue **Accuracy**.
- **jurisbert-clas-art-convencion-americana-dh**
* Se entrenó con un conjunto de datos que consta de 6,089 textos con su etiquetado a diferentes 30 tipos de artículos.
* Los textos se transforman utilizando SimpleTransformers en el que se entrenó tres épocas con modelo base Roberta y modelo especifico Jurisbert el cual es un modelo de enmascaramiento con corpus jurídico en español.
* La métrica de evaluación utilizada fue **Accuracy**.
- **jurisbert-tsdae-sentence-transformer**
* Se entreno utilizando el dataset scjnugacj/scjn_dataset_corpus_tesis del cual se tomo una muestra de 25000 ejemplos.
### Team
El equipo esta conformado por [gpalomeque](https://huggingface.co/GPalomeque), [aureliopvs](https://huggingface.co/aureliopvs), [ceciliamacias](https://huggingface.co/ceciliamacias), [giomadariaga](https://huggingface.co/giomadariaga) y [cattsytabla](https://huggingface.co/cattsytabla)
### Consideraciones generales y futuro
Como parte de pilares del Gobierno Abierto mediante el uso de sus ejes de colaboración e innovación se tiene como meta poder continuar con la creación de modelos que permitan crear plataformas de recuperación de información que brinde de manera oportuna y eficiente datos que agilicen tanto el acceso, así como la impartición de justicia.
"""