美文网首页
优雅の使用transformer系列之gpt2-chitchat

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

作者: colin_gao | 来源:发表于2020-07-21 17:22 被阅读0次

    前言

     目前来说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

          本文链接:https://www.haomeiwen.com/subject/qpfrfktx.html