
Wir stellen vor
Latxa, eine Familie von großsprachigen Modellen für Basken im Bereich von 7 bis 70 Milliarden Parametern. Latxa basiert auf LLAMA 2, das wir weiterhin auf einem neuen Baskenkorpus mit 4,3 -m -Dokumenten und 4,2B -Token vorstellen. In Bezug auf die Knappheit hochwertiger Benchmarks für Basken führen wir weiter 4 Multiple-Choice-Bewertungsdatensätze ein: EUSPROFICIENCE, die 5.169 Fragen aus offiziellen Sprachkompetenzprüfungen umfassen; EUSREADING, mit 352 Fragen des Leseverständnisses; Estrivia mit 1.715 Trivia -Fragen aus 5 Wissensgebieten; und Eusexams mit 16.046 Fragen aus öffentlichen Prüfungen. In unserer umfangreichen Bewertung übertrifft Latxa alle früheren offenen Modelle, mit denen wir mit einem großen Spielraum verglichen werden. Darüber hinaus ist es mit GPT-4-Turbo in der Sprachkenntnis und -verständnis wettbewerbsfähig, obwohl es in Leseverständnis und wissensintensiven Aufgaben zurückbleibt. Sowohl die Latxa -Modelsfamilie als auch unsere neuen Datensätze für die Vorab -Korpora und unsere Evaluierungsdatensätze sind im Rahmen offener Lizenzen öffentlich verfügbar. Unsere Suite ermöglicht reproduzierbare Forschungen zu Methoden, um LLMs für Sprachen mit niedrigem Ressourcen zu erstellen.
Verwenden Sie den folgenden Code, um mit dem Modell zu beginnen.
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 für Trainingsmodelle im CINECA HPC Leonardo Cluster mit GPT-Neox. Wenn Sie auf einem anderen Cluster trainieren, müssen Sie einige Einstellungen aktualisieren. Überprüfen Sie die GPT-Neox-Dokumentation, wenn Sie Zweifel haben.
Der Schulungsprozess ist in mehrere Schritte unterteilt: Laden der erforderlichen Module, Erstellen einer virtuellen Umgebung, Installation von GPT-Neox, Herunterladen der Lama-Modelle, Konvertieren der Kontrollpunkte, Herunterladen der Daten, Vorbereitung der Daten, Definieren der Trainingskonfigurationen, Einrichten der Schulung und Konvertierung der Neox-Kontrollpunkte in HF.
Installieren Sie Module, die für GPT-Neox benötigt werden. Sie können dies zu .bashrc hinzufügen, damit die Module automatisch geladen werden:
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-lfsErstellen Sie eine virtuelle Umgebung:
python -m venv $WORK /environments/neox-env Aktivieren Sie die virtuelle Umgebung. Sie können dies zu .bashrc hinzufügen, damit die virtuelle Umgebung automatisch aktiviert wird:
source $WORK /environments/neox-env/bin/activateKlonen Sie das Repository und installieren Sie die Anforderungen:
git clone https://github.com/EleutherAI/gpt-neox
cd gpt-neoxInstallieren Sie die Anforderungen:
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 Da der Leonardo -Cluster keine Internetverbindung hat, muss der Offline -Modus verwendet werden. Ändern Sie das Standard -WANDB -Konfigurationsverzeichnis:
export WANDB_CONFIG_DIR= $HOME /.wandbMelden Sie sich bei Wandb an:
wandb loginWechseln Sie den Wandb in den Offline -Modus:
wandb offline Protokolle werden auf $WORK/gpt-neox/wandb Verzeichnis gespeichert.
Laufen Sie aus.
wandb sync $WORK /gpt-neox/wandbLaden Sie die RAW LLAMA -Modelle von den folgenden Links herunter:
LLAMA-2-7B: https://huggingface.co/meta-lama/llama-2-7b
LLAMA-2-13B: https://huggingface.co/meta-lama/llama-2-13b
LLAMA-2-70B: https://huggingface.co/met-llama/llama-2-70b
Konvertieren Sie die Rohlama -Modelle mithilfe von Skripten in convert in das Neox -Format.
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.shLaden Sie die Daten vor den folgenden Links herunter:
EUSCRAWN: https://huggingface.co/datasets/hitz/euscrawl
Stapel: https://huggingface.co/datasets/eleutherai/pile
Latxa v1.1: https://huggingface.co/datasets/hitz/latxa-corpus-v1.1
Vorverarbeitungsdaten mithilfe von Skripten, die im Verzeichnis preprocess -Verzeichnisses verfügbar sind:
Um den Stapeldatensatz vorzubereiten, führen Sie bash preprocess_data_pile.sh aus.
Um den Latxa V1-Datensatz vorzubereiten, führen Sie bash preprocess_data_latxa-v1.sh aus.
Um den Latxa v1.1-Datensatz vorzubereiten, führen Sie bash preprocess_data_latxa-v1.1.sh aus.
Definieren Sie Trainingskonfigurationen im Verzeichnis configs . Sie können die vorhandenen Konfigurationen als Vorlage verwenden. Es gibt zwei Basiskonfiguren, die allen Modellen gemeinsam sind und Details wie Checkpointing und Protokollierung enthalten. Der erste wird für 7B- und 13B -Modelle und die andere für 70B -Modelle verwendet. Zusätzliche Konfigurationen werden je nach Art der Parameter in 4 Ordner unterteilt: Daten, Deepspeed, Hyperparameter und Modelle.
data : Enthält die Datenkonfigurationsdateien für LATXA V1 und V1.1.deepspeed : Enthält die DeepSpeed -Konfigurationsdatei für Null 1.hyperparameters : Enthält die Hyperparameter -Konfigurationsdateien für Latxa V1 und V1.1 von drei Größen.models : Enthält die Modellkonfigurationsdateien für drei Größen. Führen Sie das Training mit Skripten aus, die im train verfügbar sind. Es gibt Skripte für Latxa V1- und V1.1 -Modelle von drei Größen. Zum Beispiel latxa 7b v1.1 trainieren, rennen Sie:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh Die Neox -Checkpoints können mit dem Skript convert_neox_to_hf.py in HF konvertiert werden. Das Skript nimmt einen Eingangspfad, den Ausgangsweg, die Modellkonfiguration, die Genauigkeit und die Architektur als Argumente. Sie können Beispielskripte im convert finden. Um das Latxa 7B V1.1 -Modell zu konvertieren, rennen Sie:
cd convert
bash convert_neox_to_hf_7b_v1.1.sh Bewertungsskripte für offene Modelle befinden sich im scripts . openai -Verzeichnis enthält Skripte zur Bewertung von OpenAI -Modellen. Die Bewertungsergebnisse sind im results .
Sie müssen den LM -Bewertungskabelbaum installieren. Klonen Sie das Repository und installieren Sie die Anforderungen:
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e . Verwenden Sie die Skripte im scripts , um die Bewertung auf offenen Modellen auszuführen. Jedes Skript bewertet ein Modell in allen Aufgaben. Um beispielsweise die Bewertung auf Latxa v1.1 7b auszuführen, rennen Sie:
sbatch lm_eval_latxa-7b-v1.1.slurm Die Bewertungsergebnisse sind im results . Jedes Modell hat ein Verzeichnis mit den Ergebnissen der Bewertung in jeder Aufgabe. Die Ergebnisse erfolgen in Form einer JSON -Datei mit den durchschnittlichen Bewertungen des Modells in jeder Aufgabe.
Verwenden Sie die Skripte im openai -Verzeichnis, um die Bewertung auf OpenAI -Modellen auszuführen. Es gibt ein Python -Skript, um jeden Datensatz zu bewerten, und ein Bash -Skript für jedes Modell und jeden Datensatz. Um beispielsweise die Bewertung auf GPT-3,5-Turbo auf Eustria auszuführen, rennen Sie:
bash gpt-3.5-turbo-0125_eus_trivia.sh Die Bewertungsergebnisse sind im results . Jedes Modell hat ein Verzeichnis mit den Ergebnissen der Bewertung in jeder Aufgabe. In diesem Fall werden alle Ausgänge der Modelle für jede Aufgabe gespeichert. Die Bewertungen können mit dem correct Feld berechnet werden. Für Estrivia und Eusexams gibt es zusätzliche Skripte für detaillierte Ergebnisse nach Kategorie. Um beispielsweise detaillierte Ergebnisse für GPT-3,5 Turbo auf Eustria zu erhalten, rennen Sie:
python calculate_accuracy_eus_trivia.pyWir aktualisieren und verbessern unser Basismodell. Dieser Abschnitt deckt die wichtigsten Veröffentlichungen und Änderungen ab, die wir vorgenommen haben. Wir empfehlen den Benutzern immer, die neueste verfügbare Version zu verwenden.
Diese Arbeit wurde teilweise von der baskischen Regierung (Iker-Gaitu-Projekt) unterstützt. Es wurde auch teilweise vom Ministerio Para la transformación digital y de la función pública unterstützt - finanziert von der EU - NextGenerationeu im Rahmen des Projekts mit Referenz 2022/TL22/00215335. Die Modelle wurden auf dem Leonardo-Supercomputer in Coneca im Rahmen des Joint-Unternehmens EuroHPC, Project EHPC-EXT-2023E01-013, ausgebildet.
Um unsere Arbeit zu zitieren, verwenden Sie bitte:
@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 }
}