File size: 6,875 Bytes
d6a625d c518b8e d6a625d c518b8e d6a625d dbf912c d6a625d dbf912c d6a625d dbf912c d6a625d 8120f45 31a5366 8120f45 31a5366 d6a625d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
---
language: zh
datasets: poetry
inference:
parameters:
max_length: 108
num_return_sequences: 1
do_sample: True
widget:
- text: "物换 星移 几度 秋"
example_title: "滕王阁1"
- text: "秋水 共 长天 一色"
example_title: "滕王阁 2"
- text: "萍水 相逢,尽是 他乡 之 客。"
example_title: "滕王阁 3"
---
# 古诗词
## Model description
古诗词AI生成
## How to use
使用 pipeline 调用模型:
```python
from transformers import AutoTokenizer, GPT2LMHeadModel, TextGenerationPipeline
model_checkpoint = "supermy/poetry"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
model = GPT2LMHeadModel.from_pretrained(model_checkpoint)
text_generator = TextGenerationPipeline(model, tokenizer)
text_generator.model.config.pad_token_id = text_generator.model.config.eos_token_id
print(text_generator("举头 望 明月,", max_length=100, do_sample=True))
print(text_generator("物换 星移 几度 秋,", max_length=100, do_sample=True))
>>> print(text_generator("举头 望 明月,", max_length=100, do_sample=True))
[{'generated_text': '举头 望 明月, 何以 喻 无言 。 顾影 若为 舞 , 啸 风清 独 伤 。 四时 别有 意 , 千古 得 从容 。 赏音 我非 此 , 何如 鸥鹭 群 。 崎 山有 佳色 , 落落 样 相宜 。 不嫌 雪霜 温 , 宁 受 四时 肥 。 老 态 如 偷 面 , 冬 心 似 相知 。 春风 不可 恃 , 触 动 春 何为 。 岁晚 忽然 老 , 花前 岁月深 。 可笑 一场 梦 , 婵娟 乍 自 心 。 列 名 多 岁月 , 森 列 尽 林峦 。 试问 影 非 笑'}]
>>> print(text_generator("物换 星移 几度 秋,", max_length=100, do_sample=True))
[{'generated_text': '物换 星移 几度 秋, 消长 随时 向 一丘 。 渔者 下 逢 勾漏 令 , 漏声 高出 景阳 丘 。 天津 大尹 昔 从游 , 大尹 来时 春复 秋 。 旗鼓 日 严 宣 使 从 , 联镳 歌笑 又 风流 。 冈峦 比 并 瑶 溪 水 , 叠嶂 高 盘 黼黻 洲 。 花木 芳菲 三月 天 , 莺花 暖 翠 几 流年 。 一从 别后 多 携手 , 肠断 酒阑 怀 凛然 。 北阙 人称 似梦中 , 西山 别样 梦魂 香 。 多君 观国 亲 圭璧 , 能 预 陇西 称 巨 良 。 刷羽 刷羽'}]
```
Here is how to use this model to get the features of a given text in PyTorch:
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("supermy/poetry")
model = AutoModelForCausalLM.from_pretrained("supermy/poetry")
```
## Training data
非常全的古诗词数据,收录了从先秦到现代的共计85万余首古诗词。
## 统计信息
| 朝代 | 诗词数 | 作者数 |
|-----------------------|--------|--------|
| 宋 | 287114 | 9446 |
| 明 | 236957 | 4439 |
| 清 | 90089 | 8872 |
| 唐 | 49195 | 2736 |
| 元 | 37375 | 1209 |
| 近现代 | 28419 | 790 |
| 当代 | 28219 | 177 |
| 明末清初 | 17700 | 176 |
| 元末明初 | 15736 | 79 |
| 清末民国初 | 15367 | 99 |
| 清末近现代初 | 12464 | 48 |
| 宋末元初 | 12058 | 41 |
| 南北朝 | 4586 | 434 |
| 近现代末当代初 | 3426 | 23 |
| 魏晋 | 3020 | 251 |
| 金末元初 | 3019 | 17 |
| 金 | 2741 | 253 |
| 民国末当代初 | 1948 | 9 |
| 隋 | 1170 | 84 |
| 唐末宋初 | 1118 | 44 |
| 先秦 | 570 | 8 |
| 隋末唐初 | 472 | 40 |
| 汉 | 363 | 83 |
| 宋末金初 | 234 | 9 |
| 辽 | 22 | 7 |
| 秦 | 2 | 2 |
| 魏晋末南北朝初 | 1 | 1 |
| 总和 | 853385 | 29377 |
```
```
## Training procedure
模型:[GPT2](https://huggingface.co/gpt2)
训练环境:英伟达16G显卡
bpe分词:"vocab_size"=50000
```
***** Running training *****
Num examples = 16431
Num Epochs = 680
Instantaneous batch size per device = 24
Total train batch size (w. parallel, distributed & accumulation) = 192
Gradient Accumulation steps = 8
Total optimization steps = 57800
Number of trainable parameters = 124242432
GPT-2 size: 124.2M parameters
0%| | 0/57800 [00:00<?, ?it/s]You're using a PreTrainedTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.
9%|▊ | 5000/57800 [6:58:57<72:53:18, 4.97s/it]***** Running Evaluation *****
Num examples = 1755
Batch size = 24
{'loss': 3.1345, 'learning_rate': 0.0004939065828881268, 'epoch': 58.82}
9%|▊ | 5000/57800 [6:59:14<72:53:18, Saving model checkpoint to poetry-trainer/checkpoint-5000
Configuration saved in poetry-trainer/checkpoint-5000/config.json
Model weights saved in poetry-trainer/checkpoint-5000/pytorch_model.bin
tokenizer config file saved in poetry-trainer/checkpoint-5000/tokenizer_config.json
Special tokens file saved in poetry-trainer/checkpoint-5000/special_tokens_map.json
17%|█▋ | 10000/57800 [13:55:32<65:40:41, 4.95s/it]***** Running Evaluation *****
Num examples = 1755
Batch size = 24
{'eval_loss': 11.14090633392334, 'eval_runtime': 16.8326, 'eval_samples_per_second': 104.262, 'eval_steps_per_second': 4.396, 'epoch': 58.82}
{'loss': 0.2511, 'learning_rate': 0.00046966687938531824, 'epoch': 117.64}
17%|█▋ | 10000/57800 [13:55:48<65:40:41Saving model checkpoint to poetry-trainer/checkpoint-10000
..........
95%|█████████▌| 55000/57800 [76:06:46<3:59:33, 5.13s/it]***** Running Evaluation *****
Num examples = 1755
Batch size = 24
{'eval_loss': 14.860174179077148, 'eval_runtime': 16.7826, 'eval_samples_per_second': 104.572, 'eval_steps_per_second': 4.409, 'epoch': 588.23}
{'loss': 0.0083, 'learning_rate': 3.0262183266589473e-06, 'epoch': 647.06}
95%|█████████▌| 55000/57800 [76:07:03<3:59:33,Saving model checkpoint to poetry-trainer/checkpoint-55000
{'eval_loss': 14.830656051635742, 'eval_runtime': 16.7365, 'eval_samples_per_second': 104.86, 'eval_steps_per_second': 4.421, 'epoch': 647.06}
{'train_runtime': 287920.5857, 'train_samples_per_second': 38.806, 'train_steps_per_second': 0.201, 'train_loss': 0.33751299874592816, 'epoch': 679.99}
100%|██████████| 57800/57800 [79:58:40<00:00, 4.93s/it]
```
```
### entry and citation info
```
``` |