我是丁师兄,专注于智能驾驶方向大模型落地,公众号:丁师兄大模型。
大模型1v1学习,已帮助多名同学上岸国内外大厂
近日训练营的一位复旦大学的女硕士告诉我,上周去参加某厂大模型岗复试,面试官问了 LongLoRA 微调。最终咱们这位复旦女硕士还是被这小小的问题给难住痛失 offer。那么这 LongLoRA 微调到底是啥呢?今天就来给大家好好讲讲。
01面试官心理分析
首先面试官问这个问题呢,其实主要是想考你 3 点内容。
第一,你知不知道 LongLoRA 微调,有没有看过相关的 paper。如果你听都没有听过,那显然这道题就不用继续了。
第二,LongLoRA 微调主要解决的是什么样的问题,为什么要提出这种微调策略,是基于什么样的背景。
第三,它是怎么解决的问题,展开详细讲讲。
好,那接下来我们就沿着面试官的心理预期,来回答一下这道题目。
02面试题解析
首先说下背景,LongLoRA 是港中文和 MIT 在 23 年发表的一篇 paper,主要是为了解决长上下文的注意力机制计算量很大的问题。
我们知道,现在大模型的上下文是越做越长,像 OpenAI GPT4-Turbo 支持到了 128K,Kimi 甚至支持到了 200K 的长度。
长文本影响最大的就是 self-attention ,因为它的显存占用和计算量是随着长度平方变化的。
所以这里我们就答出了第一个得分点,LongLoRA 解决了一个什么样的问题,基于什么样的背景和动机。
其实面试跟大家平时考试答题一样,也有得分点,不是说你答的越多就越好,重要的是答到点子上。
面试时间就那么一两个小时,你长篇大论一堆,面试官是没有那么多耐心听的,反而给面试减分。
好,我们接着来看。
那 LongLoRA 怎么解决的这个问题呢?
在回答这类问题的时候,建议大家先整体概括,再展开表述,同时尽量结合画图,这样思路更加清晰。
比如这里,先整体概括一下,LongLoRA 的原则是,虽然在推理过程中需要密集的全局注意力,但通过稀疏的局部注意力可以有效且高效地微调模型。
具体来说呢,LongLoRA 在微调期间延长了上下文长度,同时使用 Lora 方法保持了高性能和低复杂性,它提出了 shifted sparse attention 的微调方案,我们简称为 S2-Attention。
在训练阶段使用 S2-Attention,推理时用全局注意力。
我们看下面这张图,S2-Attention 在微调阶段,使用的是局部注意力,而不是全局注意力。
也就是将输入文档分解为几个不同的组,并在每个组中分别应用注意力机制,大家注意看图中的 Pattern1。
那这种方式有什么好处呢?
好处就是它能够在资源占用不多的情况下拓展长度。
那缺点呢?
由于不同组之间缺乏信息交换,随着长度增大,会导致部分信息的丢失。因此 S2-Attention 又引入了组大小一半的移位操作,确保相邻组之间顺利的信息交换。
我们看图中的 Pattern 2,那这个改进有助于模型在文本开头和结尾之间顺利交换信息,提高了模型的稳定性。
说的大白话一点,就是对每个 token 而言,真正跟它有一定关联程度的,绝大部分都在相近的区域内,不需要看太远,但为了保持前后注意力的连贯性,所以加上了移位操作。
end
我是丁师兄,专注于智能驾驶方向大模型落地,公众号:丁师兄大模型。
大模型1v1学习,已帮助多名同学上岸国内外大厂