UniLM
UniLM是微软研究院推出的预训练语言模型,能够同时处理自然语言理解和文本生成任务,利用一个共享的Transformer架构。你可以只调优一个checkpoint,用于阅读任务如问答,也适用于写作任务如摘要或对话,而无需维护单独的编码器和解码器模型。这些代码和预训练权重通过microsoft/unilm GitHub仓库以MIT许可协议发布。
BERT风格的模型擅长阅读理解,但在生成方面需要额外的解码器堆叠。UniLM训练一种Transformer模型,配备三种注意力_mask模式:单向、双向和序列到序列。这样的设计让相同的权重在GLUE和SQuAD数据集上与BERT竞争,同时在2019年设定了摘要和问答生成的基准测试——这是许多同期模型未曾打破的分界。
机器学习研究人员和自然语言处理工程师在需要一个代码库中既有理解也有生成任务的公开基准、训练脚本和checkpoint文件时会选择使用UniLM。虽然该仓库还涵盖了后续版本如UniLMv2(伪掩码语言模型,ICML 2020),但v1仍然是NeurIPS 2019论文中描述的原始统一掩码方法的参考版本。
三种预训练目标(单向、双向、序列到序列)共享一个Transformer主干网络
CNN/DailyMail抽象摘要ROUGE-L达到40.51,较此前工作提升了2.04点
CoQA生成式问答在公开基准上的F1得分为82.5
SQuAD问题生成BLEU-4得分为22.12,采用束搜索解码
预训练检查点和PyTorch训练脚本可在microsoft/unilm仓库获取(22.2k GitHub星标)
MIT许可证,UniLM v1和UniLM v2代码路径均包含在同一个开源仓库中
一个预训练模型通过微调后覆盖理解和生成任务。
在GLUE、SQuAD、CNN/DailyMail和CoQA上发布了基准测试成绩,并附可复现的脚本。
通过microsoft/unilm GitHub仓库提供MIT许可的代码和模型检查点下载。
该仓库发展成包含UniLMv2及相关发布内容的微软基础模型中心。
需要 PyTorch、CUDA GPU 以及手动设置,而非托管的 API。
原始 UniLM v1 训练脚本针对较旧的 pytorch-transformers v0.4.0 依赖。
无托管推理服务;需在您自己的硬件上运行微调和解码。
什么是UniLM?
UniLM是微软研究院推出的统一预训练语言模型,它通过对一个Transformer进行微调,实现自然语言理解和生成的双重功能。该模型发表于NeurIPS 2019论文,并以开源代码形式托管在GitHub上。
UniLM免费使用吗?
是的,UniLM免费使用。microsoft/unilm仓库采用MIT许可证发布,您可以免费下载预训练检查点和训练脚本,无需付费。
UniLM可以微调用于哪些任务?
UniLM支持针对自然语言理解任务(如GLUE和SQuAD问答)以及自然语言生成任务(如CNN/DailyMail摘要、SQuAD问句生成、CoQA生成式问答和DSTC7对话回复生成)进行微调。
UniLM与BERT有何不同?
BERT使用双向注意力机制仅用于理解任务。UniLM在此基础上增加了单向和序列到序列的注意力掩码,使相同的预训练权重在微调后同时支持阅读理解和文本生成。
在哪里下载UniLM预训练模型?
预训练的UniLM v1检查点和微调代码位于microsoft/unilm GitHub仓库的unilm-v1文件夹中。README文件中提供了Google Drive上base和large模型检查点文件的链接。
UniLM代码采用什么许可证?
UniLM代码在microsoft/unilm仓库中采用MIT许可证发布。部分代码基于pytorch-transformers v0.4.0,许可证条款详见仓库根目录的LICENSE文件。

