
Nous présentons
Latxa, une famille de modèles de grande langue pour basque allant de 7 à 70 milliards de paramètres. Latxa est basé sur Llama 2, que nous continuons à pré-taire sur un nouveau corpus basque comprenant 4,3 millions de documents et des jetons de 4,2B. Abordant la rareté des références de haute qualité pour le basque, nous introduisons en outre 4 ensembles de données d'évaluation à choix multiples: EUSProficacité, comprenant 5 169 questions des examens officiels de compétence linguistique; Eusreading, comprenant 352 questions de compréhension en lecture; Eustrivia, comprenant 1 715 questions de trivia de 5 domaines de connaissances; et Eusexams, comprenant 16 046 questions des examens publics. Dans notre évaluation approfondie, Latxa surpasse tous les modèles ouverts précédents que nous comparons par une grande marge. En outre, il est compétitif avec GPT-4 Turbo dans la compétence et la compréhension du langage, malgré un retard dans la compréhension de la lecture et les tâches à forte intensité de connaissances. La famille de modèles Latxa, ainsi que nos nouveaux ensembles de données de pré-formation et d'évaluation, sont accessibles au public sous licence ouverte. Notre suite permet une recherche reproductible sur les méthodes de création de LLM pour les langues à faible ressource.
Utilisez le code ci-dessous pour commencer avec le modèle.
from transformers import pipeline
pipe = pipeline ( "text-generation" , model = "HiTZ/latxa-7b-v1.1" )
text = "Euskara adimen artifizialera iritsi da!"
pipe ( text , max_new_tokens = 50 , num_beams = 5 )
>> [
{
'generated_text' : 'Euskara adimen artifizialera iritsi da! n Euskararen eta adimen artifizialaren arteko harremana aspaldikoa da,'
' baina azken urteotan aurrerapauso handiak eman dira arlo horretan'
}
]Code pour les modèles de formation sur le cluster CINECA HPC Leonardo à l'aide de GPT-Neox. Si vous vous entraînez sur un autre cluster, vous devrez mettre à jour certains paramètres. Consultez la documentation GPT-Neox si vous avez des doutes.
Le processus de formation est divisé en plusieurs étapes: charger les modules requis, créer un environnement virtuel, installer GPT-Neox, télécharger les modèles de lama, convertir les points de contrôle, télécharger les données, prétraiter les données, définir les configurations d'entraînement, configurer WANDB, exécuter la formation et convertir les points de contrôle NEOX en HF.
Installez les modules nécessaires à GPT-Neox. Vous pouvez l'ajouter à .bashrc afin que les modules soient chargés automatiquement:
module load profile/deeplrn
module load python/3.10.8--gcc--11.3.0
module load cuda/11.8
module load openmpi/4.1.4--gcc--11.3.0-cuda-11.8
module load zlib/1.2.13--gcc--11.3.0
module load git-lfsCréer un environnement virtuel:
python -m venv $WORK /environments/neox-env Activer l'environnement virtuel. Vous pouvez l'ajouter à .bashrc afin que l'environnement virtuel soit activé automatiquement:
source $WORK /environments/neox-env/bin/activateClone le référentiel et installer les exigences:
git clone https://github.com/EleutherAI/gpt-neox
cd gpt-neoxInstallez les exigences:
pip install -r requirements/requirements.txt
pip install -r requirements/requirements-wandb.txt
pip install -r requirements/requirements-flashattention.txt
python ./megatron/fused_kernels/setup.py install # optional, if using fused kernels Comme le cluster Leonardo n'a pas de connexion Internet, le mode hors ligne doit être utilisé. Modifier le répertoire de configuration WANDB par défaut:
export WANDB_CONFIG_DIR= $HOME /.wandbConnectez-vous à Wandb:
wandb loginChanger Wandb en mode hors ligne:
wandb offline Les journaux seront enregistrés sur $WORK/gpt-neox/wandb Directory.
Pour synchroniser les journaux avec Wandb, exécuter:
wandb sync $WORK /gpt-neox/wandbTéléchargez les modèles RAW LLAMA à partir des liens suivants:
LLAMA-2-7B: https://huggingface.co/meta-llama/llama-2-7b
LLAMA-2-13B: https://huggingface.co/meta-llama/llama-2-13b
LLAMA-2-70B: https://huggingface.co/meta-llama/Lama-2-70b
Convertissez les modèles RAW LLAMA au format NEOX à l'aide de scripts dans convert .
cd convert
bash convert_raw_llama_weights_to_neox_7b.sh
bash convert_raw_llama_weights_to_neox_13b.sh
bash convert_raw_llama_weights_to_neox_70b.shTéléchargez les données de pré-formation à partir des liens suivants:
Euscrawl: https://huggingface.co/datasets/hitz/euscrawl
Pile: https://huggingface.co/datasets/eleutherai/pile
Latxa v1.1: https://huggingface.co/datasets/hitz/latxa-corpus-v1.1
Données de prétraitement à l'aide de scripts disponibles dans le répertoire preprocess :
Pour prétraiter l'ensemble de données de pile, exécutez bash preprocess_data_pile.sh .
Pour prétraiter l'ensemble de données LATXA V1, exécutez bash preprocess_data_latxa-v1.sh .
Pour prétraiter l'ensemble de données LatXA V1.1, exécutez bash preprocess_data_latxa-v1.1.sh .
Définissez les configurations de formation dans le répertoire configs . Vous pouvez utiliser les configurations existantes comme modèle. Il y a deux configurations de base qui sont communes à tous les modèles et incluent des détails tels que le point de contrôle et la journalisation. Le premier est utilisé pour les modèles 7b et 13b, et l'autre pour les modèles 70b. Les configurations supplémentaires sont divisées en 4 dossiers, selon le type de paramètres: données, vitesse profonde, hyperparamètres et modèles.
data : contient les fichiers de configuration de données pour LatXA V1 et V1.1.deepspeed : contient le fichier de configuration Deeppeed pour zéro 1.hyperparameters : contient les fichiers de configuration des hyperparamètres pour LatXA v1 et v1.1 de trois tailles.models : contient les fichiers de configuration du modèle pour trois tailles. Exécutez la formation à l'aide de scripts disponibles dans le répertoire train . Il existe des scripts pour les modèles LatXA V1 et V1.1 de trois tailles. Par exemple, pour entraîner Latxa 7B v1.1, exécuter:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh Les points de contrôle Neox peuvent être convertis en HF à l'aide du script convert_neox_to_hf.py . Le script prend un chemin d'entrée, le chemin de sortie, la configuration du modèle, la précision et l'architecture comme arguments. Vous pouvez trouver des exemples de scripts dans le répertoire convert . Par exemple, pour convertir le modèle Latxa 7B v1.1, exécuter:
cd convert
bash convert_neox_to_hf_7b_v1.1.sh Les scripts d'évaluation pour les modèles ouverts sont dans le répertoire scripts . Le répertoire openai contient des scripts pour évaluer les modèles OpenAI. Les résultats de l'évaluation sont dans le répertoire results .
Vous devrez installer le harnais d'évaluation LM. Clone le référentiel et installer les exigences:
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e . Pour exécuter l'évaluation sur les modèles ouverts, utilisez les scripts dans le répertoire scripts . Chaque script évalue un modèle dans toutes les tâches. Par exemple, pour exécuter l'évaluation sur Latxa v1.1 7b, exécuter:
sbatch lm_eval_latxa-7b-v1.1.slurm Les résultats de l'évaluation sont dans le répertoire results . Chaque modèle a un répertoire avec les résultats de l'évaluation dans chaque tâche. Les résultats se présentent sous la forme d'un fichier JSON avec les scores moyens du modèle dans chaque tâche.
Pour exécuter l'évaluation sur les modèles OpenAI, utilisez les scripts dans le répertoire openai . Il existe un script Python pour évaluer chaque ensemble de données et un script bash pour chaque modèle et ensemble de données. Par exemple, pour exécuter l'évaluation sur GPT-3.5 Turbo sur Eustrivia, exécuter:
bash gpt-3.5-turbo-0125_eus_trivia.sh Les résultats de l'évaluation sont dans le répertoire results . Chaque modèle a un répertoire avec les résultats de l'évaluation dans chaque tâche. Dans ce cas, toutes les sorties des modèles sont enregistrées pour chaque tâche. Les scores peuvent être calculés à l'aide du champ correct . Pour Eustrivia et Eusexams, il existe des scripts supplémentaires pour obtenir des résultats détaillés par catégorie. Par exemple, pour obtenir des résultats détaillés pour GPT-3.5 Turbo sur Eustrivia, exécutez:
python calculate_accuracy_eus_trivia.pyNous continuons à mettre à jour et à améliorer notre modèle de base, cette section couvre les principales versions et modifications que nous avons apportées. Nous recommandons aux utilisateurs toujours d'utiliser la dernière version disponible.
Ce travail a été partiellement soutenu par le gouvernement basque (projet Iker-Gaitu). Il a également été en partie soutenu par le ministre para la Transformación Digital Y de la Función Pública - Financé par l'UE - NextGenationU dans le cadre du projet en référence 2022 / TL22 / 00215335. Les modèles ont été formés sur le supercalculateur Leonardo de Cineca dans le cadre de l'entreprise conjointe EuroHPC, Project EHPC-EXT-2023E01-013.
Pour citer notre travail, veuillez utiliser:
@misc { etxaniz2024latxa ,
title = { Latxa: An Open Language Model and Evaluation Suite for Basque } ,
author = { Julen Etxaniz and Oscar Sainz and Naiara Perez and Itziar Aldabe and German Rigau and Eneko Agirre and Aitor Ormazabal and Mikel Artetxe and Aitor Soroa } ,
year = { 2024 } ,
eprint = { 2403.20266 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}