
نقدم
LATXA ، عائلة من نماذج اللغة الكبيرة للباسك تتراوح من 7 إلى 70 مليار معلمة. يعتمد LATXA على LLAMA 2 ، والذي نواصل تدريبه على مجموعة جديدة من الباسك تضم 4.3 مليون مستندات ورموز 4.2B. معالجة ندرة المعايير عالية الجودة للباسك ، نقدم كذلك 4 مجموعات بيانات تقييم متعددة الخيارات: EUSProficivity ، والتي تضم 5،169 سؤال من اختبارات الكفاءة اللغوية الرسمية ؛ EUSREADER ، تضم 352 أسئلة فهم القراءة ؛ Eustrivia ، التي تضم 1715 سؤال من التوافه من 5 مجالات معرفة ؛ و eusexams ، التي تضم 16،046 سؤال من الامتحانات العامة. في تقييمنا الشامل ، يتفوق LATXA على جميع النماذج المفتوحة السابقة التي نقارنها بهامش كبير. بالإضافة إلى ذلك ، فهي تنافسية مع GPT-4 Turbo في إتقان اللغة وفهمها ، على الرغم من التأخير في فهم القراءة والمهام المكثفة للمعرفة. كل من عائلة Latxa من النماذج ، بالإضافة إلى مجموعات بيانات التقييم الجديدة ومجموعات بيانات التقييم ، متاحة للجمهور بموجب التراخيص المفتوحة. يتيح جناحنا البحث القابل للتكرار على طرق بناء LLMs للغات منخفضة الموارد.
استخدم الكود أدناه للبدء مع النموذج.
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'
}
]رمز لنماذج التدريب على مجموعة Cineca HPC Leonardo باستخدام GPT-NEOX. إذا كنت تتدرب على مجموعة أخرى ، فستحتاج إلى تحديث بعض الإعدادات. تحقق من وثائق GPT-NEOX إذا كان لديك أي شكوك.
تنقسم عملية التدريب إلى عدة خطوات: تحميل الوحدات النمطية المطلوبة ، وإنشاء بيئة افتراضية ، وتثبيت GPT-NEOX ، وتنزيل نماذج LLAMA ، وتحويل نقاط التفتيش ، وتنزيل البيانات ، وعلاج البيانات المسبقة ، وتحديد تكوينات التدريب ، وتشغيل WANDB ، وتشغيل تدريبات NEOX إلى HF.
تثبيت الوحدات النمطية اللازمة لـ GPT-NEOX. يمكنك إضافة هذا إلى .bashrc بحيث يتم تحميل الوحدات النمطية تلقائيًا:
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-lfsإنشاء بيئة افتراضية:
python -m venv $WORK /environments/neox-env تنشيط البيئة الافتراضية. يمكنك إضافة هذا إلى .bashrc بحيث يتم تنشيط البيئة الافتراضية تلقائيًا:
source $WORK /environments/neox-env/bin/activateاستنساخ المستودع وتثبيت المتطلبات:
git clone https://github.com/EleutherAI/gpt-neox
cd gpt-neoxتثبيت المتطلبات:
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 نظرًا لأن مجموعة Leonardo لا تحتوي على اتصال بالإنترنت ، يجب استخدام الوضع غير المتصل. تغيير دليل تكوين Wandb الافتراضي:
export WANDB_CONFIG_DIR= $HOME /.wandbتسجيل الدخول إلى Wandb:
wandb loginتغيير WANDB إلى وضع عدم الاتصال:
wandb offline سيتم حفظ السجلات إلى دليل $WORK/gpt-neox/wandb .
لمزامنة السجلات مع Wandb ، قم بتشغيل:
wandb sync $WORK /gpt-neox/wandbقم بتنزيل طرز Law Llama من الروابط التالية:
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
قم بتحويل نماذج LLAMA RAW إلى تنسيق Neox باستخدام البرامج النصية في دليل 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.shقم بتنزيل بيانات ما قبل الرابطات التالية:
euscrawl: https://huggingface.co/Datasets/hitz/euscrawl
كومة: https://huggingface.co/Datasets/eleutherai/pile
latxa v1.1: https://huggingface.co/Datasets/hitz/latxa-corpus-v1.1
البيانات المسبقة باستخدام البرامج النصية المتوفرة في دليل preprocess :
للمعالجة المسبقة لمجموعة بيانات الوبر ، قم بتشغيل bash preprocess_data_pile.sh .
للمعالجة المسبقة لمجموعة بيانات LATXA V1 ، قم بتشغيل bash preprocess_data_latxa-v1.sh .
للمعالجة المسبقة لمجموعة بيانات LATXA V1.1 ، قم بتشغيل bash preprocess_data_latxa-v1.1.sh .
تحديد تكوينات التدريب في دليل configs . يمكنك استخدام التكوينات الموجودة كقالب. هناك تكوينان أساسيان شائعان في جميع النماذج ، وتتضمن تفاصيل مثل تحديد التقيد والتسجيل. يتم استخدام أول واحد لنماذج 7B و 13B ، والآخر لنماذج 70B. تنقسم التكوينات الإضافية إلى 4 مجلدات ، اعتمادًا على نوع المعلمات: البيانات ، السرعة العميقة ، المقاييس الفائقة والنماذج.
data : يحتوي على ملفات تكوين البيانات لـ LATXA V1 و V1.1.deepspeed : يحتوي على ملف تكوين DeepSpeed لـ Zero 1.hyperparameters : يحتوي على ملفات تكوين HyperParameters لـ LATXA V1 و V1.1 من ثلاثة أحجام.models : تحتوي على ملفات تكوين النموذج لثلاثة أحجام. تشغيل التدريب باستخدام البرامج النصية المتاحة في دليل train . هناك نصوص لنماذج LATXA V1 و V1.1 من ثلاثة أحجام. على سبيل المثال ، لتدريب LATXA 7B V1.1 ، تشغيل:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh يمكن تحويل نقاط التفتيش Neox إلى HF باستخدام البرنامج النصي convert_neox_to_hf.py . يأخذ البرنامج النصي مسار الإدخال ، ومسار الإخراج ، وتكوين النموذج ، والدقة ، والهندسة المعمارية كوسائط. يمكنك العثور على نصوص مثال في دليل convert . على سبيل المثال ، لتحويل طراز LATXA 7B V1.1 ، تشغيل:
cd convert
bash convert_neox_to_hf_7b_v1.1.sh نصوص التقييم للنماذج المفتوحة موجودة في دليل scripts . يحتوي دليل openai على البرامج النصية لتقييم نماذج Openai. نتائج التقييم في دليل results .
ستحتاج إلى تثبيت تسخير تقييم LM. استنساخ المستودع وتثبيت المتطلبات:
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e . لتشغيل التقييم على النماذج المفتوحة ، استخدم البرامج النصية في دليل scripts . يقوم كل نص بتقييم نموذج في جميع المهام. على سبيل المثال ، لتشغيل التقييم على latxa v1.1 7b ، تشغيل:
sbatch lm_eval_latxa-7b-v1.1.slurm نتائج التقييم في دليل results . كل نموذج له دليل مع نتائج التقييم في كل مهمة. النتائج في شكل ملف JSON مع متوسط الدرجات للنموذج في كل مهمة.
لتشغيل التقييم على نماذج Openai ، استخدم البرامج النصية في دليل openai . يوجد برنامج نصي Python لتقييم كل مجموعة بيانات ، ونصي Bash لكل نموذج ومجموعة بيانات. على سبيل المثال ، لتشغيل التقييم على GPT-3.5 Turbo على Eustrivia ، قم بتشغيل:
bash gpt-3.5-turbo-0125_eus_trivia.sh نتائج التقييم في دليل results . كل نموذج له دليل مع نتائج التقييم في كل مهمة. في هذه الحالة ، يتم حفظ جميع مخرجات النماذج لكل مهمة. يمكن حساب الدرجات باستخدام الحقل correct . بالنسبة إلى Eustrivia و Eusexams ، هناك نصوص إضافية للحصول على نتائج مفصلة حسب الفئة. على سبيل المثال ، للحصول على نتائج مفصلة لـ GPT-3.5 Turbo على Eustrivia ، قم بتشغيل:
python calculate_accuracy_eus_trivia.pyنستمر في تحديث نموذجنا الأساسي وتحسينه ، ويغطي هذا القسم الإصدارات والتغييرات الرئيسية التي أجريناها. نوصي المستخدمين دائمًا باستخدام أحدث إصدار متاح.
تم دعم هذا العمل جزئيًا من قبل حكومة الباسك (مشروع Iker-Gaitu). كما تم دعمه جزئيًا من قبل الوزير Para la Transformación Digital y de la función pública - بتمويل من الاتحاد الأوروبي - NextGenerationeu في إطار المشروع مع المرجع 2022/TL22/00215335. تم تدريب النماذج على الحاسبات الخارقة ليوناردو في Cineca تحت تعهد EuroHPC المفصل ، Project EHPC-EXT-2023E01-013.
للاستشهاد بعملنا ، يرجى استخدام:
@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 }
}