gpt-bi / README.md
eriksarriegui's picture
Update README.md
0c87e8b verified
metadata
library_name: transformers
license: mit
datasets:
  - HiTZ/latxa-corpus-v1.1
  - wikimedia/wikipedia
language:
  - eu
base_model:
  - openai-community/gpt2
pipeline_tag: text-generation

GPT-Bi: Un modelo de lenguaje basado en Transformers para Euskera

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.

Quickstart

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.

Probar la aplicaci贸n

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.

Utilizando Transformers

Si prefieres experimentar con el modelo en un entorno de programaci贸n, te proporcionamos un cuaderno de Google Colab listo para usar Open In Colab. Para utilizar el modelo puedes utilizar la librer铆a transformers de Hugging Face.

Instalaci贸n

Primero, aseg煤rate de tener instalada la biblioteca transformers y torch (o tensorflow). Puedes instalarlas con pip:

pip install transformers torch

Cargar el modelo y generar texto

Una vez instalado transformers puedes utilizar pipeline para empezar a generar texto:

from transformers import pipeline

pipe = pipeline("text-generation", model = "AuriLab/gpt-bi")

generated_text = pipe("Bazen behin", max_length=50, do_sample=True, temperature=0.7)

print(generated_text[-1]["generated_text"])

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.

Sobre el modelo

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.

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.

Sobre el dataset

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.

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.

Corpus en Euskera

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.

A continuaci贸n, se detallan las fuentes de datos incluidas en HiTZ/latxa-corpus-v1.1:

Fuente Descripci贸n
EusCrawl v1.1 Versi贸n actualizada de EusCrawl v1 (Artetxe et al., 2022), con contenido hasta noviembre de 2023.
Egunkaria Contenido del diario Egunkaria.
Booktegi Libros en formato EPUB provenientes de Booktegi.
Wikipedia Dump de la Wikipedia en euskera correspondiente a noviembre de 2023 (Wikimedia).
CulturaX Porci贸n en euskera del corpus CulturaX (Nguyen et al., 2023).
Colossal OSCAR Porci贸n en euskera de varias versiones del corpus Colossal OSCAR.
HPLT v1 Porci贸n en euskera del corpus HPLT v1 (Aulamo et al., 2023).

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.

Corpus en Castellano

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.

Entrenamiento

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.

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.

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.

git clone https://github.com/ErikSarriegui/gpt-bi

cd gpt-bi

pip install -r requirements.txt

torchrun --nproc_per_node=<n_gpus> train.py

Siguientes pasos

Siguientes Pasos Descripci贸n
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.
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.
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.

M茅tricas

[PROXIMAMENTE]

Apoya el proyecto

Buy Me A Coffee

Bibliograf铆a

  • HOFFMANN, Jordan, et al. Training compute-optimal large language models. arXiv preprint arXiv:2203.15556, 2022.
  • Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.
  • Etxaniz, Julen, et al. "Latxa: An open language model and evaluation suite for Basque." arXiv preprint arXiv:2403.20266 (2024).
  • Artetxe, Mikel, et al. "Does corpus quality really matter for low-resource languages?, 2022." URL: https://arxiv. org/abs/2203.08111. doi 10.
  • Nguyen, Thuat, et al. "Culturax: A cleaned, enormous, and multilingual dataset for large language models in 167 languages." arXiv preprint arXiv:2309.09400 (2023).
  • Aulamo, Mikko, et al. "HPLT: High performance language technologies." Annual Conference of The European Association for Machine Translation. European Association for Machine Translation, 2023.