美文网首页
轻量级BERT模型ALBERT

轻量级BERT模型ALBERT

作者: xieyan0811 | 来源:发表于2020-03-13 12:13 被阅读0次

    BERT有很多改进版本,ALBERT是一个轻量化版本。ALBERT源自2020年的发表论文《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》,论文地址:https://arxiv.org/pdf/1909.11942.pdf。从题目可以看出,论文重点是轻量化BERT模型,以及优化了半监督学习,本文主要关注轻量化模型部分。

    目前NLP的高级模型BERT、GPT-2都基于Pretrain/fine-tune模式,先使用无监督学习的海量文本预训练出一个带有“语言常识”的大模型,然后再根据具体任务调优,这就完美解决了具体任务训练集不足的问题。模型往往拥有千万或亿级的参数,目前的趋势是随着模型功能能越来越强大,模型的规模也越来越大,这使普通开发者越发无法企及。

    随着BERT模型越来越频繁地被使用到真实场景中,模型的速度、规模、硬件逐渐成为瓶颈。预训练模型一般都规模庞大,在后期调优以及调用模型时也都需要花费大量的内存、算力和时间。ALBERT在基本保证模型质量的前提下把模型缩小到BERT-LARGE的1/18(18M/334M),训练提速1.7倍。

    原理

    ALBERT全称是 A Lite BERT,轻量级的BERT,它使用了两种技术来简化参数:

    分解了词嵌入(Embedding)参数

    从原理来看,词嵌入表示的是词含义与上下文无关,而隐藏层表示的是词之间的组合含义,句子越长它的信息量越丰富,后者更加复杂,也需要更多参数。如果词表V非常大(词多),需要V×E空间存储参数,如果保持词嵌入层大小E与隐藏词H的大小一致,当H变大时,VxE也跟着迅速变大。因此,论文作者将原来词嵌入层大小恒等于隐藏层大小:E≡H,改为:H>>E。这样就减少了参数,也可以支持未来使用更大的词表,比如对中文来说,词为单位比以字为单位效果更佳,但词量又比较大。 当前BERT、GPT-2模型的隐藏层大小动辄512、768维,而腾讯词向量200维就可以很好地描述800多万词条的词性。因此,论文作者将词过嵌入过程从原来的V->H分解成:先把词V映射到E(V->E),再由E映射到H(E->H),使其复杂度从O(V×H)降到了O(V×E+E×H),当E比H小很多时其优势尤为明显。

    共享了交叉层(cross-layer)参数

    ALBERT与BERT原理一样,都沿用了Transformer模型的方案,堆叠了多个Encoder层,BERT标准版12层,BERT-LARGE版24层来说。ALBERT共享了所有层的参数,使参数数据大幅减少。 论文作者对比了LARGE模型24层,每一层的输入与输出的L2距离以及cosine相似性,如下图所示。

    可以看到,共享了参数之后ALBERT比BERT表现更加平滑稳定, 笔者个人认为:多层共享参数方法有点像RNN,BERT中每一层(layer)提取出不同层次的关系(有的在词法层,有的在词义层),由于参数足够多,存储在参数矩阵中的有效信息可能是稀疏的,因此将多层参数存储在一起,并没有产生严重的互相影响。

    除了简化参数,ALBERT还在Next-sentence prediction (NSP)方面对BERT做了一些训练方法上的优化,不是本篇重点,有兴趣的读者请直接查看论文。 效果

    下面列出了ALBERT与BERT的对比效果,最后两列分别是二者在多者任务中的平均分和速度对比。可以看到,其模型参数显著减少,而计算提度相对没有那么明显,这是由于模型由于共享了参数,而层数和对应层的计算量没变,只减小了Embedding的计算量。也可以从表中看到,简化后模型效果相对于BERT变化不大。文中还针对不同的共享方法,以及不同Embedding大小提供了大量实验数据,详见论文。

    代码

    TensorFlow实现(官方源码):
    https://github.com/google-research/ALBERT

    Pytorch实现(2.3.0以上版本支持ALBERT):
    https://github.com/huggingface/transformers

    中文版TensorFlow:
    https://github.com/brightmart/albert_zh

    中文模型:
    https://storage.googleapis.com/albert_models/albert_base_zh.tar.gz

    ALBERT用法与BERT基本一致。

    相关文章

      网友评论

          本文标题:轻量级BERT模型ALBERT

          本文链接:https://www.haomeiwen.com/subject/ifwqshtx.html