社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

贾佳亚韩松团队新作:两行代码让大模型上下文窗口倍增 | GitHub热榜

CVer • 1 年前 • 352 次点击  

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【目标检测和Transformer】交流群

克雷西 发自 凹非寺
转载自:量子位(QbitAI)

只要两行代码+11个小时微调,就能把大模型4k的窗口长度提高到32k。

规模上,最长可以扩展到10万token,一口气就能读完长篇小说的多个章节或中短篇小说。

贾佳亚韩松联合团队提出的这个基于LoRA的全新大模型微调方法,登上了GitHub热榜。

这种方式叫做LongLoRA,由来自香港中文大学和MIT的全华人团队联合出品。

在一台8个A100组成的单机上,增大窗口长度的速度比全量微调快数倍

网友看了之后不禁表示,这个效率实在是令人印象深刻:

那么,用LongLoRA微调之后,模型会有什么样的变化呢?

一口气读完一部小说

研究团队的实验当中使用的模型是Llama 2。

经过LongLoRA方法微调之后,Llama 2-7B的窗口长度最高可提升到10万token。

实测发现,微调后的模型可以一口气读完一部小说,然后回答各种问题。

比如总结一下大刘在《三体》第三部中体现的中心思想,比总结内容还高出了一个层次。

模型给出的答案是与外星文明首次接触的危险性、星际旅行之困难与人类文明之脆弱,以及团结协作的重要性等内容。

的确每条在原著中都有所体现,而且也比较全面了。

除了对整部作品进行概括提炼,局部内容当然也可以询问。

小说中的角色也能对答如流,比如《西游记》中孙悟空是怎么开花成长的。

模型告诉我们,孙悟空很有智慧,但又有一颗顽皮的心,在伴随唐僧取经的过程中走向了成熟。

这次的总结依旧是很到位。

而且不仅是单个角色,不同人物之间复杂的关系也能了如指掌。

提问的方式可以简单粗暴些,直接要求描述这本书(《哈利波特》)中的人物关系。

模型以哈利·波特为中心,介绍了他的朋友韦斯莱、赫敏,敌人马尔福,以及邓布利多教授等人物。

除了看小说,LongLoRA微调后的Llama还可以读论文,生产力一下子就提高了(喜)。

无论是整体概括还是局部询问,微调后的模型都能准确地给出答案:

中文部分为谷歌机翻

为了从宏观上把握模型的表现,研究团队用了如下数据集进行了测试:

  • PG19:来自书籍的长篇文档数据集,用来测试语言建模效果。

  • Proof-pile:来自arXiv的数学论文数据集,用来测试语言建模效果。

  • LongQA:作者自行构建的长序列问答数据集,用于有监督的微调。

  • LongChat:第三方构建的长对话理解数据集,用来测试长序列叙述理解效果。

结果显示,LongLoRA在PG19和Proof-pile上的困惑度与全量微调接近。

在问答数据集上,LongLoRA微调出的模型表现也很优异,长文本理解方面更是达到了SOTA水平。

当然,LongLoRA的意义不仅在于提高了窗口长度,关键在于用更少的消耗提高了窗口长度。

以7B参数量的Llama-2为例,如果使用全量微调,从4k提升到32k,在一台8个A100的单机上需要五天。

而改用LongLoRA方式,则只用11.3小时就能完成,连半天都不到,效率提升近十倍。

如果提升到65k,全量微调所需时间将超过1000小时,LongLoRA却只用52.4小时。

那么LongLoRA又是怎么做到的呢?

“大而化小”降低计算量

LongLoRA建立在LoRA的基础之上,引入了一种称为“移位短注意力”(shift short attention)的机制。

这种机制只需要两行代码就能实现:

Transformer架构的核心是自注意力(Self-attention)计算。

短注意力就是将训练文本划分为多个组,使自注意力计算在每个组内分别进行,从而达到降低运算量的目的。

而在这一过程中注意力头也被进行了分组,通过注意力头的位移,就实现了组间的信息交互。

划分出的每个组之间有重叠部分,确保了数据可以在全文中流通。

这样一来,每次计算都只需要对组内的token进行操作,运算量大大降低。

除了对输入进行分割之外,LongLoRA相比于Lora还可以微调embedding层和normalization层。

这两项内容占的参数量很小,以Llama 2-7B为例,embedding层只占1.94%,normalization层更是不到十万分之四。

消融实验结果表明,除了核心的Attention层,这两个占比很小的部分也起到了重要作用。

除了核心的短注意力机制,研究团队引入了DeepSpeed和FlashAttention方式,进一步降低了训练消耗。

目前,LongLoRA微调过后不同参数量和窗口长度的Llama 2已经开源,感兴趣的话可以到GitHub页面中查看。

论文地址:
https://arxiv.org/abs/2309.12307
GitHub项目页:
https://github.com/dvlab-research/LongLoRA

点击进入—>【目标检测和Transformer】交流群


ICCV / CVPR 2023论文和代码下载


后台回复:CVPR2023,即可下载CVPR 2023论文和代码开源的论文合集

后台回复:ICCV2023,即可下载ICCV 2023论文和代码开源的论文合集

目标检测和Transformer交流群成立


扫描下方二维码,或者添加微信: CVer333,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF等。


一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲扫码或加微信号: CVer333,进交流群


CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉,已汇集数千人!


扫码进星球


▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/162610
 
352 次点击