readme: ---
  language: zh
  datasets: couplet
  tags:
  - translation
  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
  >>> task_prefix = ""
  >>> sentence = task_prefix+"国色天香，姹紫嫣红，碧水青云欣共赏"
  >>> model_output_dir='couplet-hel-mt5-finetuning/'
  >>> from transformers import pipeline
  >>> translation = pipeline("translation", model=model_output_dir)
  >>> print(translation(sentence,max_length=28))
  [{'translation_text': '月圆花好,良辰美景,良辰美景喜相逢'}]
  
  ```
  Here is how to use this model to get the features of a given text in PyTorch:
  
  ```python
  from transformers import AutoTokenizer, AutoModel
  tokenizer = AutoTokenizer.from_pretrained("supermy/couplet-helsinki")
  model = AutoModel.from_pretrained("supermy/couplet-helsinki")
  ```
  
  
  
  ## Training data
  
  此数据集基于couplet-dataset的70w条数据集，在此基础上利用敏感词词库对数据进行了过滤，删除了低俗或敏感的内容，删除后剩余约74w条对联数据。
  
  ## 统计信息
  
  ```
  
  ```
  
  ## Training procedure
  
  模型：[Helsinki-NLP/opus-mt-zh-en](https://huggingface.co/Helsinki-NLP/opus-mt-zh-en) 
  训练环境：英伟达16G显卡
  
  mt5分词："vocab_size"=50000
  ```
  [INFO|trainer.py:1634] 2022-12-13 06:27:25,113 >> ***** Running training *****
  [INFO|trainer.py:1635] 2022-12-13 06:27:25,113 >>   Num examples = 741096
  [INFO|trainer.py:1636] 2022-12-13 06:27:25,113 >>   Num Epochs = 36
  [INFO|trainer.py:1637] 2022-12-13 06:27:25,113 >>   Instantaneous batch size per device = 256
  [INFO|trainer.py:1638] 2022-12-13 06:27:25,113 >>   Total train batch size (w. parallel, distributed & accumulation) = 256
  [INFO|trainer.py:1639] 2022-12-13 06:27:25,114 >>   Gradient Accumulation steps = 1
  [INFO|trainer.py:1640] 2022-12-13 06:27:25,114 >>   Total optimization steps = 104220
  [INFO|trainer.py:1642] 2022-12-13 06:27:25,114 >>   Number of trainable parameters = 77419008
  [INFO|trainer.py:1663] 2022-12-13 06:27:25,115 >>   Continuing training from checkpoint, will skip to saved global_step
  [INFO|trainer.py:1664] 2022-12-13 06:27:25,115 >>   Continuing training from epoch 2
  [INFO|trainer.py:1665] 2022-12-13 06:27:25,115 >>   Continuing training from global step 7500
  
  {'loss': 5.5206, 'learning_rate': 4.616340433697947e-05, 'epoch': 2.76}
  {'loss': 5.4737, 'learning_rate': 4.5924006908462866e-05, 'epoch': 2.94}
  {'loss': 5.382, 'learning_rate': 4.5684609479946274e-05, 'epoch': 3.11}
  {'loss': 5.34, 'learning_rate': 4.544473229706391e-05, 'epoch': 3.28}
  {'loss': 5.3154, 'learning_rate': 4.520485511418154e-05, 'epoch': 3.45}
  ......
  ......
  ......
  {'loss': 3.3099, 'learning_rate': 3.650930723469584e-07, 'epoch': 35.75}
  {'loss': 3.3077, 'learning_rate': 1.2521588946459413e-07, 'epoch': 35.92}
  {'train_runtime': 41498.9079, 'train_samples_per_second': 642.895, 'train_steps_per_second': 2.511, 'train_loss': 3.675059686432734, 'epoch': 36.0}
  ***** train metrics *****
    epoch                    =        36.0
    train_loss               =      3.6751
    train_runtime            = 11:31:38.90
    train_samples            =      741096
    train_samples_per_second =     642.895
    train_steps_per_second   =       2.511
  12/13/2022 17:59:05 - INFO - __main__ - *** Evaluate ***
  [INFO|trainer.py:2944] 2022-12-13 17:59:05,707 >> ***** Running Evaluation *****
  [INFO|trainer.py:2946] 2022-12-13 17:59:05,708 >>   Num examples = 3834
  [INFO|trainer.py:2949] 2022-12-13 17:59:05,708 >>   Batch size = 256
  100%|██████████| 15/15 [03:25<00:00, 13.69s/it]
  [INFO|modelcard.py:449] 2022-12-13 18:02:46,984 >> Dropping the following result as it does not have all the necessary fields:
  {'task': {'name': 'Translation', 'type': 'translation'}, 'metrics': [{'name': 'Bleu', 'type': 'bleu', 'value': 3.7831}]}
  ***** eval metrics *****
    epoch                   =       36.0
    eval_bleu               =     3.7831
    eval_gen_len            =       63.0
    eval_loss               =     4.5035
    eval_runtime            = 0:03:40.09
    eval_samples            =       3834
    eval_samples_per_second =     17.419
    eval_steps_per_second   =      0.068
  
  ```
  