Que nous a dit ALBERT?

Préface

Avant que je ne sois occupé avec ma thèse de fin d'études, il est arrivé qu'ALBERT venait de sortir, et je pensais parler de cet article, mais j'étais vraiment paresseux et ce n'était pas facile d'obtenir un diplôme. Récemment, tout est arrivé à sa fin et je suis entré dans l'état d'obtention du diplôme du département bouddhiste, faisant de mon mieux, connaissant le sort du ciel.

Cet article décrit les modules en fonction de l'ordre du papier lui-même, discute de certains détails et propose enfin quelques opinions sur l'effet du modèle.

Une chose à noter est: ALBERT réduit la quantité de paramètres du modèle et réduit ainsi le temps d'apprentissage du modèle (frais de communication réduits), mais le temps de raisonnement prédictif du modèle ne diminue pas. Ce point doit être gardé à l'esprit et utilisé tout au long du texte.

Le but d'ALBERT

Comme mentionné au début de l'article, dans le domaine des modèles de langage pré-formation, augmenter le modèle peut souvent donner de bons résultats, mais cette amélioration est-elle sans fin? Une expérience détaillée a été menée dans [2], qui a répondu à cette question dans une large mesure. Enterrez d'abord une fosse ici, puis remplissez-la en quelques jours.

Le modèle de langage de pré-formation est déjà très vaste, et la plupart des laboratoires et des entreprises ne sont pas éligibles pour participer à ce jeu. Pour les grands modèles, une idée très superficielle est: comment compresser les grands modèles?  L'essence d'ALBERT est le produit de la compression du modèle BERT.

Si vous avez une bonne compréhension de la compression de modèle, vous devez savoir qu'il existe de nombreuses méthodes de compression de modèle, y compris l' élagage, le partage de paramètres, la décomposition de bas rang, la conception de la structure du réseau, la distillation des connaissances, etc. (ceci est une autre fosse, enterrez-la première). ALBERT n'a pas non plus échappé à ce framework. C'est en fait une idée plutôt d'ingénierie. Ses deux astuces de compression majeures sont également faciles à imaginer.

Trois innovations majeures

1. Paramétrage de l'intégration factorisée

L'astuce est essentiellement une opération de décomposition de bas rang , qui a pour effet de réduire les paramètres en réduisant la dimensionnalité de la partie Embedding. Dans le BERT original, en prenant Base comme exemple, les dimensions du calque Embedding et du calque masqué sont toutes deux de 768, mais nous savons que pour la représentation distribuée des mots, une dimension aussi élevée n'est souvent pas nécessaire, comme dans Word2Vec Utilisez 50 ou 300 dimensions plus souvent. Ensuite, une idée très simple est de réduire la quantité de paramètres en décomposant la partie Embedding, qui est exprimée par la formule comme suit:

image.png

  • V: taille du vocabulaire; H: dimension du calque caché; E: dimension du vecteur de mot

Prenons l'exemple de BERT-Base: la taille cachée dans Base est 768, la taille du vocabulaire est 3w, et la quantité de paramètres à ce moment est: 768 * 3w = 23040000. Si la dimension de l'incorporation est modifiée à 128, alors la quantité de paramètre de la couche d'incorporation à ce moment est: 128 * 3w + 128 * 768 = 3938304. La différence entre les deux est de 19101696, soit environ 19M. Nous pouvons voir qu'en fait, le paramètre Embedding est passé du 23M d'origine au 4M actuel. Il semble que le changement soit particulièrement important. Cependant, quand on regarde la situation globale, le paramètre de BERT-Base est 110M, et la réduction de 19M ne peut produire aucune révolution. Par conséquent, on peut dire que la factorisation de la couche Embedding n'est pas en fait le moyen principal pour réduire la quantité de paramètres.

Notez que j'ai délibérément ignoré la partie du paramètre de Position Embedding, considérant principalement que 512 est un peu insignifiant par rapport à 3W.

En 4.4, l'article traite en détail du choix des dimensions des vecteurs de mots:

image

À partir de la figure ci-dessus, nous pouvons voir que les avantages d'augmenter la dimension du vecteur de mot sont très faibles après 128, ce qui fait également écho au point ci-dessus.

2. Partage des paramètres entre les couches

该Trick本质上就是对参数共享机制在Transformer内的探讨。在Transfor中有两大主要的组件:FFN与多头注意力机制。ALBERT主要是对这两大组件的共享机制进行探讨。

image

论文里采用了四种方式: all-shared,shared-attention,shared-FFN以及 not-shared。我们首选关注一下参数量,not-shared与all-shared的参数量相差极为明显,因此可以得出共享机制才是参数量大幅减少的根本原因。然后,我们看到,只共享Attention参数能够获得参数量与性能的权衡。最后,很明显的就是,随着层数的加深,基于共享机制的 ALBERT 参数量与BERT参数量相比下降的更加明显。

此外,文章还说道,通过共享机制,能够帮助模型稳定网络的参数。这点是通过L2距离与 cosine similarity 得出的,俺也不太懂,感兴趣的可以找其他文章看看:

image

3. SOP 替代 NSP

SOP 全称为 Sentence Order Prediction,其用来取代 NSP 在 BERT 中的作用,毕竟一些实验表示NSP非但没有作用,反而会对模型带来一些损害。SOP的方式与NSP相似,其也是判断第二句话是不是第一句话的下一句,但对于负例来说,SOP并不从不相关的句子中生成,而是将原来连续的两句话翻转形成负例。

很明显的就可以看出,SOP的设计明显比NSP更加巧妙,毕竟NSP任务的确比较简单,不相关句子的学习不要太容易了。论文也比较了二者:

image

BERT vs ALBERT

1. 从参数量级上看

image

首先,参数量级上的对比如上表所示,十分明显。这里需要提到的是ALBERT-xxlarge,它只有12层,但是隐层维度高达4096,这是考虑到深层网络的计算量问题,其本质上是一个浅而宽的网络。

2. 从模型表现上看

image

首先,我们看到 ALBERT-xxlarge的表现完全超过了BERT-large的表现,但是BERT-large的速度是要比ALBERT-xxlarge快3倍左右的。

其次,BERT-xlarge的表现反而变差,这点在[2]中有详细探讨,先略过不表。

Tricks

其实,最近很多预训练语言模型文章中都相当程度上提到了调参以及数据处理等Trick的重要性,可惜我等没有资源去训,本来想在结尾将本文的Trick都提一下,但由于无法形成对比,因此作罢。等过段时间将各大预训练语言模型中的Trick‘汇总一下再说吧。

最后

其实,从模型创新的角度来看,ALBERT其实并没有什么很大的创新,如果是一个轻量级的任务,相信这种模型压缩的方式早就做烂了。可惜的是,计算资源限制了绝大多数的实验室和公司,只能看头部公司笑傲风云。

此外,这篇文章本质上就是一个工程性质的文章,我觉得其中的一些Trick都十分的有借鉴意义,等我有时间再搞搞吧。

觉得写的还行的,点赞呀,老铁

Reference

如何看待瘦身成功版BERT——ALBERT?

[1] ALBERT: A Lite BERT for Self-supervised Learning of Language Representations

[2] T5 - Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer




本文由作者授权AINLP原创发布于公众号平台,点击'阅读原文'直达原文链接,欢迎投稿,AI、NLP均可。





关于AINLP


AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。


image


Je suppose que tu aimes

Origine blog.51cto.com/15060464/2675596
conseillé
Classement