パスワードを忘れた? アカウント作成
15696147 journal
人工知能

yasuokaの日記: 青空文庫DeBERTaモデルdeberta-large-japanese-unidicリリース

日記 by yasuoka

一昨日の日記の手法を拡張して、トークナイザをBertJapaneseTokenizerに置き換えた日本語DeBERTa(V2)モデルdeberta-large-japanese-unidicも作ってみた。24層・隠れサイズ1024・16ヘッド・トークン幅512とした上で、7772556文3億字(青空文庫元データ2.37億字+異体字増量分0.64億字)をNVIDIA A100-SXM4-40GBで1457355ステップ(32バッチ)学習させたところ、50時間53分かかってしまった。JGLUEが、transformers 4.19.2をサポートしてくれたので、Google Colaboratoty (GPU)上でJCommonSenceQAに挑戦してみよう。

!test -d transformers-4.19.2 || git clone -b v4.19.2 --depth=1 https://github.com/huggingface/transformers transformers-4.19.2
!test -d JGLUE || ( git clone --depth=1 https://github.com/yahoojapan/JGLUE && cat JGLUE/fine-tuning/patch/transformers-4.9.2_jglue-1.0.0.patch | ( cd transformers-4.19.2 && patch -p1 ) )
!cd transformers-4.19.2 && pip install .
!pip install -r transformers-4.19.2/examples/pytorch/text-classification/requirements.txt
!pip install fugashi unidic-lite protobuf==3.19.1 tensorboard
!python transformers-4.19.2/examples/pytorch/multiple-choice/run_swag.py --model_name_or_path KoichiYasuoka/deberta-large-japanese-unidic --do_train --do_eval --do_predict --max_seq_length 64 --per_device_train_batch_size 12 --learning_rate 5e-05 --num_train_epochs 4 --output_dir ./output_jcommonsenseqa --overwrite_output_dir --train_file JGLUE/datasets/jcommonsenseqa-v1.0/train-v1.0.json --validation_file JGLUE/datasets/jcommonsenseqa-v1.0/valid-v1.0.json --test_file JGLUE/datasets/jcommonsenseqa-v1.0/valid-v1.0.json --use_fast_tokenizer False --evaluation_strategy epoch --warmup_ratio 0.1

ファインチューニングに1時間ほどかかったものの、私(安岡孝一)の手元では以下の「eval metrics」が出力された。

***** eval metrics *****
  epoch                   =        4.0
  eval_accuracy           =     0.4718
  eval_loss               =     2.7386
  eval_runtime            = 0:00:33.67
  eval_samples            =       1119
  eval_samples_per_second =     33.232
  eval_steps_per_second   =      4.158

JCommonSenseQAが0.4718なので、一昨昨日の日記の結果を考え合わせても、青空文庫DeBERTaモデルはJCommonSenseQAに向いてない、ということだろう。他のタスクも試してみたいところだけど、このJGLUEパッチは、transformers本体のsquad.pyやsquad_metrics.pyを勝手にイジっちゃうので注意を要する。examples配下だけだったらいいのだけど、src配下までイジっちゃうのは、まあ何か都合があるのだろう。でも、しばらくはGoogle Colaboratoryで試すしかないかな。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...