telodigoensergio commited on
Commit
f138dd8
verified
1 Parent(s): cf93c56

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +127 -113
README.md CHANGED
@@ -9,152 +9,166 @@ license: apache-2.0
9
 
10
  # Model Card for Phi-2-LC
11
 
12
- Este modelo es el primer paso hacia un modelo de lenguaje que pueda usarse para reescribir de textos de car谩cter adminsitrativo
13
- con el objetivo de mejorar su comprensi贸n y lecturabilidad para todo el mundo.
 
14
 
15
  ### Model Description
16
 
17
- El modelo es el resultado de un proceso de ajuste fino de [phi-2](https://huggingface.co/microsoft/phi-2), desarrollado por microsoft con unos 2.5b de par谩metros. Para el
18
- ajuste se han extra铆do multitud de textos de 铆ndole administrativa de las principales p谩ginas web de la administraci贸n del Estado espa帽ol y se han reescrito siguiendo directrices del lenguaje claro mediante gpt-3.5 a trav茅s de la API de OpenAI.
 
 
 
 
 
 
 
19
 
20
- Para la carga y ajuste del modelo se han utilizado t茅cnicas de cuantizaci贸n con la siguiente configuraci贸n:
21
 
22
- ```
23
- bnb_config = BitsAndBytesConfig(load_in_4bit=True,
24
- bnb_4bit_quant_type='nf4',
25
- bnb_4bit_compute_dtype='float16',
26
- bnb_4bit_use_double_quant=True)
27
- ```
28
 
 
29
 
30
- y se ha aplicado LoRA a las capas lineales para el fine-tunning:
31
- ```
32
- config = LoraConfig(
33
- r=16,
34
- lora_alpha=32,
35
- target_modules=[
36
- 'q_proj',
37
- 'k_proj',
38
- 'v_proj',
39
- 'dense',
40
- 'fc1',
41
- 'fc2',
42
- ], #print(model) will show the modules to use
43
- bias="none",
44
- lora_dropout=0.05,
45
- task_type="CAUSAL_LM",
46
- ```
47
 
48
- ## Par谩metros de entrenamiento
49
- Para el entrenamiento se utilizaron los siguientes par谩metros:
50
- ```
51
- training_args = TrainingArguments(
52
- output_dir='./results',
53
- overwrite_output_dir=True,
54
- per_device_train_batch_size=2,
55
- per_device_eval_batch_size=2,
56
- gradient_accumulation_steps=5,
57
- gradient_checkpointing=True,
58
- gradient_checkpointing_kwargs={"use_reentrant": False},
59
- warmup_steps=50,
60
- #max_steps=1000,
61
- num_train_epochs=2,
62
- learning_rate=5e-5,
63
- weight_decay=0.01,
64
- optim="paged_adamw_8bit",
65
- fp16=True,
66
- logging_dir='./logs',
67
- logging_strategy="steps",
68
- logging_steps=100,
69
- save_strategy="steps",
70
- save_steps=200,
71
- save_total_limit=2,
72
- evaluation_strategy="steps",
73
- eval_steps=200,
74
- load_best_model_at_end=True,
75
- )
76
- ```
77
- ## Prompting
78
- El prompt para el uso sigue la siguiente estructura:
79
 
80
- ```
81
- prompt = f"""###System:
82
- Lee el siguiente texto y hazlo m谩s claro:
83
- ###Texto:
84
 
85
- {texto}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
- ###Texto aclarado:
88
- """
89
- ```
90
- ## Probar el modelo:
91
- **Importar las librer铆as necesarias**:
92
  ```
93
  !pip install transformers
94
  !pip install bitsandbytes
95
  !pip install accelerate
96
  import torch
97
  from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
98
- ```
99
 
100
- **Configuraci贸n de BitsAndBytes:**
 
 
101
  ```
102
- bnb_config = BitsAndBytesConfig(load_in_4bit=True,
103
- bnb_4bit_quant_type='nf4',
104
- bnb_4bit_compute_dtype='float16',
105
- bnb_4bit_use_double_quant=True)
106
  ```
107
-
108
- **Carga del modelo y el tokenizador:**
 
 
 
 
 
 
 
 
 
109
  ```
110
- model = AutoModelForCausalLM.from_pretrained(model_id, device_map='auto',
111
- quantization_config=bnb_config,
112
- trust_remote_code=True)
113
-
114
- tokenizer = AutoTokenizer.from_pretrained(model_id,
115
- add_eos_token=True,
116
- trust_remote_code=True)
117
- tokenizer.pad_token = tokenizer.eos_token
118
- tokenizer.truncation_side = "left"
119
  ```
120
- **Definir prompt e iniciar inferencia:**
 
 
 
 
 
 
 
 
 
 
121
  ```
122
- new_prompt = f"""###System:
123
- Lee el siguiente texto y hazlo m谩s claro:
124
- ###Texto:
 
 
 
 
125
 
126
- {texto}
127
 
128
- ###Texto aclarado:
129
- """
130
 
131
- inputs = tokenizer(new_prompt, return_tensors="pt", return_attention_mask=False, padding=True, truncation=True)
132
- outputs = model.generate(**inputs, max_length=1000)
133
- text = tokenizer.batch_decode(outputs,skip_special_tokens=True)[0]
134
- print(text)
135
- ```
136
 
 
137
 
138
- - **Developed by:** [Sergio Chic贸n](https://huggingface.co/telodigoensergio)
139
- - **Language(s) (NLP):** Espa帽ol(Espa帽a)
140
- - **Finetuned from model:** [Microsoft/phi-2](https://huggingface.co/microsoft/phi-2)
141
 
142
- ### Model Sources
143
 
144
- - **Repository:** [Google Colab](https://colab.research.google.com/drive/1qSOtPtRHCN5D1VW6MG-pe17OUZf4D2Q5?usp=sharing)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
 
146
- ## Usos del Modelo
147
 
148
- El modelo "phi-2-LC" ha sido creado espec铆ficamente para simplificar textos administrativos y legales que suelen ser dif铆ciles de entender debido a su complejidad y uso de jerga especializada. Su uso principal es facilitar la comprensi贸n de estos textos para personas sin formaci贸n especializada en 谩reas legales o administrativas, as铆 como para mejorar la accesibilidad de la informaci贸n proporcionada por los ministerios de Espa帽a a trav茅s de sus p谩ginas web. Adem谩s, este modelo tambi茅n se utiliza para afinar los sistemas de procesamiento de lenguaje natural (PLN) en tareas de simplificaci贸n del lenguaje, lo que demuestra su aplicaci贸n pr谩ctica tanto en contextos gubernamentales como en desarrollos tecnol贸gicos en IA.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
 
150
- ## Sesgos del Modelo
151
- Dado que el dataset utilizado para el entrenamiento del modelo proviene exclusivamente de textos gubernamentales espa帽oles, es probable que el modelo pueda exhibir sesgos relacionados con el contexto cultural y legal espec铆fico de Espa帽a. Estos sesgos pueden influir en la generalizaci贸n del modelo cuando se aplique a textos de naturaleza o origen diferentes. Reconocer y abordar estos sesgos es crucial para evitar malinterpretaciones y errores en aplicaciones m谩s amplias. Se recomienda una evaluaci贸n continua del modelo para identificar y mitigar tales sesgos de manera efectiva.
152
 
153
- ## Impacto medioambiental
154
 
155
- **Hardware Type:** T4 - 16GB
156
- **Hours used:** 3
157
- **Cloud Provider:** Google
158
- **Compute Region:** Europe
159
- **Carbon Emitted:** 0.13 kg CO2 eq.
160
 
 
 
 
 
9
 
10
  # Model Card for Phi-2-LC
11
 
12
+ Este modelo es el primer paso hacia un modelo de lenguaje que pueda usarse para reescribir textos de car谩cter administrativo con el objetivo de mejorar su comprensi贸n y lecturabilidad para todo el mundo.
13
+
14
+ ## Model Details
15
 
16
  ### Model Description
17
 
18
+ - **Developed by:** [Sergio Chic贸n](https://huggingface.co/telodigoensergio)
19
+ - **Funded by:** SomosNLP, HuggingFace
20
+ - **Model type:** Language model, instruction tuned
21
+ - **Language(s):** Spanish (`es-ES`)
22
+ - **License:** apache-2.0
23
+ - **Fine-tuned from model:** [phi-2](https://huggingface.co/microsoft/phi-2)
24
+ - **Dataset used:** [Lenguaje-Claro-Dataset](https://huggingface.co/datasets/somosnlp/lenguaje-claro-dataset)
25
+ -
26
+ ### Model Sources
27
 
28
+ - **Repository:** [Google Colab](https://colab.research.google.com/drive/1qSOtPtRHCN5D1VW6MG-pe17OUZf4D2Q5?usp=sharing)
29
 
30
+ ## Uses
 
 
 
 
 
31
 
32
+ ### Direct Use
33
 
34
+ El modelo "Phi-2-LC" ha sido creado espec铆ficamente para simplificar textos administrativos y legales que suelen ser dif铆ciles de entender debido a su complejidad y uso de jerga especializada. Su uso principal es facilitar la comprensi贸n de estos textos para personas sin formaci贸n especializada en 谩reas legales o administrativas, as铆 como para mejorar la accesibilidad de la informaci贸n proporcionada por los ministerios de Espa帽a a trav茅s de sus p谩ginas web.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
+ ### Out-of-Scope Use
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
+ Este modelo no est谩 dise帽ado para interpretaci贸n legal formal o para la redacci贸n de documentos legales o administrativos oficiales, dado que la simplificaci贸n podr铆a omitir aspectos cr铆ticos necesarios para una correcta interpretaci贸n legal.
 
 
 
39
 
40
+ ## Bias, Risks, and Limitations
41
+
42
+ Dado que el dataset utilizado para el entrenamiento del modelo proviene exclusivamente de textos gubernamentales espa帽oles, es probable que el modelo pueda exhibir sesgos relacionados con el contexto cultural y legal espec铆fico de Espa帽a. Estos sesgos pueden influir en la generalizaci贸n del modelo cuando se aplique a textos de naturaleza o origen diferentes. Se recomienda una evaluaci贸n continua del modelo para identificar y mitigar tales sesgos de manera efectiva.
43
+
44
+ ### Recommendations
45
+
46
+ Se recomienda usar el modelo conscientemente, entendiendo que puede tener limitaciones en contextos fuera del 谩mbito administrativo espa帽ol y que los resultados deben ser verificados por expertos en el contexto de uso.
47
+
48
+ ## Environmental Impact
49
+
50
+ - **Hardware Type:** T4 - 16GB
51
+ - **Hours used:** 3
52
+ - **Cloud Provider:** Google
53
+ - **Compute Region:** Europe
54
+ - **Carbon Emitted:** 0.13 kg CO2 eq.
55
+
56
+ ## How to Get Started with the Model
57
 
 
 
 
 
 
58
  ```
59
  !pip install transformers
60
  !pip install bitsandbytes
61
  !pip install accelerate
62
  import torch
63
  from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
 
64
 
65
+ model_id = 'phi-2-LC' # example model ID
66
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
67
+ model = AutoModelForCausalLM.from_pretrained(model_id)
68
  ```
69
+ ### Cargar el tokenizador y el modelo
 
 
 
70
  ```
71
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
72
+ model = AutoModelForCausalLM.from_pretrained(model_id, device_map='auto', quantization_config=bnb_config, trust_remote_code=True)
73
+ ```
74
+ ### Configuraci贸n de BitsAndBytes para optimizaci贸n
75
+ ```
76
+ bnb_config = BitsAndBytesConfig(
77
+ load_in_4bit=True,
78
+ bnb_4bit_quant_type='nf4',
79
+ bnb_4bit_compute_dtype='float16',
80
+ bnb_4bit_use_double_quant=True
81
+ )
82
  ```
83
+ ### Definir el prompt y generar texto aclarado
 
 
 
 
 
 
 
 
84
  ```
85
+ def generate_clear_text(text):
86
+ prompt = f"""###System:
87
+ Lee el siguiente texto y hazlo m谩s claro:
88
+ ###Texto:
89
+ {text}
90
+ ###Texto aclarado:
91
+ """
92
+ inputs = tokenizer(prompt, return_tensors="pt", return_attention_mask=False, padding=True, truncation=True)
93
+ outputs = model.generate(**inputs, max_length=1000)
94
+ clear_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
95
+ return clear_text
96
  ```
97
+ ### Uso del modelo para clarificar un ejemplo de texto
98
+ ```
99
+ sample_text = "El procedente documento detalla la normativa aplicable a..."
100
+ clear_text = generate_clear_text(sample_text)
101
+ print(clear_text)
102
+ ```
103
+ ## Evaluaci贸n
104
 
105
+ ### Datos de Prueba, Factores y M茅tricas
106
 
107
+ #### Datos de Prueba
 
108
 
109
+ La evaluaci贸n se llev贸 a cabo en un conjunto separado de textos administrativos, similares en estilo y complejidad a los datos de entrenamiento, asegurando que el modelo fuera probado en condiciones similares a su entorno de entrenamiento.
 
 
 
 
110
 
111
+ #### Factores
112
 
113
+ La evaluaci贸n se desagreg贸 por el tipo de texto administrativo para evaluar el rendimiento en diferentes tipos de documentos legales y administrativos.
 
 
114
 
 
115
 
116
+ ### Resultados
117
+
118
+ El modelo demostr贸 un aumento significativo en los puntajes de legibilidad y mantuvo una alta fidelidad a los textos originales, lo que indica una simplificaci贸n efectiva sin perder informaci贸n importante.
119
+
120
+
121
+
122
+ ## Impacto Ambiental
123
+
124
+ Las emisiones de carbono fueron estimadas utilizando la [calculadora de impacto de aprendizaje autom谩tico](https://mlco2.github.io/impact#compute) proporcionada en [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
125
+
126
+ - **Tipo de Hardware:** T4 - 16GB
127
+ - **Horas utilizadas:** 3
128
+ - **Proveedor de la Nube:** Google Cloud
129
+ - **Regi贸n de C贸mputo:** Europa
130
+ - **Carbono Emitido:** 0.13 kg CO2 eq.
131
 
132
+ ## Especificaciones T茅cnicas
133
 
134
+ ### Arquitectura y Objetivo del Modelo
135
+
136
+ Phi-2-LC se basa en la arquitectura Phi-2, que es un modelo transformador ajustado a instrucciones dise帽ado para procesar y simplificar textos legales y administrativos complejos.
137
+
138
+ ### Infraestructura de C贸mputo
139
+
140
+ #### Hardware
141
+
142
+ El proceso de ajuste fino se llev贸 a cabo utilizando las GPU T4 de Google Cloud, que proporcionaron la capacidad de c贸mputo necesaria.
143
+
144
+ #### Software
145
+
146
+ - **Librer铆as:** Transformers, BitsAndBytes, Accelerate
147
+
148
+ ## Licencia
149
+
150
+ El modelo se publica bajo la licencia apache-2.0, que permite tanto el uso acad茅mico como comercial, siempre y cuando se acredite a los autores originales.
151
+
152
+ ## Citaci贸n
153
+
154
+ **BibTeX:**
155
+
156
+ ```bibtex
157
+ @software{phi2_lc_model,
158
+ author = {Sergio Chic贸n},
159
+ title = {Phi-2-LC: Un Modelo para Simplificar Textos Administrativos},
160
+ month = oct,
161
+ year = 2024,
162
+ url = {https://huggingface.co/telodigoensergio/phi-2-lc}
163
+ }
164
+ ```
165
+ ## More Information
166
 
167
+ This project was developed during the [Hackathon #Somos600M](https://somosnlp.org/hackathon) organized by SomosNLP. The model was trained using GPUs sponsored by HuggingFace.
 
168
 
169
+ **Team:**
170
 
 
 
 
 
 
171
 
172
+ [Rub茅n de la Fuente](https://huggingface.co/rdlf)
173
+ [Sergio Chic贸n](https://huggingface.co/telodigoensergio)
174
+ [Marta F. G贸mez](https://huggingface.co/Maruxine)