
Nós apresentamos
Latxa, uma família de grandes modelos de idiomas para bascos variando de 7 a 70 bilhões de parâmetros. A Latxa é baseada no LLAMA 2, que continuamos precedentes em um novo corpus basco, compreendendo 4,3 milhões de documentos e 4,2 bilhões de tokens. Abordando a escassez de benchmarks de alta qualidade para o basco, introduzimos ainda 4 conjuntos de dados de avaliação de múltiplas opções: eusprofficiência, compreendendo 5.169 perguntas dos exames oficiais de proficiência em linguagem; EUSREADing, compreendendo 352 perguntas de compreensão de leitura; Eustrivia, compreendendo 1.715 perguntas de trivia de 5 áreas de conhecimento; e eusexams, compreendendo 16.046 perguntas de exames públicos. Em nossa extensa avaliação, a Latxa supera todos os modelos abertos anteriores aos quais comparamos por uma grande margem. Além disso, é competitivo com o GPT-4 Turbo na proficiência e compreensão do idioma, apesar de ficar atrasado na compreensão de leitura e tarefas intensivas em conhecimento. Tanto a família Latxa de modelos quanto nossos novos conjuntos de dados de corporação e avaliação de pré -treinamento estão disponíveis publicamente sob licenças abertas. Nossa suíte permite pesquisas reproduzíveis sobre métodos para construir LLMs para idiomas de baixo recurso.
Use o código abaixo para começar com o modelo.
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'
}
]Código para modelos de treinamento no cluster Cineca HPC Leonardo usando GPT-Neox. Se você treinar em outro cluster, precisará atualizar algumas configurações. Verifique a documentação GPT-Neox se tiver alguma dúvida.
O processo de treinamento é dividido em várias etapas: carregando os módulos necessários, criando um ambiente virtual, instalando GPT-Neox, baixando os modelos de llama, convertendo os pontos de verificação, baixando os dados, pré-processando os dados, definindo as configurações de treinamento, estabelecendo Wandb, executando o treinamento e conversando os pontos de seleção de NEX para HF.
Instale os módulos necessários para o GPT-Neox. Você pode adicionar isso ao .bashrc para que os módulos sejam carregados automaticamente:
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-lfsCrie um ambiente virtual:
python -m venv $WORK /environments/neox-env Ative o ambiente virtual. Você pode adicionar isso ao .bashrc para que o ambiente virtual seja ativado automaticamente:
source $WORK /environments/neox-env/bin/activateClone o repositório e instale os requisitos:
git clone https://github.com/EleutherAI/gpt-neox
cd gpt-neoxInstale os requisitos:
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 Como o cluster de Leonardo não possui conexão com a Internet, o modo offline deve ser usado. Alterar o diretório de configuração do WandB padrão:
export WANDB_CONFIG_DIR= $HOME /.wandbFaça login no wandb:
wandb loginAltere o Wandb para o modo offline:
wandb offline Os logs serão salvos no diretório $WORK/gpt-neox/wandb .
Para sincronizar logs com Wandb, execute:
wandb sync $WORK /gpt-neox/wandbFaça o download dos modelos Raw Llama dos seguintes links:
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
Converta os modelos brutos de llama em formato neox usando scripts no diretório 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.shFaça o download dos dados de pré -treinamento dos seguintes links:
EUSCRAWL: https://huggingface.co/datasets/hitz/euscrawl
Pilha: https://huggingface.co/datasets/eleutherai/pile
Latxa v1.1: https://huggingface.co/datasets/hitz/latxa-corpus-v1.1
Dados de pré -processo usando scripts disponíveis no diretório preprocess :
Para pré -processar o conjunto de dados da pilha, execute bash preprocess_data_pile.sh .
Para pré-processar o conjunto de dados Latxa V1, execute bash preprocess_data_latxa-v1.sh .
Para pré-processar o conjunto de dados Latxa v1.1, execute bash preprocess_data_latxa-v1.1.sh .
Defina as configurações de treinamento no diretório configs . Você pode usar as configurações existentes como modelo. Existem duas configurações básicas que são comuns a todos os modelos e incluem detalhes como o check -ingping e o log. O primeiro é usado para modelos 7b e 13b e o outro para modelos 70b. As configurações adicionais são divididas em 4 pastas, dependendo do tipo de parâmetros: dados, velocidade profunda, hiperparâmetros e modelos.
data : contém os arquivos de configuração de dados para Latxa V1 e V1.1.deepspeed : contém o arquivo de configuração do DeepSpeed para zero 1.hyperparameters : contém os arquivos de configuração HyperParameters para Latxa V1 e V1.1 de três tamanhos.models : contém os arquivos de configuração do modelo para três tamanhos. Execute o treinamento usando scripts disponíveis no diretório train . Existem scripts para modelos Latxa V1 e V1.1 de três tamanhos. Por exemplo, para treinar Latxa 7b v1.1, Run:
cd train/latxa-7b
bash llama-2-7b-v1.1.sh Os pontos de verificação neox podem ser convertidos em HF usando o script convert_neox_to_hf.py . O script segue um caminho de entrada, o caminho de saída, a configuração do modelo, a precisão e a arquitetura como argumentos. Você pode encontrar scripts de exemplo no diretório convert . Por exemplo, para converter o modelo Latxa 7b v1.1, execute:
cd convert
bash convert_neox_to_hf_7b_v1.1.sh Os scripts de avaliação para modelos abertos estão no diretório scripts . O diretório openai contém scripts para avaliar os modelos OpenAI. Os resultados da avaliação estão no diretório results .
Você precisará instalar o chicote de avaliação LM. Clone o repositório e instale os requisitos:
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e . Para executar a avaliação em modelos abertos, use os scripts no diretório scripts . Cada script avalia um modelo em todas as tarefas. Por exemplo, para executar a avaliação no Latxa v1.1 7b, execute:
sbatch lm_eval_latxa-7b-v1.1.slurm Os resultados da avaliação estão no diretório results . Cada modelo possui um diretório com os resultados da avaliação em cada tarefa. Os resultados estão na forma de um arquivo JSON com as pontuações médias do modelo em cada tarefa.
Para executar a avaliação nos modelos OpenAI, use os scripts no diretório openai . Existe um script python para avaliar cada conjunto de dados e um script bash para cada modelo e conjunto de dados. Por exemplo, para executar a avaliação no GPT-3.5 Turbo na Euustrivia, Run:
bash gpt-3.5-turbo-0125_eus_trivia.sh Os resultados da avaliação estão no diretório results . Cada modelo possui um diretório com os resultados da avaliação em cada tarefa. Nesse caso, todas as saídas dos modelos são salvas para cada tarefa. As pontuações podem ser calculadas usando o campo correct . Para Euustrivia e Eusexams, existem scripts adicionais para obter resultados detalhados obtidos por categoria. Por exemplo, para obter resultados detalhados para o GPT-3.5 Turbo na Euustrivia, Run:
python calculate_accuracy_eus_trivia.pyContinuamos atualizando e melhorando nosso modelo básico, esta seção abrange os principais lançamentos e mudanças que fizemos. Recomendamos que os usuários sempre usem a versão mais recente disponível.
Este trabalho foi parcialmente apoiado pelo governo basco (projeto Iker-Gaitu). Também foi parcialmente apoiado pelo Ministerio para la Transformación Digital Y de la Función pública - financiado pela UE - NextGenerationEu no quadro do projeto com a referência 2022/TL22/00215335. Os modelos foram treinados no supercomputador de Leonardo na Cineca sob o empreendimento conjunto Eurohpc, projeto EHPC-EXT-2023E01-013.
Para citar nosso trabalho, use:
@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 }
}