eriksarriegui commited on
Commit
7dde1b2
·
verified ·
1 Parent(s): 9d1ff18

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +87 -163
README.md CHANGED
@@ -11,197 +11,121 @@ base_model:
11
  pipeline_tag: text-generation
12
  ---
13
 
14
- # Model Card for Model ID
 
 
15
 
16
- <!-- Provide a quick summary of what the model is/does. -->
 
 
 
 
 
 
 
 
 
17
 
 
 
 
 
18
 
 
19
 
20
- ## Model Details
21
 
22
- ### Model Description
 
23
 
24
- <!-- Provide a longer summary of what this model is. -->
 
25
 
26
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
 
27
 
28
- - **Developed by:** [More Information Needed]
29
- - **Funded by [optional]:** [More Information Needed]
30
- - **Shared by [optional]:** [More Information Needed]
31
- - **Model type:** [More Information Needed]
32
- - **Language(s) (NLP):** [More Information Needed]
33
- - **License:** [More Information Needed]
34
- - **Finetuned from model [optional]:** [More Information Needed]
 
 
35
 
36
- ### Model Sources [optional]
37
 
38
- <!-- Provide the basic links for the model. -->
39
 
40
- - **Repository:** [More Information Needed]
41
- - **Paper [optional]:** [More Information Needed]
42
- - **Demo [optional]:** [More Information Needed]
43
 
44
- ## Uses
45
 
46
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
 
47
 
48
- ### Direct Use
49
 
50
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
 
51
 
52
- [More Information Needed]
53
 
54
- ### Downstream Use [optional]
 
55
 
56
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
 
 
 
 
 
 
 
 
 
57
 
58
- [More Information Needed]
59
 
60
- ### Out-of-Scope Use
 
61
 
62
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
 
63
 
64
- [More Information Needed]
65
 
66
- ## Bias, Risks, and Limitations
67
 
68
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
 
69
 
70
- [More Information Needed]
71
 
72
- ### Recommendations
73
 
74
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
 
75
 
76
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
 
 
 
 
 
77
 
78
- ## How to Get Started with the Model
 
79
 
80
- Use the code below to get started with the model.
 
81
 
82
- [More Information Needed]
83
-
84
- ## Training Details
85
-
86
- ### Training Data
87
-
88
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
89
-
90
- [More Information Needed]
91
-
92
- ### Training Procedure
93
-
94
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
95
-
96
- #### Preprocessing [optional]
97
-
98
- [More Information Needed]
99
-
100
-
101
- #### Training Hyperparameters
102
-
103
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
104
-
105
- #### Speeds, Sizes, Times [optional]
106
-
107
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
108
-
109
- [More Information Needed]
110
-
111
- ## Evaluation
112
-
113
- <!-- This section describes the evaluation protocols and provides the results. -->
114
-
115
- ### Testing Data, Factors & Metrics
116
-
117
- #### Testing Data
118
-
119
- <!-- This should link to a Dataset Card if possible. -->
120
-
121
- [More Information Needed]
122
-
123
- #### Factors
124
-
125
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
126
-
127
- [More Information Needed]
128
-
129
- #### Metrics
130
-
131
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
132
-
133
- [More Information Needed]
134
-
135
- ### Results
136
-
137
- [More Information Needed]
138
-
139
- #### Summary
140
-
141
-
142
-
143
- ## Model Examination [optional]
144
-
145
- <!-- Relevant interpretability work for the model goes here -->
146
-
147
- [More Information Needed]
148
-
149
- ## Environmental Impact
150
-
151
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
152
-
153
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
154
-
155
- - **Hardware Type:** [More Information Needed]
156
- - **Hours used:** [More Information Needed]
157
- - **Cloud Provider:** [More Information Needed]
158
- - **Compute Region:** [More Information Needed]
159
- - **Carbon Emitted:** [More Information Needed]
160
-
161
- ## Technical Specifications [optional]
162
-
163
- ### Model Architecture and Objective
164
-
165
- [More Information Needed]
166
-
167
- ### Compute Infrastructure
168
-
169
- [More Information Needed]
170
-
171
- #### Hardware
172
-
173
- [More Information Needed]
174
-
175
- #### Software
176
-
177
- [More Information Needed]
178
-
179
- ## Citation [optional]
180
-
181
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
182
-
183
- **BibTeX:**
184
-
185
- [More Information Needed]
186
-
187
- **APA:**
188
-
189
- [More Information Needed]
190
-
191
- ## Glossary [optional]
192
-
193
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
194
-
195
- [More Information Needed]
196
-
197
- ## More Information [optional]
198
-
199
- [More Information Needed]
200
-
201
- ## Model Card Authors [optional]
202
-
203
- [More Information Needed]
204
-
205
- ## Model Card Contact
206
-
207
- [More Information Needed]
 
11
  pipeline_tag: text-generation
12
  ---
13
 
14
+ <p align="center" sty>
15
+ <img src="images/gpt-bi-logo.jpg" width="450">
16
+ </p>
17
 
18
+ <p align="center">
19
+ <img src="https://img.shields.io/badge/license-MIT-green">
20
+
21
+ <a href="https://huggingface.co/AuriLab/gpt-bi" target="_blank">
22
+ <img src="https://img.shields.io/badge/HuggingFace-%F0%9F%A4%97-orange" />
23
+ </a>
24
+
25
+ <img src="https://img.shields.io/badge/Pretrained_Models-green">
26
+ <!-- <img src="https://img.shields.io/badge/Blog%20Post-yellow"> SE PUEDE HACER UN POST EN MEDIUM -->
27
+ <!-- <img src="https://img.shields.io/badge/Paper-blue"> Cuando haya un reporte técnico -->
28
 
29
+ <a href="https://colab.research.google.com/github/ErikSarriegui/gpt-bi/blob/main/quickstart.ipynb" target="_blank">
30
+ <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab">
31
+ </a>
32
+ </p>
33
 
34
+ # **GPT-Bi: Un modelo de lenguaje basado en Transformers para Euskera**
35
 
36
+ Introducimos GPT-Bi, un modelo de lenguaje abierto basado en la arquitectura de GPT-2 diseñado para experimentar con la generación de texto en euskera. Este proyecto tiene como objetivo principal avanzar en el campo del procesamiento del lenguaje natural (PLN) para lenguas minoritarias, como el euskera, que históricamente han tenido menos recursos y modelos de lenguaje disponibles en comparación con idiomas mayoritarios como el inglés o el español. El euskera es una lengua única, no indoeuropea, con una estructura gramatical y sintáctica compleja. A pesar de su riqueza cultural e histórica, los recursos digitales y herramientas de PLN para el euskera son limitados. Nuestra misión es reducir la brecha tecnológica y empoderar a individuos y organizaciones proporcionando un modelo de lenguaje ligero, robusto y accesible que pueda ser utilizado sin restricciones, animamos a la comunidad a contribuir con datos, entrenamiento y mejoras del modelo.
37
 
38
+ ## **Quickstart**
39
+ Aquí te guiaremos para que puedas comenzar a utilizar este modelo diseñado específicamente para el euskera. Sigue estos pasos para explorar y experimentar con la generación de texto en euskera.
40
 
41
+ ### **Probar la aplicación**
42
+ Puedes probar GPT-Bi directamente en tu navegador a través de nuestra demo en Hugging Face. Haz clic en el siguiente enlace para acceder a la interfaz y comenzar a generar texto en euskera. <a href="https://huggingface.co/spaces/AuriLab/gpt-bi-demo" target = "_blank"> <img src="https://img.shields.io/badge/Accede_a_la_Demo-8A2BE2"> </a>
43
 
44
+ ### **Utilizando Transformers**
45
+ Si prefieres experimentar con el modelo en un entorno de programación, te proporcionamos un cuaderno de Google Colab listo para usar <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab">. Para utilizar el modelo puedes utilizar la librería `transformers` de Hugging Face.
46
 
47
+ #### **Instalación**
48
+ Primero, asegúrate de tener instalada la biblioteca `transformers` y `torch` (o `tensorflow`). Puedes instalarlas con pip:
49
+ ```bash
50
+ pip install transformers torch
51
+ ```
52
+ #### **Cargar el modelo y generar texto**
53
+ Una vez instalado `transformers` puedes utilizar `pipeline` para empezar a generar texto:
54
+ ```python
55
+ from transformers import pipeline
56
 
57
+ pipe = pipeline("text-generation", model = "AuriLab/gpt-bi")
58
 
59
+ generated_text = pipe("Bazen behin", max_length=50, do_sample=True, temperature=0.7)
60
 
61
+ print(generated_text[-1]["generated_text"])
62
+ ```
 
63
 
64
+ Como con cualquier otro modelo de `transformers` puedes ajustar los parámetros de generación, como max_length, temperature, top_k, y top_p, para controlar la creatividad y la longitud del texto generado.
65
 
66
+ ## **Sobre el modelo**
67
+ GPT-Bi está basado en la arquitectura de GPT-2 (Radford et al., 2019), un modelo de lenguaje transformer ampliamente reconocido por su capacidad para generar texto coherente y contextualmente relevante. Este modelo cuenta con aproximadamente 110 millones de parámetros, lo que lo convierte en una opción ligera pero potente para tareas de generación de texto en euskera. El tamaño del vocabulario es de ~32,000 tokens, lo que permite una representación eficiente y precisa del idioma, capturando su riqueza léxica y gramatical.
68
 
69
+ En su estado actual, GPT-Bi es un modelo de lenguaje generalista, lo que significa que no está específicamente entrenado para seguir instrucciones o realizar tareas guiadas por el usuario. Sin embargo, está previsto desarrollar una versión "instruct" en el futuro, que permitirá una interacción más directa y orientada a tareas específicas, ampliando así su utilidad en aplicaciones prácticas. En cuanto a las características técnicas del modelo, tiene una longitud máxima de secuencia de 1,024 tokens. El modelo utiliza una dimensionalidad de embedding de 768, 12 capas de transformadores y 12 cabezas de atención.
70
 
71
+ ## **Sobre el dataset**
72
+ El entrenamiento de GPT-Bi se ha basado en un conjunto de datos cuidadosamente seleccionado y procesado para garantizar un rendimiento óptimo en la generación de texto en euskera. Los tokens han sido contados utilizando el tokenizer propio de GPT-Bi.
73
 
74
+ El conjunto de datos de entrenamiento consta de aproximadamente ~2,200 millones de tokens, ~1,900M en Euskera y ~300M en Castellano. Esta cantidad ha sido elegida para lograr un entrenamiento óptimo desde el punto de vista computacional (Hoffmann et al., 2022). Está compuesto por dos fuentes principales: una en euskera y otra en castellano. La inclusión del castellano se debe a la insuficiencia de tokens en euskera para realizar el preentrenamiento exclusivamente en este idioma.
75
 
76
+ ### Corpus en Euskera
77
+ Se ha utilizado `HiTZ/latxa-corpus-v1.1` (Etxaniz et al., 2024). Este conjunto de datos ha sido recopilado y procesado por el equipo de HiTZ, combinando diversas fuentes existentes junto con nuevas incorporaciones. La selección de este dataset responde a su amplia cobertura del euskera y su calidad tras los procesos de deduplicación y limpieza.
78
 
79
+ A continuación, se detallan las fuentes de datos incluidas en [`HiTZ/latxa-corpus-v1.1`](https://huggingface.co/datasets/HiTZ/latxa-corpus-v1.1):
80
+ | Fuente | Descripción |
81
+ |-------------------|-------------|
82
+ | **EusCrawl v1.1** | Versión actualizada de EusCrawl v1 (Artetxe et al., 2022), con contenido hasta noviembre de 2023. |
83
+ | **Egunkaria** | Contenido del diario Egunkaria. |
84
+ | **Booktegi** | Libros en formato EPUB provenientes de [Booktegi](https://www.booktegi.eus/). |
85
+ | **Wikipedia** | Dump de la Wikipedia en euskera correspondiente a noviembre de 2023 ([Wikimedia](https://huggingface.co/datasets/wikimedia/wikipedia)). |
86
+ | **CulturaX** | Porción en euskera del corpus CulturaX (Nguyen et al., 2023). |
87
+ | **Colossal OSCAR** | Porción en euskera de varias versiones del corpus [Colossal OSCAR](https://huggingface.co/datasets/oscar-corpus/colossal-oscar-1.0). |
88
+ | **HPLT v1** | Porción en euskera del corpus HPLT v1 (Aulamo et al., 2023). |
89
 
90
+ Para más detalles sobre las licencias y características de cada conjunto de datos, se recomienda consultar las referencias correspondientes en la publicación original del corpus [`HiTZ/latxa-corpus-v1.1`](https://huggingface.co/datasets/HiTZ/latxa-corpus-v1.1).
91
 
92
+ ### Corpus en Castellano
93
+ En cuanto al corpus en castellano, se han extraido los ~300M de tokens en castellano necesarios para llegar al óptimo de tokens del dump de Wikipedia realizado por Wikimedia [`wikimedia/wikipedia`](https://huggingface.co/datasets/wikimedia/wikipedia).
94
 
95
+ ## **Entrenamiento**
96
+ El entrenamiento de GPT-Bi se ha llevado a cabo utilizando la librería transformers de Hugging Face, una herramienta ampliamente reconocida en el campo del procesamiento del lenguaje natural por su flexibilidad y eficiencia. Esta elección ha permitido aprovechar las mejores prácticas en el entrenamiento de modelos basados en transformers, asegurando un equilibrio entre rendimiento y, sobre todo, accesibilidad. El uso de esta librería ha facilitado la implementación de técnicas avanzadas de entrenamiento, garantizando que el modelo sea robusto y fácil de utilizar por la comunidad. En cuanto al proceso de entrenamiento, se ha realizado en 6 GPUs Tesla V100, con un tiempo total de aproximadamente 12 horas. Se utilizó un batch size de 48, lo que permitió manejar de manera eficiente el volumen de datos disponible. El entrenamiento se completó en un único epoch, asegurando que el modelo iterara sobre todos los datos una vez. Este enfoque fue diseñado para optimizar el uso de los recursos computacionales sin comprometer la calidad del modelo final.
97
 
98
+ El entrenamiento de modelos de lenguaje, como GPT-Bi, a menudo requiere el uso de múltiples GPUs para manejar eficientemente el volumen de datos y la complejidad del modelo. En este caso, el entrenamiento se realizó en 6 GPUs Tesla V100, lo que permitió distribuir la carga de trabajo y acelerar el proceso. Para facilitar este entrenamiento distribuido, se utilizó la librería `torchrun`, que es parte de PyTorch y permite ejecutar scripts de entrenamiento en múltiples GPUs de manera sencilla.
99
 
100
+ El siguiente código proporcionado es un ejemplo de cómo iniciar el entrenamiento de manera distribuida utilizando torchrun. Sin embargo, es importante tener en cuenta que el script train.py debe ser configurado adecuadamente para incluir detalles específicos como el token de Hugging Face y el repositorio donde se desea subir el modelo una vez completado el entrenamiento.
101
 
102
+ ```bash
103
+ git clone https://github.com/ErikSarriegui/gpt-bi
104
 
105
+ cd gpt-bi
106
 
107
+ pip install -r requirements.txt
108
 
109
+ torchrun --nproc_per_node=<n_gpus> train.py
110
+ ```
111
 
112
+ ## **Siguientes pasos**
113
+ | **Siguientes Pasos** | **Descripción** |
114
+ |---------------------------------------|---------------------------------------------------------------------------------|
115
+ | **Evaluar el modelo** | Realizar una evaluación exhaustiva del rendimiento del modelo en diversas tareas de generación de texto y compararlo con otros modelos disponibles. |
116
+ | **Crear una versión instruct del modelo** | Desarrollar una versión del modelo capaz de seguir instrucciones y realizar tareas específicas, mejorando su utilidad en aplicaciones prácticas. |
117
+ | **Mejorar la documentación** | Ampliar y detallar la documentación del proyecto, incluyendo guías de uso, ejemplos y mejores prácticas para facilitar la adopción por parte de la comunidad. |
118
 
119
+ ## **Métricas**
120
+ [PROXIMAMENTE]
121
 
122
+ ## **Apoya el proyecto**
123
+ [![Buy Me A Coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=☕&slug=tuusuario&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff)](https://www.buymeacoffee.com/eriksarriegui)
124
 
125
+ ## **Bibliografía**
126
+ * HOFFMANN, Jordan, et al. Training compute-optimal large language models. arXiv preprint arXiv:2203.15556, 2022.
127
+ * Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.
128
+ * Etxaniz, Julen, et al. "Latxa: An open language model and evaluation suite for Basque." arXiv preprint arXiv:2403.20266 (2024).
129
+ * Artetxe, Mikel, et al. "Does corpus quality really matter for low-resource languages?, 2022." URL: https://arxiv. org/abs/2203.08111. doi 10.
130
+ * Nguyen, Thuat, et al. "Culturax: A cleaned, enormous, and multilingual dataset for large language models in 167 languages." arXiv preprint arXiv:2309.09400 (2023).
131
+ * Aulamo, Mikko, et al. "HPLT: High performance language technologies." Annual Conference of The European Association for Machine Translation. European Association for Machine Translation, 2023.