見出し画像

RedPajama-INCITE-BaseにAlpacaJaのLoRAファインチューニングでハイパラ探索する

AI研究とは農業だ!
エリート様がやらないなら自分でやるしかねえ!
ABCI、俺に力を貸してくれ!

というわけで、ABCIを使ってRedPajama-INCITE-Base3DにAlpaca-Cleaned-Japaneseをファインチューニングしながら、LoRAのハイパラ探索をしてみます。

そもそもLoRAのハイパラとは、lora_rとlora_alphaが代表的である。

 `r`, the dimension of the low-rank matrices
 `lora_alpha`, the scaling factor for the low-rank matrices

ドロップアウトもあるのだが、これは0.05とかなのであんまり探索しても仕方ない(やってもいいけど2次元が3次元になるので探索の手間が爆増する)。

とりあえずrとalphaをいくつか変えてやってみた。
デフォルトはr=8でalpha=16なのだが、PEFTのサンプルではalphaが27だったり32だったりするからそのあたりを試してみたい

ついでに、布留川大先生(npaka)の予想によると、「GPT-3はプログラムを学習した後に自然言語を学習してるから論理的整合性が取れているのではないか」ということなので、StarCoderをベースにAlpaca-Cleaned-Japaneseでファインチューニングするというのも試してみたがダメだった。StarCoderはMegatronLMだから上手く行かないっぽい。難しいね

しかしこういう時ABCIは本当に便利だよなあ
qsubに渡したスクリプトはこんな感じ

#!/bin/bash
#$-l rt_G.small=1
#$-j y
#$ -l h_rt=10:00:00
#$-cwd
export TRANSFORMERS_CACHE=/scratch/<ユーザーID>
source /etc/profile.d/modules.sh
cd /scratch/<ユーザーID>/git/lora-instruct
module load python/3.10/3.10.10
module load cuda/11.7/11.7.1
module load cudnn/8.4/8.4.1
python3 finetune.py \
 --base_model 'togethercomputer/RedPajama-INCITE-Base-3B-v1' \
 --output_dir './scacj-3b-e3-r8a32' --data_path shi3z/alpaca_cleaned_ja_json --num_epochs 6 \
 --lora_r 16 --lola_alpha 16

さーてどうなるか。
結果が出たら追記します