0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLMAdvent Calendar 2023

Day 22

富岳のPyTorch-1.13.0でSwallow-7b-instruct-hfをムリヤリ動かすには

Last updated at Posted at 2024-01-13

スーパーコンピュータ「富岳」のspack0.19版python3.10で、tokenizersが動かない理由は、rustのスレッド周りにある。これをムリヤリ回避するには、tokenizersにスレッドを使わせないようTOKENIZERS_PARALLELISM=falseすれば、何とかtransformersが動く。Swallow-7b-instruct-hfに「パソコンのキーボードは,なぜABC順・五十音順ではないのですか」と尋ねてみよう。

#! /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-torch@1.13.0/glqavnh
G=`id | sed 's/^.*gid=[0-9]*(\([^)]*\)).*$/\1/'`
set `ls -d /vol*/$G /vol*/data/$G` $HOME
export PYTHONUSERBASE=$1/Swallow
export PATH=$PYTHONUSERBASE/bin:$PATH
export HF_HOME=$PYTHONUSERBASE
export TMPDIR=$PYTHONUSERBASE/tmp
mkdir -p $TMPDIR
pip3 install -U transformers accelerate sentencepiece tqdm typing_extensions --user

P=$TMPDIR/swallow.$PJM_JOBID.$$.py
cat << 'EOF' > $P
from transformers import LlamaForCausalLM,LlamaTokenizer,TextGenerationPipeline
mdl=LlamaForCausalLM.from_pretrained("tokyotech-llm/Swallow-7b-instruct-hf",low_cpu_mem_usage=True)
tkz=LlamaTokenizer.from_pretrained("tokyotech-llm/Swallow-7b-instruct-hf")
tgn=TextGenerationPipeline(model=mdl,tokenizer=tkz,max_new_tokens=128)
nlp=lambda txt:tgn(f"以下に、あるタスクを説明する指示があります。リクエストを適切に完了するための回答を記述してください。\n\n### 指示:{txt}\n\n### 応答:",do_sample=True)[0]["generated_text"]
print(nlp("パソコンのキーボードは,なぜABC順・五十音順ではないのですか"))
EOF
env TOKENIZERS_PARALLELISM=false python3 $P

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

以下に、あるタスクを説明する指示があります。リクエストを適切に完了するための回答を記述してください。

### 指示:パソコンのキーボードは,なぜABC順・五十音順ではないのですか

### 応答:キーボードの配列は、使用頻度の高いキーを中心に、英語圏の人にとって効率的に入力できるように設計されています。アルファベット順に並んでいないのは、キーボードには多くの文字があり、アルファベット順に並べると、キーボードのスペースが不足するからです。

12月22日の記事とは微妙に異なる結果だが、とりあえず7bモデルなら、富岳1ノードで十分ということだ。さて、13bモデルや70bモデルも、この手法で動かせるのかな。

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?