©PaperWeekly 原创 · 作者 | 金金
单位 | 阿里巴巴研究实习生
研究方向 | 推荐系统
简介
近日,超大规模的智能模型越来越受到大家的关注,但是仅仅依赖于超大的计算资源并不足以完成这件事,技术上的精巧设计对模型性能和训练速度同样有着巨大的影响,本文包含最近的一些相关工作,包括编程实现框架、算法模型、微调技术以及具体的应用。
GLM:更通用的预训练模型
现有各种类型的预训练架构,主要存在如下的三种:
自回归模型如 GPT,从左往右学习的模型,在长文本的生成以及少样本学习能力很强(参数量大);缺点就是单向的注意力机制不能完全捕捉 token 的内在联系。
自编码模型如 BERT,双向的 transformer 作为编码器+去噪目标,在语言理解相关的文本表示效果很好。缺点是不能直接用于文本生成。
编码解码模型如 T5,编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务中表现良好(文本摘要,回答生成)。
然而,没有一个预训练框架对所有任务都执行得最好,这给模型开发和选择带来了不便。本文 [1] 提出了一个新的预训练框架 GLM(通用语言模型)来解决这个问题。
与之前的工作相比,本文体系结构有三个主要的优点:1)它在分类、无条件生成和条件生成任务上表现良好;2)它优于改进预训练-精调一致性的 BERT-like 分类模型;3)能很好地处理变长问题,其模型图如下:
整体来说与 BERT 相似,但是包含两个修改--重新安排了归一化和残差的顺序,在 largeBERT 模型中有效;替换前馈网络为线性网络。另外,GLM 采用了自回归空白填充,具体来说它清空输入中的多个跨度,为了捕捉跨度之间的内在联系,随机交换跨度的顺序。这里与 spanBERT 的区别是跨度的个数是不知道的;跨度的预测是自回归的。
而 mask 注意力矩阵如上图所示,从矩阵可以很明显看到,在 Part A 部分,采用的是自编码注意力,而在 Part B 部分,采用的是自回归注意力。GLM 的注意力就是这样将 2 部分矩阵进行拼接,形成了即有单向,又有双向的注意力的模型。
在下游任务微调上,将 NLU 中的分类任务定义为空白填充的生成任务。先将某些标签映射为某个词,然后将映射后的词进行 Blank 预测。这种方法不同于之前的预训练方法,预训练与微调的目标的不一致。如此一来,分类和生成都可以变成生成的任务,从而打破了 bert 不知道 mask 数量和位置的问题,并且假设 mask 之间是相关的,这样可以捕捉更多的依赖关系。
和其他模型比较来看,GLM