来了来了,它来了!它带着全新的tokenizer API、TensorFlow改进以及增强的文档和教程来了!
G站上最受欢迎的NLP项目,AI界无人不知的最先进NLP模型Transformer刚刚推出了第三代。
这次更新力度可谓诚意满满,不仅带来了2代的升级,同时还增加了一些新的功能和特性。下面我们就来看看都更新了哪些项目吧。
首先我们来看看和Transformer v2相比,v3做出了哪些比较令人瞩目的更新。
BERT被一分为二
BERT被分割为BertForMaskedLM和BertLMHeadModel,因此,以后就不能再拿BertForMaskedLM做因果语言建模,也不能接受lm_labels参数。
Trainer从类转为方法
v3还对Trainer数据整理器做了一个改动,将其从一个类改成了一个方法。
直接设置tokenizer的特殊标记属性
在v3中,你可以直接设置tokenizer的特殊标记属性,例如tokenizer.mask_token = '<mask>'。目前v2中,只是将标记关联到tokenizer的属性,但如果该标记不在词汇表中,则不会将其添加到词汇表中,必须使用 tokenizer.add_special_tokens() 和 tokenizer.add_tokens() 方法才能添加标记。
prepare_for_model被移除
作为新的 tokenizer API 的一部分,prepare_for_model 方法被移除。
随着rust tokenizers的加入,tokenizers在第2版中发展迅速。现在,它有了一个更简单、更灵活的 API,在 Python(slow)和 Rust(fast)tokenizers 之间进行了调整。新的 API 让你可以更深入地控制截断和填充,允许动态填充或填充到 8 的倍数。
重新设计的 API 详细解释:
https://huggingface.co/transformers/master/preprocessing.html。
下面我们来看看这些显著的变化:
针对TensorFlow的改进
全新版本中,针对TensorFlow进行了非常大的升级:
新增MobileBERT
《MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices 》中的MobileBERT被添加到PyTorch和TensorFlow的库中。
论文地址:
https://arxiv.org/abs/2004.02984
增加了一个单一的检查点:mobilebert-uncased,也就是按照我们的 API 转换的 uncased_L-24_H-128_B-512_A-4_F-4_OPT 检查点。
增强examples/seq2seq内容
全新版本中,将旧的 examples/summarization和 examples/translation文件夹整合到了一个新的examples/seq2seq文件夹中。
Distilbart
新增BERT Loses Patience
基准
对基准脚本进行了整合,并增加了一些功能。
针对Tensorflow增加推理:CPU、GPU、GPU+XLA、GPU+急切模式、CPU+急切模式、TPU。
针对PyTorch增加了推理和训练:
领取专属 10元无门槛券
私享最新 技术干货