仅一个API,直接调用BERT、GPT、GPT-2、Transfo-XL、XLNet、XLM等6大框架,包括27个预训练模型。使用简单且功能强大。一个API来统治它们。3天前,著名的、最先进的自然语言处理预训练模型库项目pytorch-pretrained-bert更名为Pytorch-Transformers并重新加载,1.0.0版本诞生。仅需一个API即可直接调用BERT、GPT、GPT-2、Transfo-XL、XLNet、XLM等6大框架,包括27种预训练模型。使用简单且功能强大。目前包括以下模型的PyTorch实现、预训练模型权重、运行脚本和转换工具:BERT,论文:“BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding”,论文作者:JacobDevlin,Ming-WeiChang、KentonLee、KristinaToutanovaOpenAI的GPT,论文:“通过生成式预训练改善语言理解”,论文作者:AlecRadford、KarthikNarasimhan、TimSalimans、IlyaSutskeverOpenAI的GPT-2,论文:“语言模型是无监督的多任务Learners”,论文作者:AlecRadford、JeffreyWu、RewonChild、DavidLuan、DarioAmodei、IlyaSutskeverGoogle和CMU的Transformer-XL,论文:“Transformer-XL:AttentiveLanguageModelsBeyondaFixed-LengthContext”,论文:ZihangDai、ZhilinYang、YimingYang、JaimeCarbonell、QuocV.Le、RuslanSalakhutdinov。Google和CMU的XLNet,论文:“XLNet:GeneralizedAutoregressivePretrainingforLanguageUnderstanding”,论文:ZhilinYang、ZihangDai、YimingYang、JaimeCarbonell、RuslanSalakhutdinov、QuocV.LeFacebookXLM,Paper:"Cross-lingualLanguageModelPretraining",PaperAuthors:GuillaumeLample,AlexisConneau这些实现已经在多个数据集上进行了测试(参见示例脚本),性能与原始实现相当,例如BERTChineseQuanciOverlay在SQuAD数据集上的F1分数为93;OpenAIGPT在RocStories上的F1分数为88;Transformer-XL在WikiText103上的困惑度为18.3;XLNet在STS-B上的Pearson相关系数为0.916有27个预训练模型可用,下面是这些模型的完整列表,以及每个模型的简短介绍。BERT-base和BERT-large分别是110M和340M参数模型,很难在单个GPU上以推荐的batchsize对它们进行微调以获得良好的性能(大多数情况下batchsize为32)。为了帮助微调这些模型,作者提供了几种可以在微调脚本中激活的技术run_bert_classifier.py和run_bert_squad.py:gradient-accumulation、multi-gputraining、distributedtraining(分布式训练)和16-bits训练(16位训练)。注意这里要使用分布式训练和16位训练,需要安装NVIDIA的apexextension。作者在文档中展示了几个基于原始BERT实现和扩展的微调示例,即:用于九种不同GLUE任务的序列级分类器;问答数据集SQUAD上的标记级分类器;SWAG分类语料库一个序列级的多项选择分类器;另一个目标语料库上的BERT语言模型。此处仅显示GLUE结果:该项目在Python2.7和3.5+上进行了测试(示例仅在python3.5+上进行了测试)和PyTorch0.4.1到1.1.0。项目地址:https://github.com/huggingface/pytorch-transformers
