
紹介します
700億から700億のパラメーターの範囲のバスクの大規模な言語モデルのファミリーであるLatxa。 LatxaはLlama 2に基づいており、4.3mのドキュメントと4.2bトークンを含む新しいバスクのコーパスを事前に前取りし続けています。バスクの高品質のベンチマークの希少性に対処するために、さらに4つの多肢選択評価データセットを紹介します。 352の読解質問で構成されるeusreading。 Eustrivia、5つの知識分野からの1,715のトリビアの質問で構成されています。 Eusexams、公共試験からの16,046の質問で構成されています。私たちの広範な評価では、Latxaは、大きなマージンで比較される以前のすべてのオープンモデルよりも優れています。さらに、読解力と知識集約的なタスクに遅れをとっているにもかかわらず、言語の習熟度と理解においてGPT-4ターボと競争します。モデルの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'
}
]GPT-Neoxを使用したCineca HPC Leonardoクラスターのトレーニングモデルのコード。別のクラスターでトレーニングする場合は、いくつかの設定を更新する必要があります。疑問がある場合は、GPT-Neoxドキュメントを確認してください。
トレーニングプロセスは、必要なモジュールの読み込み、仮想環境の作成、GPT-Neoxのインストール、LLAMAモデルのダウンロード、チェックポイントの変換、データのダウンロード、データの前処理、トレーニング構成の定義、トレーニングの実行、トレーニングの実行、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 configディレクトリを変更します。
export WANDB_CONFIG_DIR= $HOME /.wandbWandBにログインします:
wandb loginWANDBをオフラインモードに変更します。
wandb offlineログは$WORK/gpt-neox/wandbディレクトリに保存されます。
wandbにログを同期するには、実行してください。
wandb sync $WORK /gpt-neox/wandb次のリンクから生の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 Directoryのスクリプトを使用して、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ディレクトリで利用可能なスクリプトを使用したプリプロースデータ:
Pile Datasetを事前に処理するには、 bash preprocess_data_pile.shを実行します。
latxa v1データセットを事前に処理するには、 bash preprocess_data_latxa-v1.shを実行します。
latxa v1.1データセットを事前に処理するには、 bash preprocess_data_latxa-v1.1.shを実行します。
configsディレクトリにトレーニング構成を定義します。既存の構成をテンプレートとして使用できます。すべてのモデルに共通する2つのベース構成があり、チェックポイントやロギングなどの詳細が含まれています。最初のものは7Bおよび13Bモデルに使用され、もう1つは70Bモデルに使用されます。追加の構成は、データ、ディープスピード、ハイパーパラメーター、モデルのパラメーターのタイプに応じて、4つのフォルダーに分割されます。
data :Latxa V1およびV1.1のデータ構成ファイルが含まれています。deepspeed :ゼロ1のDeepSpeed構成ファイルが含まれています。hyperparameters :3つのサイズのLatxa V1およびV1.1のハイパーパラメーター構成ファイルが含まれています。models :3つのサイズのモデル構成ファイルが含まれています。 trainディレクトリで利用可能なスクリプトを使用してトレーニングを実行します。 3つのサイズのLatxa V1およびV1.1モデルのスクリプトがあります。たとえば、latxa 7b v1.1をトレーニングするには、実行してください。
cd train/latxa-7b
bash llama-2-7b-v1.1.shNeoxチェックポイントは、 convert_neox_to_hf.pyスクリプトを使用してHFに変換できます。スクリプトは、入力パス、出力パス、モデル構成、精度、アーキテクチャを引数として取ります。 convert Directoryにサンプルスクリプトを見つけることができます。たとえば、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ターボで評価を実行するには、実行してください。
bash gpt-3.5-turbo-0125_eus_trivia.sh評価結果はresultsディレクトリにあります。各モデルには、各タスクの評価の結果を含むディレクトリがあります。この場合、モデルのすべての出力は各タスクに対して保存されます。スコアは、 correctフィールドを使用して計算できます。 EustriviaとEusexamsの場合、カテゴリごとに詳細な結果を得るための追加のスクリプトがあります。たとえば、EustriviaでGPT-3.5ターボの詳細な結果を得るには、実行してください。
python calculate_accuracy_eus_trivia.pyこのセクションでは、ベースモデルを更新および改善し続けています。ユーザーは、利用可能な最新バージョンを常に使用することをお勧めします。
この作業は、バスク政府(Iker-Gaituプロジェクト)によって部分的にサポートされています。また、EUによって資金提供されたMinterio Para Para LaTransforcióndidicaly de lafunciónpúblicaによって部分的にサポートされています。モデルは、EuroHPC共同事業、Project EHPC-Ext-2023E01-013の下でCinecaのレオナルドスーパーコンピューターで訓練されました。
私たちの作品を引用するには、使用してください。
@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 }
}