两行代码解决大语言模型对话局限!港中文贾佳亚团队联合 MIT 发布超长文本扩展技术
中途迷失、模型偷懒、上下文越长大模型越笨......如果体验过大语言模型产品,用户多少会对文本输入长度带来的限制有所感触,比如当想和大模型讨论一些稍长的内容,需要拆分输入,而前面输入的要点,很快就会被大模型忘记。
这是典型的大语言模型对话缺陷!就像先天有注意力缺陷的儿童,难以专注看完一本新书。而缺陷的关键,在于模型缺乏长文本处理能力。这个局面如今被打破。
近日,贾佳亚团队联合MIT发布的新技术和新模型悄然登上各大开源网站的热榜:hugging face热榜第一、paperwithcode热度第一,Github全部python项目热度第五、github stars一周内破千,Twitter上的相关技术帖子浏览量近18万......
github stars 已达1.3k
Twitter上的相关技术帖子浏览量近18万
这项名为LongLoRA的技术实用但却简单得令人惊讶:只需两行代码、一台8卡A100机器,便可将7B模型的文本长度拓展到100k tokens,70B模型的文本长度拓展到32k tokens;同时,该研究团队还发布了首个拥有70B参数量的长文本对话大语言模型LongAlpaca。
LongLoRA的提出,让全球大语言模型的对话缺陷第一次得到解决,自此,几十页的论文、几百页的报告、鸿篇巨制不再成为大模型盲区。
对此,有专业人士激动地表示,LongLoRA是大语言模型迷宫中的希望之灯!它代表着业界对长文本大语言模型的重新思考和关注,有效扩展了大语言模型的上下文窗口,允许模型考虑和处理较长的文本序列,是大语言模型的革新性发明。
除了技术革新外,大语言模型处理长文本问题的一大难点还在于缺少公开的长文本对话数据。
为此,研究团队特意收集了9k条长文本问答语料对,包含针对名著、论文、深度报道甚至财务报表的各类问答。
光会回答长问题还不够,该团队又挑选了3k的短问答语料与9K的长问答语料混合训练,让长文本大模型同时具备短文本对话能力。这个完整的数据集被称为LongAlpaca-12k,目前已经开源。
在LongAlpaca-12k数据集基础上,研究团队对不同参数大小7B、13B、70B进行了训练和评测,开源模型包括LongAlpaca-7B, LongAlpaca-13B和LongAlpaca-70B。
话不多说,盲选几个demo,一起看看应用了LongLoRA技术叠加12K问答语料的大模型LongAlpaca效果。
可以看出,经过训练的LongAlpaca模型已经可以很轻松地接受新的长篇学术论文,在学术相关问题的回答上相当精准。
接下来,再看看LongAlpaca模型在颇高阅读和理解门槛的经济领域的解读表现。
LongAlpaca还可以读新的长篇小说,读完后对内容进行分析。下面选取的对比模型是13B参数的LongAlpaca和Llama2,且看各自表现。
而Llama2的回答则是,“通过与外星人的互动,她希望能更深入地了解宇宙的本质,以及自己在宇宙中的位置。叶文洁逐渐意识到,外星人和他们的技术并不能解决她的问题。”回答笼统,之后开始对小说整体进行评论,答非所问。
从模型给出的答案可发现,一些模型如Llama2 [2] 可能在预训练过程中见过相关小说,但如果在提问时进行仅根据小说题目进行短文本提问的话,回答并不理想。
两个模型的回答对比,高下立见。LongAlpaca改学术论文、点评全球经济大势和读小说,都是一把好手,完胜 Llama2。
Llama2可以说是 AI 社区内最强大的开源大模型之一,行业位置领先,LongAlpaca居然可以完胜。其背后的LongLoRA技术成功引起网友们的注意,到底是怎么做到的?
原来大语言模型对长文本处理过程中,计算量的主要开销集中在自注意力机制(self-attention),其开销随着文本长度成平方次地增加。
针对这个问题,研究团队提出LongLoRA技术,并用分组和偏移的方式来对全局自注意力机制进行模拟。
简单来说,就是将长文本对应的tokens拆分成不同的组,在每组内部做自注意力计算,而分组的方式在不同注意力头 (attention head) 上有所偏移。这样的方式既可以大幅度节约计算量,又可以维持全局感受野的传递。
而这个实现方法也非常简洁,仅两行代码即可完成!
LongLoRA还探索了低秩训练的方式。原有的低秩训练方式,如LoRA [5],无法在文本长度迁移上取得良好的效果。而LongLoRA在低秩训练的基础上,引入嵌入层 (Embedding layer和 Normalization layers) 进行微调,从而达到可以和全参数微调 (Full fine-tune) 逼近的效果。
进行不同长度文本扩展和训练时,LongLoRA、LoRA和全参数微调不同技术的具体效果如何,可以参考三个维度表现:
在Perplexity-困惑度上,原有LoRA方法的性能在不断恶化,而LongLoRA和全参数微调都能在各种文本长度下维持很好的效果;
在显存消耗上,相比于全参数微调,LongLoRA和原有LoRA都有大幅度的节省。例如,对于8k长度的模型训练,相比于全参数微调,LongLoRA将显存消耗从46.3GB降低到25.6GB;
在训练时间上,对于64k长度的模型训练,相比于常规LoRA,LongLoRA将训练时间从90~100小时左右降低到52.4小时,而全参数微调超过1000小时。
极简的训练方法、极少的计算资源和时间消耗,以及极佳的准确性,令LongLoRA大规模推广成为可能。目前,相关技术与模型已全部开源,感兴趣的用户们可以自己部署感受。
值得一提的是,这是贾佳亚团队继8月9日发布的“可以分割一切”的多模态大模型 LISA 后的又一力作。相距不过短短两个月,不得不说,这研究速度和能力跟LongLoRA一样惊人。
参考文献
[1] LLaMA team. Llama: Open and efficient foundation language models. Arxiv, 2302.13971, 2023a.
[2] Llama2 team. Llama 2: Open foundation and fine-tuned chat models. Arxiv, 2307.09288, 2023b.
[3] Shouyuan Chen, Sherman Wong, Liangjian Chen, and Yuandong Tian. Extending context window of large language models via positional interpolation. Arxiv, 2306.15595, 2023.
[4] Szymon Tworkowski, Konrad Staniszewski, Mikolaj Pacek, Yuhuai Wu, Henryk Michalewski, and Piotr Milos. Focused transformer: Contrastive training for context scaling. Arxiv, 2307.03170, 2023.
[5] Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. Lora: Low-rank adaptation of large language models. In ICLR, 2022.
更多内容,点击下方关注:
微信扫码关注该文公众号作者