论文摘要: 我们提出了一个大型的可调神经会话响应生成模型DIALOGPT(对话生成预训练Transformer)。经过2005年至2017年期间从Reddit评论中提取147M大小的类似的对话内容,DialoGPT扩展了Hugging Face PyTorch transformer,在单轮对话设置中实现了在自动和人类评估性方面都接近人类。我们表明,利用DialoGPT的会话系统比基线系统生成更相关、更有内容和上下文一致的响应。预训练的模型和训练方法已经公开发布,以促进对神经响应生成的研究和更智能的open-domain对话系统的开发。

代码链接https://github.com/microsoft/DialoGPT

成为VIP会员查看完整内容
6+
0+

相关内容

计算学习理论(Computational learning theory)研究的是关于通过“计算”来进行“学习”的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。

题目: IMAGEBERT: CROSS-MODAL PRE-TRAINING WITH LARGE-SCALE WEAK-SUPERVISED IMAGE-TEXT DATA

摘要: 本文介绍了一种新的用于图像-文本联合嵌入的视觉语言预训练模型图像BERT。我们的模型是一个基于Transformer的模型,它以不同的模态作为输入,对它们之间的关系进行建模。该模型同时进行了四项任务的预训练:掩蔽语言建模(MLM)、掩蔽对象分类(MOC)、掩蔽区域特征回归(MRFR)和图像文本匹配(ITM)。为了进一步提高预训练的质量,我们从Web上收集了一个大规模的弱监督图像-文本(LAIT)数据集。我们首先在这个数据集上对模型进行预训练,然后对概念字幕和SBU字幕进行第二阶段的预训练。实验结果表明,多阶段预训练策略优于单阶段预训练策略。我们还在图像检索和文本检索任务上对预先训练好的ImageBERT模型进行了调优和评估,并在MSCOCO和Flickr30k数据集上获得了最好的效果。

成为VIP会员查看完整内容
4+
0+

过去的一年里,深度神经网络开创了自然语言处理的激动人心的时代。 使用预训练模型的领域的研究已经导致许多NLP任务的最新结果的巨大飞跃,例如文本分类,自然语言推理和问答。一些关键的里程碑是ELMo,ULMFiT和OpenAI Transformer。 这些方法都允许我们在大型数据库(例如所有维基百科文章)上预先训练无监督语言模型,然后在下游任务上微调这些预先训练的模型。也许这一领域今年最激动人心的事件是BERT的发布,这是一种基于多语言Transformer的模型,它在各种NLP任务中取得了最先进的成果。 BERT是一种基于Transformer架构的双向模型,它以更快的基于注意的方法取代了RNN(LSTM和GRU)的顺序特性。 该模型还预训练了两个无监督的任务,掩模语言建模和下一个句子预测。 这允许我们使用预先训练的BERT模型,通过对下游特定任务(例如情绪分类,意图检测,问答等)进行微调。

我们将使用Kaggle的垃圾评论分类挑战来衡量BERT在多标签文本分类中的表现。

我们从哪里开始?

  • Google Research最近公开了BERT的张量流实现,并发布了以下预先训练的模型:

  • BERT-Base, Uncased: 12层, 768个隐层, 12-heads, 110M 个参数

  • BERT-Large, Uncased: 24层, 1024个隐层, 16-heads, 340M 个参数

  • BERT-Base, Cased: 12层, 768个隐层, 12-heads , 110M 个参数

  • BERT-Large, Cased: 24层, 1024个隐层, 16-heads, 340M 个参数

  • BERT-Base, Multilingual Cased (New, recommended): 104 种语言, 12层, 768个隐层, 12-heads, 110M 个参数

  • BERT-Base, Chinese: Chinese Simplified and Traditional, 12层, 768个隐层, 12-heads, 110M 个参数

我们将使用较小的Bert-Base,无框架模型来完成此任务。 Bert-Base模型有12个层,所有文本都将由分词器转换为小写。

我们将使用HuggingFace的优秀PyTorch BERT端口,可在https://github.com/huggingface/pytorch-pretrained-BERT获得。 我们已经使用HuggingFace的repo中提供的脚本将预先训练的TensorFlow检查点转换为PyTorch权重。

我们的实现很大程度上受到BERT原始实现中提供的run_classifier示例的启发。

数据准备

我们在类InputExample 准备数据:

  • text_a: 评论内容
  • text_b:未用到
  • labels: 训练数据对应为标签,测试数据为空

分词

BERT-Base,无监督模型使用30,522个单词的词汇。 分词过程涉及将输入文本拆分为词汇表中可用的标记列表。 为了处理词汇表中不可用的单词,BERT使用一种称为基于BPE的WordPiece标记化技术。 在这种方法中,词汇表之外的词逐渐被分成子词,然后该词由一组子词表示。 由于子词是词汇表的一部分,我们已经学习了表示这些子词的上下文,并且该词的上下文仅仅是子词的上下文的组合。 有关此方法的更多详细信息,请参阅使用子字词单位的稀有单词的神经机器翻译模型。 https://arxiv.org/pdf/1508.07909

训练

训练循环与run_classifier.py中原始BERT实现中提供的循环相同。 我们训练了4个时期的模型,批量大小为32,序列长度为512,即预训练模型的最大可能性。 根据原始论文的建议,学习率保持在3e-5。

我们有机会使用多个GPU。 所以我们将Pytorch模型包装在DataParallel模块中。 这使我们能够在所有可用的GPU上传播我们的训练工作。

由于某种原因我们没有使用半精度FP16技术,具有logits loss函数的二进制crosss熵不支持FP16处理。 这并不会影响最终结果,只需要更长的时间训练。

评估指标

我们调整了精度度量函数以包括阈值,默认设置为0.5。

对于多标签分类,更重要的指标是ROC-AUC曲线。 这也是Kaggle比赛的评估指标。 我们分别计算每个标签的ROC-AUC。 我们还在个别标签的roc-auc分数上使用微观平均。

我们进行了一些实验,只有一些变化,但更多的实验得到了类似的结果。

实验结果

训练损失:0.022,验证损失:0.018,验证准确度:99.31%

各个标签的ROC-AUC分数:

  • toxic: 0.9988
  • severe-toxic: 0.9935
  • obscene: 0.9988
  • threat: 0.9989
  • insult: 0.9975
  • identity_hate: 0.9988
  • Micro ROC-AUC: 0.9987

代码下载链接https://pan.baidu.com/s/1gzHsnifJ-V_d_g9rQ8YV7Q 提取码:nm5t

成为VIP会员查看完整内容
26+
0+

论文题目: A Pre-training Based Personalized Dialogue Generation Model with Persona-sparse Data

论文摘要: 赋予对话系统以人物角色是实现更人性化对话的关键。然而,由于在自然语言中很难体现个性,以及在大多数对话语料库中观察到的人物稀疏性问题,这一问题还远未得到很好的探讨。本论文提出了一种基于预训练的个性化对话模型,该模型可以利用人物角色稀疏对话数据生成一致响应。该方法利用预先训练好的语言模型来初始化编解码器,并通过将说话人的角色和对话历史一起编码,设计了个人属性嵌入来建模更丰富的对话上下文。此外,为了在解码过程中合并目标人物角色并平衡其贡献,在解码器中设计了注意路由结构,以使用动态预测权重合并从目标人物角色提取的特征和对话上下文。我们的模型可以在训练过程中统一使用人物角色稀疏对话,也可以控制推理过程中要显示的人物角色相关特征的数量。无论是自动评估还是手动评估都表明,该模型在使用人物角色稀疏数据生成更一致和人物角色一致的响应方面优于最新方法。

成为VIP会员查看完整内容
8+
0+
Top