GPT2-Chinese
Description
- Chinese version of GPT2 training code, using BERT tokenizer or BPE tokenizer. It is based on the extremely awesome repository from HuggingFace team Transformers. Can write poems, news, novels, or train general language models. Support char level, word level and BPE level. Support large training corpus.
- 中文的GPT2训练代码,使用BERT的Tokenizer或Sentencepiece的BPE model(感谢kangzhonghua的贡献,实现BPE模式需要略微修改train.py的代码)。可以写诗,新闻,小说,或是训练通用语言模型。支持字为单位或是分词模式或是BPE模式(需要略微修改train.py的代码)。支持大语料训练。
此為實作實驗,詳細內容可以回到原帖(Morizeyao/GPT2-Chinese)去查詢。
個人新增
訓練
這邊訓練材料我是使用維基百科的資料進行訓練,但由於使用colab作為運算平台,有容量與時間限制,只使用其中5%的資料量。
!python train.py \
--raw_data_path data/train_0_05.json \
--epochs 5 \
--output_dir model/ \
--batch_size 16 \
--min_length 100 \
--warmup_steps 20000 \
--writer_dir model/tensorboard/ \
--stride 256 \
--raw \
> output/result_D005_S16.txt
結果: 全文
now time: 22:12. Step 86 of piece 99 of epoch 5, loss 2.836132049560547
now time: 22:12. Step 87 of piece 99 of epoch 5, loss 3.078228235244751
now time: 22:12. Step 88 of piece 99 of epoch 5, loss 2.6969659328460693
now time: 22:12. Step 89 of piece 99 of epoch 5, loss 2.8609375953674316
now time: 22:12. Step 90 of piece 99 of epoch 5, loss 2.644458293914795
now time: 22:12. Step 91 of piece 99 of epoch 5, loss 2.9883716106414795
now time: 22:12. Step 92 of piece 99 of epoch 5, loss 2.9410083293914795
saving model for epoch 5
epoch 5 finished
time: 2020-01-08 22:12:45.407614
time for one epoch: 1:22:51.327436
training finished
使用
!python ./generate.py \
--length=200 \
--nsamples=8 \
--prefix=立法院三讀通過總統要吃一百個漢堡 \
--fast_pattern \
--save_samples \
--save_samples_path=/output
結果:
args:
Namespace(batch_size=1, device='0,1,2,3', fast_pattern=True, length=200, model_config='config/model_config_small.json', model_path='model/final_model', no_wordpiece=False, nsamples=8, prefix='立法院三讀通過總統要吃一百個漢堡', repetition_penalty=1.0, save_samples=True, save_samples_path='/output', segment=False, temperature=1, tokenizer_path='cache/vocab_small.txt', topk=8, topp=0)
100% 200/200 [00:02<00:00, 81.38it/s]
======================================== SAMPLE 1 ========================================
立法院三讀通過總統要吃一百個漢堡的法令,並要求總統要求國防部長以及各方的代議案進行決定,並要求總統要求總統必須提交總統的建議。2013年6月12日,總統選舉産生瞭148個議案,總統的任命範圍為334.8334384246432.,總統選舉産生瞭302個議案。總統選舉産生的黨員中,有72個議員,185個議員,58個黨員,123個非政府組織,13個國防組織和256個非政府組織。總統選舉産生的黨員中,有34個政黨,128個非政府組織,
100% 200/200 [00:02<00:00, 80.86it/s]
======================================== SAMPLE 2 ========================================
立法院三讀通過總統要吃一百個漢堡的方案,以確保總統的選舉過多,也因此被認為是一個“不可能的”,因為他不希望這樣做得到瞭總統的支持,並且不斷提齣這一提案。在1952年7月25日,國會通過瞭《1952年法案》,並通過瞭《1952年法案》。在第五屆國會中,國會通過瞭《1952年憲法》,其中規定“不可能選舉齣來的總統,而不可能任何一方,隻可能選齣一個總統。”在此之前,法案中規定“總統和副總統的選舉過程不能同時在憲法第二條規定中實質性。”
100% 200/200 [00:02<00:00, 78.69it/s]
======================================== SAMPLE 3 ========================================
立法院三讀通過總統要吃一百個漢堡的時間,在這樣的時間裏,有很多漢堡的人們會在這裏吃一百個漢堡的時間。這是因為漢堡的政治地位在這裏。最後一位民眾選擇漢堡的人是漢堡的第一任總統。漢堡的總統是,他在1800年4月5日宣布自己在1800年5月7日生效的,當時漢堡是由漢堡的一個小型城鎮組成,漢堡的首都是德國漢堡。漢堡在1843年7月30日宣告成立,當時漢堡的人口數已經超過5萬。漢堡在1800年7月1日成員在漢堡的漢堡市(今日漢堡),漢堡的
100% 200/200 [00:02<00:00, 81.16it/s]
======================================== SAMPLE 4 ========================================
立法院三讀通過總統要吃一百個漢堡(即法律的法定州)。1843年,法院通過,該法案獲得批準,在該州中屬於州。
2013年歐洲女子手球錦標賽2013年歐洲女子手球錦標賽為第20屆歐洲女子手球錦標賽,為第52屆歐洲女子手球錦標賽。本屆賽事於2013年11月3日至2013年1月11日在法國裏昂舉行。賽事於2013年7月21日至8日在巴黎舉行,並在之後的第四周一至五日舉行。決賽由歐洲女子手球聯賽的主辦方、參賽隊伍的所有參賽隊伍及各個主辦
100% 200/200 [00:02<00:00, 81.95it/s]
======================================== SAMPLE 5 ========================================
立法院三讀通過總統要吃一百個漢堡的地點。在此之後,國民黨政府於1935年8月28日正式實施。在這一年的政府中,共産黨在1935年4月的選舉中贏得瞭56.8%的選票,但在選舉中的選票卻是不斷失敗。而在1935年1月的選舉中,共産黨獲得瞭54%的選票,在其中15%的選票占到瞭10%。在1935年的選舉中,共産黨獲得瞭67.7%的選票,成為瞭最後一個國民黨。而在1935年12月的選舉中,共産黨勝利的國民黨則在1936年1月的第三次選舉
100% 200/200 [00:02<00:00, 80.65it/s]
======================================== SAMPLE 6 ========================================
立法院三讀通過總統要吃一百個漢堡的公民權。這次選舉中國共産黨第十四次全國代錶大會在2010年6月13日舉行,選舉結果顯示,國民黨第十六屆中央委員、中央委員李鵬在選舉前曾在總統府中擔任過一個職務。
2012年夏季奧林匹剋運動會遊泳比賽-男子4×19,2012年夏季奧林匹剋運動會的遊泳比賽在7月28日到9月25日在法國倫敦的聖馬力諾舉行,這是該國曆史上首次參賽的遊泳比賽。遊泳項目的賽事包括:男子4×19,2012年夏季奧林匹剋運動
100% 200/200 [00:02<00:00, 80.44it/s]
======================================== SAMPLE 7 ========================================
立法院三讀通過總統要吃一百個漢堡市區。2009年11月9日,國會通過瞭國會的《國會通過法案》。此外國會議員還會選舉齣38位副議長,分彆是前國會眾議員和前民主黨國會議員,前國會眾議員和前國會眾議員。在2010年1月28日,國會通過瞭《國會章程》。根據美國聯邦政府的憲法,國會由五名執政黨成員組成:國會第一屆國會通過法案,其中包括瞭一個國會眾議員國會眾議員。國會第二次國會是國會眾議員國,其中一個由兩位國會議員組成的國會。其中第一個是國
100% 200/200 [00:02<00:00, 79.87it/s]
======================================== SAMPLE 8 ========================================
立法院三讀通過總統要吃一百個漢堡,但最終沒有成為法院曆史上首位總統,因此他的政績卻是一個有爭議的結果。2011年10月,國會下議院三讀通過修訂瞭《修訂法》,修訂瞭一項修訂。法國總統和國會下議院三讀通過瞭《修訂法》,修訂憲法。法國國會的三讀通過在2011年1月13日通過。修訂憲法的修訂是由憲法第十九修訂而來。憲法第十九修訂瞭修憲法第十九修訂,並且將修訂憲法第十九修訂的第13條。法國在2003年通過瞭修訂《修訂法》。2012年2月6
================================================================================
train_source.txt train_0_05.json 這些檔案能分享嗎? 謝謝
https://github.com/Chunshan-Theta/GPT_chinese_trandition/tree/master/data
您好:
我用您提供的資料,然後執行https://github.com/Morizeyao/GPT2-Chinese#%E6%A8%A1%E5%9E%8B%E5%88%86%E4%BA%AB,裡面的更新後程式,執行train.py,出現:ValueError: `Dataloader` returned 0 length. Please make sure that it returns at least 1 batch的訊息,請問是版本的問題嗎?