
Kami memperkenalkan
Latxa, keluarga model bahasa besar untuk Basque mulai dari 7 hingga 70 miliar parameter. Latxa didasarkan pada Llama 2, yang kami terus pretraining pada corpus Basque baru yang terdiri dari dokumen 4.3M dan token 4.2B. Mengatasi kelangkaan tolok ukur berkualitas tinggi untuk Basque, kami selanjutnya memperkenalkan 4 set data evaluasi pilihan ganda: eusproficiency, terdiri dari 5.169 pertanyaan dari ujian kemahiran bahasa resmi; Eusreading, terdiri dari 352 pertanyaan pemahaman membaca; Eustrivia, terdiri dari 1.715 pertanyaan trivia dari 5 bidang pengetahuan; dan eusexams, terdiri dari 16.046 pertanyaan dari ujian publik. Dalam evaluasi kami yang luas, LATXA mengungguli semua model terbuka sebelumnya yang kami bandingkan dengan margin besar. Selain itu, ini kompetitif dengan GPT-4 Turbo dalam kemahiran dan pemahaman bahasa, meskipun tertinggal dalam tugas membaca dan tugas-tugas intensif pengetahuan. Baik keluarga model Latxa, maupun korpora pretraining dan dataset evaluasi baru kami, tersedia untuk umum di bawah lisensi terbuka. Suite kami memungkinkan penelitian yang dapat direproduksi tentang metode untuk membangun LLMS untuk bahasa sumber daya rendah.
Gunakan kode di bawah ini untuk memulai dengan model.
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'
}
]Kode untuk model pelatihan di cineca hpc leonardo cluster menggunakan GPT-NEOX. Jika Anda berlatih di cluster lain, Anda perlu memperbarui beberapa pengaturan. Periksa dokumentasi GPT-NEOX jika Anda memiliki keraguan.
Proses pelatihan dibagi menjadi beberapa langkah: Memuat modul yang diperlukan, menciptakan lingkungan virtual, menginstal GPT-NEOX, mengunduh model LLAMA, mengonversi pos pemeriksaan, mengunduh data, melakukan preprocessing data, mendefinisikan konfigurasi pelatihan, menyiapkan WandB, menjalankan pelatihan, dan mengonversi neox checkpoint ke HF.
Instal modul yang dibutuhkan untuk GPT-NEOX. Anda dapat menambahkan ini ke .bashrc sehingga modul dimuat secara otomatis:
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-lfsBuat lingkungan virtual:
python -m venv $WORK /environments/neox-env Aktifkan lingkungan virtual. Anda dapat menambahkan ini ke .bashrc sehingga lingkungan virtual diaktifkan secara otomatis:
source $WORK /environments/neox-env/bin/activateKlon Repositori dan instal persyaratan:
git clone https://github.com/EleutherAI/gpt-neox
cd gpt-neoxPasang persyaratan:
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 Karena cluster Leonardo tidak memiliki koneksi internet, mode offline harus digunakan. Ubah direktori konfigurasi wandb default:
export WANDB_CONFIG_DIR= $HOME /.wandbMasuk ke Wandb:
wandb loginUbah Wandb ke Mode Offline:
wandb offline Log akan disimpan ke direktori $WORK/gpt-neox/wandb .
Untuk menyinkronkan log ke Wandb, jalankan:
wandb sync $WORK /gpt-neox/wandbUnduh model RAW LLAMA dari tautan berikut:
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/llama-2-70b
Konversi model llama mentah ke format neox menggunakan skrip di direktori 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.shUnduh data pretraining dari tautan berikut:
Euscrawl: https://huggingface.co/datasets/hitz/euscrawl
Tumpukan: https://huggingface.co/datasets/eleutherai/pile
Latxa v1.1: https://huggingface.co/datasets/hitz/latxa-corpus-v1.1
Data preprocess menggunakan skrip yang tersedia di direktori preprocess :
Untuk preprocess dataset tiang, jalankan bash preprocess_data_pile.sh .
Untuk preprocess dataset LATXA V1, jalankan bash preprocess_data_latxa-v1.sh .
Untuk preprocess dataset LATXA V1.1, jalankan bash preprocess_data_latxa-v1.1.sh .
Tentukan konfigurasi pelatihan di direktori configs . Anda dapat menggunakan konfigurasi yang ada sebagai templat. Ada dua konfigurasi dasar yang umum untuk semua model, dan termasuk detail seperti pos pemeriksaan dan penebangan. Yang pertama digunakan untuk model 7B dan 13B, dan yang lainnya untuk model 70B. Konfigurasi tambahan dibagi menjadi 4 folder, tergantung pada jenis parameter: data, kecepatan, hiperparameter dan model.
data : Berisi file konfigurasi data untuk LATXA V1 dan V1.1.deepspeed : Berisi file konfigurasi DeepSpeed untuk nol 1.hyperparameters : Berisi file konfigurasi hyperparameters untuk LATXA V1 dan V1.1 dari tiga ukuran.models : Berisi file konfigurasi model untuk tiga ukuran. Jalankan pelatihan menggunakan skrip yang tersedia di direktori train . Ada skrip untuk model LATXA V1 dan V1.1 dari tiga ukuran. Misalnya, untuk melatih Latxa 7b v1.1, jalankan:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh Pos Pemeriksaan Neox dapat dikonversi ke HF menggunakan skrip convert_neox_to_hf.py . Skrip mengambil jalur input, jalur output, konfigurasi model, presisi dan arsitektur sebagai argumen. Anda dapat menemukan contoh skrip di direktori convert . Misalnya, untuk mengonversi model LATXA 7B v1.1, jalankan:
cd convert
bash convert_neox_to_hf_7b_v1.1.sh Skrip evaluasi untuk model terbuka ada di direktori scripts . Direktori openai berisi skrip untuk mengevaluasi model OpenAI. Hasil evaluasi ada di direktori results .
Anda perlu menginstal harness evaluasi LM. Klon Repositori dan instal persyaratan:
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e . Untuk menjalankan evaluasi pada model terbuka, gunakan skrip di direktori scripts . Setiap skrip mengevaluasi model dalam semua tugas. Misalnya, untuk menjalankan evaluasi pada Latxa v1.1 7b, jalankan:
sbatch lm_eval_latxa-7b-v1.1.slurm Hasil evaluasi ada di direktori results . Setiap model memiliki direktori dengan hasil evaluasi di setiap tugas. Hasilnya adalah dalam bentuk file JSON dengan skor rata -rata model di setiap tugas.
Untuk menjalankan evaluasi pada model OpenAI, gunakan skrip di direktori openai . Ada skrip Python untuk mengevaluasi setiap dataset, dan skrip bash untuk setiap model dan dataset. Misalnya, untuk menjalankan evaluasi pada GPT-3.5 Turbo di Eamtivia, jalankan:
bash gpt-3.5-turbo-0125_eus_trivia.sh Hasil evaluasi ada di direktori results . Setiap model memiliki direktori dengan hasil evaluasi di setiap tugas. Dalam hal ini, semua output model disimpan untuk setiap tugas. Skor dapat dihitung menggunakan bidang correct . Untuk Eustrivia dan Eusexams, ada skrip tambahan untuk mendapatkan hasil terperoleh berdasarkan kategori. Misalnya, untuk mendapatkan hasil yang terperinci untuk GPT-3.5 Turbo di Eustrivia, jalankan:
python calculate_accuracy_eus_trivia.pyKami terus memperbarui dan meningkatkan model dasar kami, bagian ini mencakup rilis utama dan perubahan yang kami buat. Kami menyarankan pengguna selalu menggunakan versi terbaru yang tersedia.
Pekerjaan ini sebagian didukung oleh pemerintah Basque (proyek Iker-Gaitu). Ini juga sebagian didukung oleh Ministerio para la Transformación Digital Y de la Foción Pública - didanai oleh UE - NextGenerationeu dalam kerangka proyek dengan referensi 2022/tl22/00215335. Model-model dilatih pada superkomputer Leonardo di Cineca di bawah usaha bersama EurOHPC, Project EHPC-EXT-2023E01-013.
Untuk mengutip pekerjaan kami, silakan gunakan:
@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 }
}