LoginSignup
0
0

富岳でesuparのアイヌ語係り受け解析をムリヤリ動かすには

Posted at

昨日の記事で書いたesuparによるアイヌ語係り受け解析プログラムを、スーパーコンピュータ「富岳」のPyTorch-1.13.0で動かすことを試みた。しかし、富岳のPyTorch-1.13.0はコンパイル時にUSE_LAPACK=1を指定しておらず、torch.nn.init.orthogonal_()まわりで

  File "/vol0004/apps/oss/spack-v0.19/opt/spack/linux-rhel8-a64fx/fj-4.8.1/py-torch-1.13.0-glqavnhys6plsjklw2bp3tkkh5ysyrqh/lib/python3.10/site-packages/torch/nn/init.py", line 484, in orthogonal_
    q, r = torch.linalg.qr(flattened)
RuntimeError: Calling torch.geqrf on a CPU tensor requires compiling PyTorch with LAPACK. Please use PyTorch built with LAPACK support.

という悲しいエラーが出て、動かすことができなかった。仕方ないので、富岳のPyTorchを最新のPyTorch-2.2.0に入れ替えた上、TOKENIZERS_PARALLELISM=falsetokenizerをなだめつつ、esuparを動かすことにした。

#! /bin/bash
#PJM -L rscgrp=small
#PJM -L elapse=1:00:00
#PJM -L node=1
#PJM -j
#PJM -S

. /vol0004/apps/oss/spack/share/spack/setup-env.sh
spack load py-numpy@1.23.4/hcqp4u5
G=`id | sed 's/^.*gid=[0-9]*(\([^)]*\)).*$/\1/'`
set `ls -d /vol*/$G /vol*/data/$G` $HOME
export PYTHONUSERBASE=$1/esupar
export PATH=$PYTHONUSERBASE/bin:$PATH
export TMPDIR=$PYTHONUSERBASE/tmp
mkdir -p $TMPDIR
pip3 install -U torch typing_extensions --user
pip3 install -U esupar --user

P=$TMPDIR/esupar.$PJM_JOBID.$$.py
cat << 'EOF' > $P
import esupar
nlp=esupar.load("ain")
doc=nlp("オラ エアシㇼ アイヌウタㇻ クヌカㇻ")
import deplacy
print(deplacy.to_conllu(doc))
deplacy.render(doc)
EOF
env TOKENIZERS_PARALLELISM=false python3 $P

富岳のログインノードからpjsubしてみたところ、ジョブ待ち・インストール・ダウンロード等も含め、20分ほどで以下の結果が得られた。

1	オラ	ora	SCONJ	接続詞	_	6	advmod	_	_
2	エアシㇼ	easir	ADV	副詞	_	6	advmod	_	_
3	アイヌ	ainu	NOUN	名詞	_	4	nmod	_	SpaceAfter=No
4	ウタㇻ	utar	NOUN	名詞	_	6	obj	_	_
5	ク	ku	PART	人称接辞	_	6	nsubj	_	SpaceAfter=No
6	ヌカㇻ	nukar	VERB	他動詞	_	0	root	_	SpaceAfter=No


オラ     SCONJ <══════╗ advmod
エアシㇼ ADV   <════╗ ║ advmod
アイヌ   NOUN  <╗   ║ ║ nmod
ウタㇻ   NOUN  ═╝<╗ ║ ║ obj
ク       PART  <╗ ║ ║ ║ nsubj
ヌカㇻ   VERB  ═╝═╝═╝═╝ root

「オラ エアシㇼ アイヌウタㇻ クヌカㇻ」という例文が、ちゃんと係り受け解析できているようだ。ただ、このやり方だと、manylinux2014_aarch64のバイナリをそのまま使ってしまうため、富岳のa64fxがイマイチ生かせていない。また、rustのスレッド周りを避けてしまっているので、tokenizersが遅くなってしまっている。つまり、SuPar-UniDicと同じ問題を抱えているのだけど、やはり私の手には余る感じだ。誰か代わりに解決してくれないかなあ。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0