readme: ---
  language: zh
  datasets: c2m
  inference:
    parameters:
      max_length: 108
      num_return_sequences: 1
      do_sample: True
  widget: 
  - text: "晋太元中，武陵人捕鱼为业。缘溪行，忘路之远近。忽逢桃花林，夹岸数百步，中无杂树，芳草鲜美，落英缤纷。渔人甚异之，复前行，欲穷其林。林尽水源，便得一山，山有小口，仿佛若有光。便舍船，从口入。初极狭，才通人。复行数十步，豁然开朗。土地平旷，屋舍俨然，有良田、美池、桑竹之属。阡陌交通，鸡犬相闻。其中往来种作，男女衣着，悉如外人。黄发垂髫，并怡然自乐。"
    example_title: "桃花源记"
  - text: "往者不可谏,来者犹可追。"
    example_title: "来者犹可追"
  - text: "逝者如斯夫！不舍昼夜。"
    example_title: "逝者如斯夫"
  
  
  ---
  
  
  # 文言文 to 现代文
  
  ## Model description
  
  
  ## How to use
  使用 pipeline 调用模型:
  
  ```python
  >>> from transformers import pipeline
  >>> model_checkpoint = "supermy/c2m-mt5"
  >>> translator = pipeline("translation", 
  		model=model_checkpoint,
  		num_return_sequences=1,
  		max_length=52, 
  		truncation=True,)
  
  >>> translator("往者不可谏,来者犹可追。")
  [{'translation_text': '过 去 的 事 情 不能 劝 谏 ， 未来 的 事 情 还 可以 追 回 来 。 如 果 过 去 的 事 情 不能 劝 谏 ， 那 么 ， 未来 的 事 情 还 可以 追 回 来 。 如 果 过 去 的 事 情'}]
  
  >>> translator("福兮祸所伏，祸兮福所倚。",do_sample=True)
  [{'translation_text': '幸 福 是 祸 患 所 隐 藏 的 ， 灾 祸 是 福 祸 所 依 托 的 。 这 些 都 是 幸 福 所 依 托 的 。 这 些 都 是 幸 福 所 带 来 的 。 幸 福 啊 ， 也 是 幸 福'}]
  
  >>> translator("成事不说，遂事不谏，既往不咎。", num_return_sequences=1,do_sample=True)
  [{'translation_text': '事 情 不 高 兴 ， 事 情 不 劝 谏 ， 过 去 的 事 就 不 会 责 怪 。 事 情 没 有 多 久 了 ， 事 情 没 有 多 久 ， 事 情 没 有 多 久 了 ， 事 情 没 有 多'}]
  
  >>> translator("逝者如斯夫！不舍昼夜。",num_return_sequences=1,max_length=30)
  [{'translation_text': '逝 去 的 人 就 像 这 样 啊 ， 不分 昼夜 地 去 追 赶 它 们 。 这 样 的 人 就 不 会 忘 记'}]
  
  ```
  Here is how to use this model to get the features of a given text in PyTorch:
  
  ```python
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
  tokenizer = AutoTokenizer.from_pretrained("supermy/c2m-mt5")
  model = AutoModelForSeq2SeqLM.from_pretrained("supermy/c2m-mt5")
  text = "用你喜欢的任何文本替换我。"
  encoded_input = tokenizer(text, return_tensors='pt')
  output = model(**encoded_input)
  ```
  
  
  
  ## Training data
  
  非常全的文言文（古文）-现代文平行语料，基本涵盖了大部分经典古籍著作。
  
  原始爬取的数据是篇章级对齐，经过脚本分句（按照句号分号感叹号问号划分）以及人工校对，形成共计约96万句对。目录bitext下是文言文-现代文对齐的平行数据。此外，目录source下是文言文单语数据，target下是现代文单语数据，这两个目录下的文件内容按行对齐。
  
  以下为数据统计信息。其中，短篇章中包括了《论语》、《孟子》、《左传》等篇幅较短的古籍，已和《资治通鉴》合并。
  
  |书名|句数
  |:--|:--|
  短篇章和资治通鉴|348727
  元史|21182
  北史|25823
  北书|10947
  南史|13838
  南齐书|13137
  史记|17701
  后汉书|17753
  周书|14930
  太平广记|59358
  宋书|23794
  宋史|77853
  徐霞客游记|22750
  新五代史|10147
  新唐书|12359
  旧五代史|11377
  旧唐书|29185
  明史|85179
  晋书|21133
  梁书|14318
  水经注全|11630
  汉书|37622
  辽史|9278
  金史|13758
  陈书|7096
  隋书|8204
  魏书|28178
  **总计**|**967257**
  
  《短篇章和资治通鉴》中各书籍统计如下（此部分数据量不完全准确）：
  
  |书名|句数
  |:--|:--|
  资治通鉴|7.95w
  左传|1.09w
  大学章句集注|	   86
  反经|			 4211
  公孙龙子|		   73
  管子|			 6266
  鬼谷子|		  385
  韩非子|		 4325
  淮南子|		 2669
  黄帝内经|	 6162
  皇帝四经|		  243
  将苑|			  100
  金刚经|		  193
  孔子家语|		  138
  老子|			  398
  了凡四训|		   31
  礼记|			 4917
  列子|			 1735
  六韬|			  693
  六祖坛经|		  949
  论语|			  988
  吕氏春秋|	 2473
  孟子|			 1654
  梦溪笔谈| 		 1280
  墨子|		 2921
  千字文|		   82
  清史稿|		 1604
  三字经|		  234
  山海经|		  919
  伤寒论|		  712
  商君书|		  916
  尚书|		 1048
  世说新语|		 3044
  司马法|		  132
  搜神记|		 1963
  搜神后记|		  540
  素书|			   61
  孙膑兵法|		  230
  孙子兵法|		  338
  天工开物|		  807
  尉缭子|		  226
  文昌孝经|		  194
  文心雕龙|		 1388
  吴子|			  136
  孝经|		      102	 
  笑林广记|		 1496
  荀子|			 3131 
  颜氏家训|		  510
  仪礼|			 2495
  易传|			  711
  逸周书|		 1505
  战国策|		 3318
  贞观政要|		 1291
  中庸|			  206
  周礼|			 2026
  周易|			  460
  庄子|			 1698
  百战奇略|		  800
  论衡| 1.19w
  智囊|2165
  罗织经|188
  朱子家训|31
  抱朴子|217
  地藏经|547
  国语|3841
  容斋随笔|2921
  幼学琼林|1372
  三略|268
  围炉夜话|387
  冰鉴|120
  
  
  如果您使用该语料库，请注明出处：https://github.com/NiuTrans/Classical-Modern
  
  感谢为该语料库做出贡献的成员：丁佳鹏、杨文权、刘晓晴、曹润柘、罗应峰。
  ```
  ```
  
  ## Training procedure
  
  在英伟达16G显卡训练了 4 天整，共计68 次。
  
  [文言文数据集](https://huggingface.co/datasets/supermy/Classical-Modern) 训练数据. 模型 [MT5](google/mt5-small)
  
  
  ```
  
  [INFO|trainer.py:1628] 2022-12-15 16:08:36,696 >> ***** Running training *****
  [INFO|trainer.py:1629] 2022-12-15 16:08:36,696 >>   Num examples = 967255
  [INFO|trainer.py:1630] 2022-12-15 16:08:36,697 >>   Num Epochs = 6
  [INFO|trainer.py:1631] 2022-12-15 16:08:36,697 >>   Instantaneous batch size per device = 12
  [INFO|trainer.py:1632] 2022-12-15 16:08:36,697 >>   Total train batch size (w. parallel, distributed & accumulation) = 12
  [INFO|trainer.py:1633] 2022-12-15 16:08:36,697 >>   Gradient Accumulation steps = 1
  [INFO|trainer.py:1634] 2022-12-15 16:08:36,697 >>   Total optimization steps = 483630
  [INFO|trainer.py:1654] 2022-12-15 16:08:36,698 >>   Continuing training from checkpoint, will skip to saved global_step
  [INFO|trainer.py:1655] 2022-12-15 16:08:36,698 >>   Continuing training from epoch 5
  [INFO|trainer.py:1656] 2022-12-15 16:08:36,698 >>   Continuing training from global step 465000
  
  {'loss': 5.2906, 'learning_rate': 1.8743667679837894e-06, 'epoch': 5.78}
  {'loss': 5.3196, 'learning_rate': 1.8226743584971985e-06, 'epoch': 5.78}
  
  {'loss': 5.3467, 'learning_rate': 6.513243595310464e-08, 'epoch': 5.99}
  {'loss': 5.3363, 'learning_rate': 1.344002646651366e-08, 'epoch': 6.0}
  {'train_runtime': 6277.5234, 'train_samples_per_second': 924.494, 'train_steps_per_second': 77.042, 'train_loss': 0.2044413571775476, 'epoch': 6.0}
  ***** train metrics *****
    epoch                    =        6.0
    train_loss               =     0.2044
    train_runtime            = 1:44:37.52
    train_samp