
我们介绍
Latxa,一个大型语言模型的家庭,用于7至700亿个参数。 LATXA基于Llama 2,我们继续在包含430万个文档和4.2B代币的新的巴斯克语料库上进行预处理。解决巴斯克地区高质量基准的稀缺性,我们进一步介绍了4个多项选择评估数据集:Eusposity,包括官方语言能力考试中的5,169个问题; Eusreading,包括352个阅读理解问题; Eustrivia,包括5个知识领域的1,715个琐事问题;和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'
}
]使用GPT-Neox的Cineca HPC Leonardo集群上的培训模型代码。如果您在另一个集群上训练,则需要更新一些设置。如果您有任何疑问,请检查GPT-Neox文档。
训练过程分为几个步骤:加载所需的模块,创建虚拟环境,安装GPT-Neox,下载Llama型号,转换检查点,下载数据,预处理数据,定义培训配置,设置WANDB,运行培训,运行培训并将Neox Checkpoints转换为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群集没有Internet连接,因此必须使用离线模式。更改默认的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
使用convert目录中的脚本将RAW LLAMA模型转换为Neox格式。
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 :包含零1的深速配置文件。hyperparameters :包含三种尺寸的LATXA V1和V1.1的HyperParameters配置文件。models :包含三个尺寸的模型配置文件。 使用train目录中可用的脚本运行培训。有三种尺寸的LATXA V1和V1.1型号的脚本。例如,要训练latxa 7b v1.1,运行:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh可以使用convert_neox_to_hf.py脚本将Neox检查点转换为HF。脚本以参数为输入路径,输出路径,模型配置,精度和体系结构。您可以在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脚本。例如,要在Eustrivia上进行GPT-3.5 Turbo进行评估,请运行:
bash gpt-3.5-turbo-0125_eus_trivia.sh评估结果在results目录中。每个模型都有一个在每个任务中评估结果的目录。在这种情况下,为每个任务保存模型的所有输出。可以使用correct字段计算得分。对于Eustrivia和Eusexams,还有其他脚本可以按类别获得详细的结果。例如,要在Eustrivia上获得GPT-3.5 Turbo的详细结果,请运行:
python calculate_accuracy_eus_trivia.py我们不断更新和改进基本模型,本节涵盖了我们所做的主要版本和更改。我们建议用户始终使用可用的最新版本。
这项工作得到了巴斯克政府(Iker-Gaitu项目)的部分支持。它也得到了部长的支持,由欧盟 - 欧盟 - NextGenerationu资助的部长para latransformación数字y de lafunciónpública在该项目的框架内使用参考2022/tl22/00215335。这些模型在Cineca的Leonardo Supercuter培训下,根据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 }
}