优雅の使用transformer系列之gpt2-chitchat

前言

 目前来说gpt2在生成式这块效果还是比较突出的。在尝试 gpt2-chitchat 这个项目的时候,聊得挺好,首先感谢作者的贡献,好像闲聊数据还@了我。但是感觉代码这块还不够优雅,所以就基于pytorch-lightning重写了下。

gpt2-chitchat

 代码传送:gpt2-chitchat-pl
 关于模型介绍、效果展示可以直接访问原作者的README.md。我重写之后有几个参数这里说明下吧:

  • train_mmi: 默认是False,会训练dialogue_model;如果是设为True,就是训练mmi_model
  • use_pretrain: 默认是False,意思是不使用预训练模型。如果设置为True的话,就需要将制定对应的dialogue_model_path和mmi_model_path
  • dialogue_model_path: 这里可以下载 yangjianxin1 提供的dialogue_model,然后指定对应的路径
  • mmi_model_path: 同dialogue_model_path一个意思
  • train_raw_path: 训练数据
  • model_config: gpt2 config配置文件
  • vocab_path: 字典文件

 当你设定好了对应的参数后就可以重头训练或者微调模型了

  • 重头训练dialogue model
python train.py --train_mmi=False --use_pretrain=False
  • 微调dialogue model
python train.py --train_mmi=False --use_pretrain=True --dialogue_model_path=/path/to/dialogue_pre_model
  • 重头训练mmi model
python train.py --train_mmi=True --use_pretrain=False
  • 微调mmi model
python train.py --train_mmi=True --use_pretrain=True --mmi_model_path=/path/to/mmi_pre_model

上面是训练模型的参数和命令。至于消费模型的代码是run_interact.py,对应的参数有:

  • output_dir: 训练好模型的路径
  • batch_size: 批量生成response的个数, 然后经过MMI模型进行筛选
    命令是:python run_interact.py --output_dir=/path/to/your/model_path

结束语

 具体的细节可以查看和调试代码,感觉水了一篇文章。无论是dialogue model还是mmi model模型用的都是seq2seq,只不过输入不一样,至于多轮也就是把history用[SEP]拼接了一下,mmi将语料做了个翻转,就酱(可能这就是使用框架带来的便利吧,减少了自己的关注点)。本来想写一篇关于ner的,也是没啥好说的,所以可以直接看代码吧run_ner_pl.py,会存在个问题,因为是直接使用的token classification,换成crf是否会好点。

你可能感兴趣的:(优雅の使用transformer系列之gpt2-chitchat)