【任务型对话】任务型对话中的自然语言生成
- 预训练1:首先在大规模的无标注文本上预训练。这一步和GPT-2一致,
- 预训练2:为了让生成的文本更贴近任务导向型对话的要求,模型还进一步在标注的数据集上预训练。这里的数据来自Schema-Guided Dialogcorpus, MultiWOZ corpus, Frame corpus和Facebook Multilingual Dialog Corpus,这些都是人工标注好的人物对话型数据集,来自各个领域,共计约400K个样本。
- 微调:最后,只需要在特定领域的少样本数据集下微调即可。
其中关键就是如何将dialog Act编码,其实可以看到她的方式很简单粗暴,直接dialog act作为一个句子输入到模型,作为prompt,然后指导后续的句子生成。
另外,预训练阶段2其实也挺重要的,保证了模型能够学习到对话语料,在做具备一定通用对话的能力,在做领域迁移的时候不会太差。
从上图可以看到,整体训练的数据量还是很小的。
最后看指标,以及生成的case,还是挺靠谱的,整体方法在任务型对话的NLG任务上,应该是够用了(闲聊估计是不太够),本人也在业务中实践也是比较靠谱。
中文GPT模型:预训练一阶段目前已经有中文的gpt2模型,预训练2阶段可能需要中文的对话数据集,目前百度千言开放了一些对话数据集,可以在预训练阶段2用到。微调领域生成一些应该就可以。
https://github.com/Morizeyao/GPT2-Chinese:12层的decoder。
https://github.com/imcaspar/gpt2-ml