スーパーコンピュータ「富岳」のファーストタッチオプションが当たったので、まずは富岳でtransformersを動かしてみることにした。現時点の富岳にはPyTorch-1.7.0がインストールされているので、その上にtransformersを乗せてみよう。
#! /bin/bash
#PJM -L rscgrp=small
#PJM -L elapse=1:00:00
#PJM -L node=1
#PJM -j
#PJM -S
G=`id | sed 's/^.*gid=[0-9]*(\([^)]*\)).*$/\1/'`
set `ls -d /vol*/$G /vol*/data/$G` $HOME
export PYTHONUSERBASE=$1/pytorch1.7.0
export PATH=/home/apps/oss/PyTorch-1.7.0/bin:$PYTHONUSERBASE/bin:$PATH
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/apps/oss/PyTorch-1.7.0/lib64
export HF_HOME=$PYTHONUSERBASE
export TMPDIR=$PYTHONUSERBASE/tmp
mkdir -p $TMPDIR
pip3.8 install transformers==4.28.1 tokenizers==0.13.3 protobuf==3.20.3 --user
pip3.8 install -U tqdm packaging typing_extensions --user
P=$TMPDIR/fillmask.$PJM_JOBID.$$.py
cat << 'EOF' > $P
from transformers import pipeline
fmp=pipeline("fill-mask","KoichiYasuoka/deberta-large-japanese-aozora")
print(fmp("夜の底が[MASK]なった。"))
EOF
python3.8 $P
富岳のログインノードからpjsub
してみたところ、ジョブ待ち・インストール・ダウンロード等も含め、20分ほどで以下の結果が得られた。
[{'score': 0.10754217207431793, 'token': 2113, 'token_str': '白く', 'sequence': '夜の底が白くなった。'}, {'score': 0.041452500969171524, 'token': 298, 'token_str': '重', 'sequence': '夜の底が重なった。'}, {'score': 0.038921937346458435, 'token': 3504, 'token_str': '黒く', 'sequence': '夜の底が黒くなった。'}, {'score': 0.03801723197102547, 'token': 114, 'token_str': 'どう', 'sequence': '夜の底がどうなった。'}, {'score': 0.03193212300539017, 'token': 3520, 'token_str': 'わるく', 'sequence': '夜の底がわるくなった。'}]
私(安岡孝一)の2022年5月28日の日記とは異なる結果なのだが、「白く」「重」「黒く」「どう」「わるく」を埋めてきているので、まあ良しとしよう。ただ、PyTorch-1.7.0だと、LLaMAモデルはサポートされていない。PyTorch-1.13.1を自力でコンパイルするとなると、4時間くらいかかっちゃう気がするんだけど、さて、どうしようかな。