
Мы представляем
LATXA, семейство крупных языковых моделей для баскских варьирующих от 7 до 70 миллиардов параметров. LATXA основана на LLAMA 2, которую мы продолжаем предварительно подготовиться к новому баскскому корпусу, включающему 4,3 млн. Документов и токены 4,2B. Управляя нехваткой высококачественных критериев для Баски, мы дополнительно вводим 4 набора данных по оценке с несколькими выборами: EUSPROFOLICHTIONGE, включающие 5169 вопросов с официальных экзаменов по значению языка; EUsreading, включающая 352 вопроса о понимании прочитанного; Eustrivia, включающая 1715 вопросов из 5 областей знаний; и Eusexams, включающие 16 046 вопросов из публичных экзаменов. В нашей обширной оценке LATXA превосходит все предыдущие открытые модели, с которыми мы сравниваем с большим отрывом. Кроме того, он конкурентоспособен с GPT-4 Turbo в знании языка и понимании, несмотря на отставание в задачах понимания и интенсивных знаний. Как семейство моделей LATXA, так и наши новые предварительные наборы корпораций и наборы оценки, публично доступны по открытым лицензиям. Наш набор позволяет воспроизводимым исследованиям методов построения LLM для языков с низким разрешением.
Используйте код ниже, чтобы начать работу с моделью.
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 Поскольку кластер Леонардо не имеет подключения к Интернету, необходимо использовать режим автономного режима. Изменить каталог конфигурации Wandb по умолчанию:
export WANDB_CONFIG_DIR= $HOME /.wandbВойдите в Wandb:
wandb loginИзменить Wandb на режим автономного режима:
wandb offline Журналы будут сохранены в каталоге $WORK/gpt-neox/wandb .
Чтобы синхронизировать журналы с Wandb, запустите:
wandb sync $WORK /gpt-neox/wandbЗагрузите модели RAW 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
Преобразуйте необработанные модели ламы в формат 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 для нуля 1.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). Он также был частично поддержан министром Пара Ла -Трансформиона Digital Y De La Función Pública - финансируемый Eu - NextGenerationEU в рамках проекта со ссылкой на 2022/TL22/00215335. Модели были обучены суперкомпьютеру Леонардо в CINECA под предприятием EUROHPC, проектом 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 }
}