
rinnaã®æ¥æ¬èªGPT-2ã¢ãã«ã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã詊ã
ãrinnaã®æ¥æ¬èªGPT-2ã¢ãã«ãã®ãã¡ã€ã³ãã¥ãŒãã³ã°ããHuggingface Transformers 4.23.1ãã§è©Šããã®ã§ãŸãšããŸããã
ã»Huggingface Transformers 4.23.1
1. rinnaã®æ¥æ¬èªGPT-2ã¢ãã«
ãrinnaã®æ¥æ¬èªGPT-2ã¢ãã«ãã¯ã70GBã®æ¥æ¬èªããã¹ããV100ã§çŽ1ã«æåŠç¿ãããæ¥æ¬èªããã¹ãçæã®ã¢ãã«ã§ãã
2. ãã¡ã€ã³ãã¥ãŒãã³ã°ã®å®è¡
ãã¡ã€ã³ãã¥ãŒãã³ã°ã®å®è¡æé ã¯ã次ã®ãšããã§ãã
(1) Colabã§æ°èŠããŒãããã¯ãäœæããã¡ãã¥ãŒãç·šé â ããŒãããã¯ã®èšå®ã§ãGPUããéžæã
(2) GPUã®ç¢ºèªã
# GPUã®ç¢ºèª
!nvidia-smi+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
| N/A 44C P8 12W / 70W | 0MiB / 15109MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+(3) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
examplesã®ã³ãŒãã䜿ãã®ã§ãtransformersãªããžããªã®ã¯ããŒã³ãè¡ã£ãŠããŸãã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!git clone https://github.com/huggingface/transformers -b v4.23.1
!pip install transformers==4.23.1
!pip install evaluate==0.3.0
!pip install sentencepiece==0.1.97(4) ããŒã¿ã»ãããtrain.txtããã«ã¬ã³ããã©ã«ã(content)ã®ã¢ããããŒãã
ãããããšãããã®äŒè©±ããŒã¿ã»ãããdataset.txtããããŠã³ããŒãããããã¹ãå
ã®<|endoftext|>ãåé€ãããtrain.txtãã«åå倿ŽããŠã¢ããããŒãããŸãã
ã»train.txt
ãããããããã¿ããªïŒã 仿¥ãäžæ¥ããã€ããããŸïœã
âŠãå
ã¡ããããã€ããããªæéãŸã§èµ·ããŠãã®ïŒ
âŠãŸããå¯ãŠãªãã£ãŠããšã¯ãªãããïŒ
:
(5) ãã¡ã€ã³ãã¥ãŒãã³ã°ã®å®è¡ã
%%time
# ãã¡ã€ã³ãã¥ãŒãã³ã°ã®å®è¡
!python ./transformers/examples/pytorch/language-modeling/run_clm.py \
--model_name_or_path=rinna/japanese-gpt2-medium \
--train_file=train.txt \
--validation_file=train.txt \
--do_train \
--do_eval \
--num_train_epochs=3 \
--save_steps=5000 \
--save_total_limit=3 \
--per_device_train_batch_size=1 \
--per_device_eval_batch_size=1 \
--output_dir=output/CPU times: user 1.02 s, sys: 148 ms, total: 1.17 s
Wall time: 1min 52s2. æšè«ã®å®è¡
æšè«ã®å®è¡æé ã¯ã次ã®ãšããã§ãã
(1) ããŒã¯ãã€ã¶ãŒãšã¢ãã«ã®æºåã
from transformers import T5Tokenizer, AutoModelForCausalLM
# ããŒã¯ãã€ã¶ãŒãšã¢ãã«ã®æºå
tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-medium")
model = AutoModelForCausalLM.from_pretrained("output/")(2) æšè«ã®å®è¡ã
# æšè«ã®å®è¡
input = tokenizer.encode("ãã¯ããããå
ã¡ããã", return_tensors="pt")
output = model.generate(input, do_sample=True, max_length=100, num_return_sequences=8)
print(tokenizer.batch_decode(output))[
'ãã¯ããããå
ã¡ããã</s> 仿¥ããç¬é¡ãã£ã±ããã£ã±ãã®1æ¥ã«ãªããããã¿ããªã§ãããã«ãã¡ããã</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>',
'ãã¯ããããå
ã¡ããã</s> 仿¥ãäžæ¥ãç²ãæ§ã§ãã! 仿¥ã¯ãæšæ¥ããäžç·ã«éãããŠããŠã å°ãåãªãæå¿ãèŠããŠããçŽè¶ã¡ãã ãããããèããŠã»ããäºã¯? ããããããèããŠãã ãããç§...............ã...</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>',
'ãã¯ããããå
ã¡ããã</s> ãã£ããããã£ãšèžãã¢ã€ã¢ã€ãã...</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>',
'ãã¯ããããå
ã¡ããã</s> 仿¥ã¯æããå¯åãã¡ãã£ããããããã倿ãããªã 仿¥ããå
ã¡ããã®ãæ©å«ãª1æ¥ã</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>',
'ãã¯ããããå
ã¡ããã</s> 俺ã¯ä»ããªãã ãåŠã«å
æ°ã äœããä»äºãããªãããããªãããšããããªãããããªãããšããããªãããããªãããšããããããã£ãŠãªããå«ã ã ã ã£ãŠããå
ã¡ãããä»ãç§éã®å®¶ã®ããåŽã«ãããã§ãã? ããããå
ã¡ãããäžçªè¿ãã®äººãªãã§ãã ãå
ã¡ããã¯ãã€ããå
ã¡ããã®é¡ãã®ããããããã',
'ãã¯ããããå
ã¡ããã</s> ææ¥ã¯æãã¯ãã«ã仿¥ã¯ããã€ã«ããã«ããã«ããŠã (ãã«ãã¡ããã»ã»æãã¯ãã®ãã«ããããã«ããã®å
·ãé£ã¹ãããªããŸãã) ãã ç§ããåéãªã¯ãšã¹ãããããªããŒ</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>',
'ãã¯ããããå
ã¡ããã</s> 仿¥ããæãããç¶ãããšåŠ¹ãæ¥ãŠããã©...ã ãå
ã¡ããããä»åºŠã®åææ¥ã«ãã¡ã³ã³ã³ããªãã ã!......ãããå
ã¡ãããç¥ããªãã®?ç§ããå
ã¡ããã®ããšãããç¥ããªããã(ç¬)ã ãã£ã±ããå
ã¡ããã女ã®åã®ãªã¢ãã£ç®±ããã£ã±ãæã£ãŠãããâªãå§ã¡ããã®ãªãšâãããã£ã±ãèããŠã¿ãã', 'ãã¯ããããå
ã¡ããã</s> æšæ¥ã仿¥ããå
ã¡ããã倧奜ããªãå
ã¡ããã®é£ã«ããããæšæ¥ãå
ã¡ãããåŒãã§ããããå
ã¡ããã«ã¯ãããããããšãããããšæã£ãŠãã ãå
ã¡ããã¯ä»æ¥ããå
ã¡ãããšäžç·ã«éãŒããã...</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>'
]
ãããŸãã ãã¡ã€ã³ãã¥ãŒãã³ã°ããªãå Žåã®æšè«çµæ
from transformers import T5Tokenizer, AutoModelForCausalLM
# ããŒã¯ãã€ã¶ãŒãšã¢ãã«ã®æºå
tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-medium")
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt2-medium")[
'ãã¯ããããå
ã¡ããã</s> ã(ãããŒããŒãšã«ããŒ)ã¯ã2012幎11æ7æ¥ã«beetvé
ä¿¡ããããã©ãã§ããã 倧åŠçã®æ¡äºç²åã¯2幎åã«äº€éäºæ
ã§äž¡èŠªã亡ãããåŒã§ããç¿å¹³ã»ç¿æ¬¡ãé€ãããšã§ç掻ããŠããã ãããªæåã®å
ã«é«æ ¡åéšã«å€±æããŠä»¥æ¥é³ä¿¡äžéãšãªã£ãŠããå§ã®ç¿å¹³ãçŸããæåã®éå»ãç¥ãããšãšãªãã æ¡äºç²å(ãããã ãããã) 倧åŠçã',
'ãã¯ããããå
ã¡ããã</s> ã ãåã ããããªãè¡ã ããããèéã ããã! bestãã¬ã³ãã ããŒããã®ã ãåãåã§ããããã«ã 乿šå46 æ¢
æŸ€çŸæ³¢ã乿šå46 ãã¡ãŒã¹ãåçéã ãåæãããããªãã ã 乿šå46 æ©æ¬ç ã
æªã乿šå46 æ©æ¬å¥ã
æªåçéã ã乿šå46 æ°å¶æã坿ãããŸãã ã 乿šå46 çç°çµµæ¢š',
'ãã¯ããããå
ã¡ããã</s> æšæ¥ã¯ãç²ãæ§ã§ãã!楜ããã£ãã§ããããããšãããããŸã! ãã仿¥ã¯åž°ãã®ãå«ã§ãã ãã¯ããããããŸãã(o Ì<unk> o)ãâ¡ææ¥ãé 匵ããªãããã<unk> 仿¥ã®ãæŒã飯ã¯ç䞌ã§ãâ ããã«ã¡ã¯ã(o Ì<unk> o)ã<unk>.:ã æãèµ·ããã<unk> ãã¯ããæ¥œãã¿ãã',
'ãã¯ããããå
ã¡ããã</s> æè¿ãå
貎ãããæçŽãããã£ãŠãã®ãã ããç§ããã®æçŽãå±ãã«æ¥ããã ããã...ãã®éãã ãªãå
貎ã 俺ã¯ããããããªããŸãŸã§ããå
ã¯ç§ã®ããšããã£ãšæ°ã«ãããŠãããŠããã®ãã åã¯ãããã®å
効ãšã®ç掻ã§ããããã®ææ
ãæ±ããŠã¯ãããã©ã俺ã¯å
ããããªé¢šã«æãããšã¯ãªãã£ãã ç§ã¯ãã®å
効ãããã®ãã€ãããå
貎',
'ãã¯ããããå
ã¡ããã</s> pic.twitter.com/lv6qeqy6d1 ããããæã¯ããããããã§é ãæããããªãããªãšãç§ã®äžã§èããŠããŸãã â ãããã@å°å¿è
ããŒ@ã²ãŒã æ»ç¥wiki@ (@takasuketokokorobot) 2017幎3æ7æ¥ rt @yaki_takeshoko: ãæŽæ°ã(3/30)',
'ãã¯ããããå
ã¡ããã</s> ãã¯ãæ¬æ©ç çåã«ããæ¥æ¬ã®æŒ«ç»ã ãæåããã°ã¬ã³ã¬ã³ã(ã¹ã¯ãŠã§ã¢ã»ãšããã¯ã¹)ã«ãŠã2009幎11æå·ãã2012幎1æå·ãŸã§é£èŒã 1話å®çµåã®ã©ãã³ã¡ã§ãããããå
ã¡ããããšåŒã°ããããå
ã¡ãããéã®æŽ»èºãæãã äœè
ã®æŒ«ç»ãã¯ããã³ã°ããããšåææã®2010幎ãã2011幎ãŸã§ãæåã¢ãã¿ããŒã³ãã«ãŠé£èŒããã2012幎3æå·ãããæåããã°ã¬ã³ã¬ã³ãã«ãŠé£èŒéå§ã',
'ãã¯ããããå
ã¡ããã</s> ãã§ã¬ã®ã¥ã©ãŒåºæŒããŠããã ç¹æã¯ãã¢ãã ããå¹Œå°æããæ
£ã芪ããã§ããã 奜ããªè²ã¯éè²ã ã¢ãã£ãªãšã€ããµã€ããã¢ãã£ãªãšã€ããšã€ãã»ããã°ã©ã ãã®å®£äŒçšããã°ã¯ããã¢ãã£ãªãšã€ãã»ããã°ãã§æžãããŠããã 奜ããªä¿³åªã¯ãç³ç°åä¹ã 奜ããªé³æ¥œã¯ãããŒãããã¯ãããŒãã»ããã¯ããžã£ãºãã©ãã³ã»ãžã£ãºã 奜ããªãèåã¯ã³ãŒããŒã 奜ããªæ ç»ã¯ããããŒã¯ãã€ãã(1999',
'ãã¯ããããå
ã¡ããã</s> æšæ¥ã¯åйãšã仿¥ã¯2人ã§ãæšæ¥ã¯ååäžã効ããã¿ãããâ
ããã©ããšããã«ãã§ã«éã³ã«è¡ããŸããããåºã¯ã効ã®å€åå
ã®è¿ãã«ãããã³å±ããã§ãã 仿¥ã¯ã効ã2人ã§ãä¹
ãã¶ãã«æ¥ãã£ãŠããšã§ããããã³ã®æ£®ãã§éã¶ã®ã§ããã³å±ããã«è¡ããŸããã ãã³å±ããã¯ãæšæ¥ã¯ã効ã'
]