Press "Enter" to skip to content

你对NLP的迁移学习爱的有多深?21个问题弄懂最新的NLP进展。

作者: Pratik Bhavsar 编译:ronghuaiyang

 

导读

 

如果这21个问题你全部了解的话,你对最新的NLP进展的了解已经过关了。

 

 

2018年10月BERT发布之后发生了很多事情。

 

你知道BERT的掩码语言模型是老派模型吗?

 

你知道注意力的计算不需要平方时间复杂度吗?

 

你知道你可以偷用谷歌的模型吗?

 

我们这一代人中一些最聪明的人一直在紧张地工作,并有大量的产出!NLP现在是最性感的领域:yum:

 

NLProc已经走了很长的路。

 

我们需要另一个总结!!

 

这20个问题会测试你对NLP当前状态的更新程度的了解,并为任何技术讨论做好准备。

 

什幺是最新的预训练模型(PTM)?

 

https://arxiv.org/pdf/2003.08271.pdf

PTMs的训练任务是什幺?

 

https://arxiv.org/pdf/2003.08271.pdf

在GLUE上,最好的PTMs是什幺?

 

https://arxiv.org/pdf/2003.08271.pdf

更多的数据是不是总是可以得到更好的语言模型?

 

T5论文 说不是的,质量比数量更重要。

 

 

https://arxiv.org/pdf/1910.10683.pdf

 

什幺tokenisation方法对于训练语言模型是最好的?

 

这篇文章:https://arxiv.org/pdf/2004.03720.pdf,说一种新的方法 Unigram LM 要比BPE和WordPiece更好一些。

 

训练语言模型的最好的任务是什幺

 

目前最好的方法是 ELECTRA →在生成器的帮助下替换输入token,然后使用识别器来预测哪个token被替换了。

 

https://arxiv.org/pdf/2003.10555.pdf

https://arxiv.org/pdf/2003.10555.pdf

Also T5论文 还说, dropping a span为3是最好的。

 

https://arxiv.org/pdf/1910.10683.pdf

Transformer训练的时候是否需要逐步的解冻参数?

 

T5 论文 说不需要。

 

https://arxiv.org/pdf/1910.10683.pdf

如果你有固定的训练预算,你会通过改变什幺来得到更好的语言模型?

 

T5 paper 建议同时提升训练的步数和模型的大小。

 

https://arxiv.org/pdf/1910.10683.pdf

如果你的序列长度超过了512,你会用什幺模型?

 

Transformer-XL或者Longformer

 

Transformer的处理时间随着序列的长度是怎幺扩展的?

 

平方扩展。

 

如何降低长文档的transformers处理时间,因为它是序列长度的二次函数?

 

Longformer使用了一种随着序列长度线性扩展的注意力机制。

 

https://arxiv.org/pdf/2004.05150.pdf

Longformer在语义搜索中对编码长文档非常有用。下表显示了到目前为止所做的工作。

 

https://arxiv.org/pdf/2004.05150.pdf

BERT表现这幺好是因为注意力层吗?

 

论文 Attention is not Explanation 认为注意力没有正确地与输出相关,因此我们不能说由于注意机制,模型的表现更好。

 

如果我们去掉一个注意力头,BERT的表现会下降很多吗?

 

不会 —见论文 Revealing the Dark Secrets of BERT

 

如果我们去掉一层,BERT的表现会下降很多吗?

 

不会 —见论文 Revealing the Dark Secrets of BERT

 

如果我们随机初始化BERT,BERT的表现会下降很多吗

 

不会 —见论文 Revealing the Dark Secrets of BERT

 

我们真的需要模型压缩吗?

 

也许不是!这篇文章的笔记:http://mitchgordon.me/machine/learning/2020/01/13/do-we-really-need-model-compression.html。

 

“模型压缩技术通过解释过度参数化模型趋向于收敛的结果类型,给我们一个关于如何训练适当参数化模型的提示。模型压缩有很多种类型,每一种都利用了一种不同类型的“简单性”,这种“简单性”通常在训练过的神经网络中可以找到:

 

许多权重接近于零(修剪)

 

权重矩阵是低秩的(权重分解)

 

权重能只用几个位表示(量化)

 

层通常学习类似的功能(权重共享)

 

如果暴露为API,我们可以偷一个模型来用吗?

 

可以的Y → 在这里解释了:http://www.cleverhans.io/2020/04/06/stealing-bert.html

 

当前蒸馏的最新进展是什幺样的?

 

https://arxiv.org/pdf/2003.08271.pdf

更大的Transformer模型训练起来比小的更快?

 

更大的模型更快,见这篇文章:https://bair.berkeley.edu/blog/2020/03/05/compress/.

 

student-teacher框架的应用是什幺?

 

Knowledge distillation 用来产生更小的模型。

 

https://arxiv.org/pdf/1909.10351.pdf

对于不同的语言产生相似句子嵌入:https://arxiv.org/pdf/2004.09813v1.pdf

 

https://arxiv.org/pdf/2004.09813v1.pdf

如何设计模型?哪些是更重要的参数

 

这是一个很难回答的问题!所有这些都在“Scaling Laws for Neural Language Models”:https://arxiv.org/pdf/2001.08361.pdf中得到了解释

 

测试损失 Vs 计算

 

测试损失 Vs 数据集大小

 

测试损失 Vs 参数

 

要设计和训练一个模型,首先要确定架构。然后得到它的参数量。由此,你可以计算出损失。然后选择所需的数据大小和计算量。

 

看一下图中的比例方程。

 

Scaling Laws for Neural Language Models

最后…

 

我希望你们能像我一样通过这些问题学到很多东西。要成为更好的NLP工程师,我们需要对快速发展的迁移学习有更深的理解。我相信这些想法会让你忙上几周:smiley::grimacing::sunglasses:

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注