1. 摘要
尽管大语言模型现在已经被广泛的应用于各种任务,但是目前对其并没有一个很好的认知。为了弄清楚删除和重组预训练模型不同层的影响,本文设计了一系列的实验。通过实验表明,预训练语言模型中的lower和final layers与中间层分布不一致,并且中间层有着惊人的一致性。
2. 模型和benchmark
模型:BERT-Large和Llama2 llama-7B:32layers, 每层包括202M参数 llava-13B:40layers llava-70B:80layers BERT-large:24layers和340M参数 benchmark for llama2 ARC:science exam question HellaSwag:commonsense GSM8K:Math Word Problems WinoGrande:Winograd Schema Challenge LAMBADA:word prediction,measures perplexity benchmark for bert: GLUE CoLA (Corpus of Linguistic Acceptability): Acceptability judgments drawn from linguistictheory. MRPC (Microsoft Research Paraphrase Corpus): Semantic equivalence for news sentences. QNLI (Stanford Question Answering Dataset): Question answering from paragraphs. RTE (The Recognizing Textual Entailment): Textual entailment SST2 (The Stanford Sentiment Treebank): Sentiment prediction. STSB (The Semantic Textual Similarity Benchmark): Sentence pair similarity. WNLI (The Winograd Schema Challenge): Sentence referent selection.
3. 实验
3.1 Do layers “speak the same language”?
**实验:**跳过某层或将前后两层调换顺序,实验结果如下图所示:
从上图中可以看出,对中间的模型层调换前后2层顺序及跳过某层,在benchmark上效果波动不大;但first和last few layers则相反。因此,可以推断出middle layer和first及last few layers有不同的表征空间,且中间层间的表征空间比较相似。
为了更进一步验证这个猜想,衡量了在benchmark上不同层hidden state的activation值间的cosine similarity。结果如下图所示:
从上图中可以看出,模型基本有三种表征空间,“beginning”,“middle”和“ending”。另外,“beginning”层和“middle”层的层数似乎随着模型总层数的增加而增加,而“ending”层则会固定到单层上。
3.2 Are all the layers necessary?
实验:跳过N层,将N+1层的输出作为T-N层的输入,T为模型总层数。=> skip
从上图中可以看出,当有少量的层被跳过时,模型效果并没有降低很多。
3.3 Are middle layers all doing the same thing?
虽然中间层表征空间是一样的,那么是否表示这些层是冗余的呢?
实验:在“middle”中用中心层的参数替换其他层的参数=>middle repeat
从上图中可以看出,随着替换层数的增加,模型效果下降的越发明显。所以“middle” layer中不同层有着不同的功能。
3.4 Does the layer order matter?
实验:1. 中间层倒过来=>reverse。2. 将中间层随机打乱。
不管是随机打乱层还是倒过中间层都对模型效果有不少的影响。但随机打乱要比中间层倒装的效果要好。
3.5 Can we run the layers in parallel?
能否将不同层独立运行,然后将结果合并呢?=> parallel
除了在GSM8K数学任务上,随着并行层数的增加,模型效果有着合理的降低。
3.6 Does the order matter for some tasks more than others?
是的,在数学和推理任务上,order比较重要。在语义任务上,order就还好。
3.7 Does looping help parallelized layers?
从上图可知,并行层重复多次能够有效的改善模型效果。
从上图中可知,最佳的迭代次数(重复次数)与并行层的数量成正比。
3.8 Which variants are least harmful?
从图中可知,重复单层是效果最差的,随机中间层和并行重复策略(looped-parallel)模型效果损失最小。
从图中可以发现,skip策略跟llama2-7B模型的cosine similarity一样。而middle repeat则发生了偏移。
4. 讨论
有三种不同类型的层,“beginning”,“middle”和“ending” 中间层有某种程度的均匀,但是不冗余。 模型层的执行顺序相较于语义任务,在数学和推理任务中更为重要总结
**文章总结**本文研究了预训练大语言模型中不同层的特性及其重要性,通过对BERT-Large和Llama2模型的深入实验,揭示了预训练模型中各层的分布和功能性差异。
### 主要发现:
1. **层的特性分类**:预训练语言模型中的层可大致分为“beginning”、“middle”和“ending”三类。中间层表现出较高的一致性,而起始层和末尾层与中间层存在显著的表征空间差异。
2. **中间层的独特性**:尽管中间层的表征空间相似,但它们并非完全冗余。通过替换实验发现,不同的中间层扮演着不同的角色,替换会导致模型性能明显下降。
3. **层的必要性与跳过**:实验表明,跳过少量中间层对模型性能影响不大,验证了中间层的部分冗余性。然而,跳过的策略在性能上略逊于中间层重复的策略。
4. **层的顺序重要性**:在数学和推理任务中,层的顺序至关重要,打乱或反转中间层顺序会显著降低模型性能。相比之下,语义任务对层顺序的敏感性较低。
5. **并行运行的可行性**:实验尝试并行运行模型的不同层并将结果合并,结果显示除特定数学任务外,该策略导致性能合理下降。但通过重复并行层可以一定程度上弥补这一不足。
6. **策略优化**:在所有实验变体中,随机中间层打乱和并行重复(looped-parallel)策略对模型性能的损害最小,尤其是在大型模型中表现更优。
### 结论与讨论:
预训练大语言模型的层级结构并非均匀且冗余,而是具有不同的特性和功能分布。特别地,层的执行顺序在解决不同类型任务时展现出不同的重要性。这些发现对于优化模型架构、提高模型效率和性能具有重要启示,如未来可以设计更加灵活且高效的层级并行和顺序执行策略。