前几天的一篇文章,给大家介绍了预训练模型的微调方法Prompt Tuning。《一文了解预训练模型 Prompt 调优》。今天再给大家介绍另外一种主流的预训练模型微调方法Adapter,并将Adapter与Prompt两种方法做了对比,希望能对你的论文写作有启发。
本文来自来自迪菲赫尔曼迪导(强烈推荐此导):深度解析预训练权重的本质和作用:你真的了解它们吗?_预训练权重是干什么的-CSDN博客
https://github.com/ymcui/Chinese-LLaMA-Alpaca
在过去一年多的时间里,以预训练模型形式进行的迁移学习已经成为NLP领域的主流,许多任务的基准都因而得到极大地提升。然而事实上迁移学习在NLP中并不是最近才出现的。
中国科学院自动化研究所研究员张家俊以ChatGPT中的提示与指令学习为题,从ChatGPT简要技术回顾、迈向通用性的提示学习、从提示学习到指令学习、相关探索与学习等角度和在场听众展开技术分享。大模型主要有两个方向,一个是“预训练+参数微调”,就是大模型有了之后针对下游任务进行微调,然后得到一个面向下游任务的大的模型,二是“预训练+提示学习”,预训练之后不变,用提示学习激发大模型来完成特定的任务。相关实践证明,学习提示对于模型性能提升非常有效,怎样学到或者找到提示语非常关键。下面是分享的详细内容。
当前以 ChatGPT 为代表的预训练语言模型(PLM)规模变得越来越大,在消费级硬件上进行全量微调(Full Fine-Tuning)变得不可行。此外,为每个下游任务单独存储和部署微调模型变得非常昂贵,因为微调模型与原始预训练模型的大小相同。
相关概念:灾难遗忘 (McCloskey&Cohen, 1989; French, 1999) :一个模型忘记了它最初受过训练的任务
paper:LoRA: Low-Rank Adaptation of Large Language Models(https://arxiv.org/pdf/2106.09685.pdf)
大模型调优(finetuning)不仅仅是参数的优化,同样会受到非功能性约束的挑战,例如:
Attention is not explanation | Attention is not not explanation
使用基于ImageNet预训练(Pre-training)的网络已成为计算机视觉任务中一种常规的操作。何恺明等人在新作Rethinking ImageNet Pre-training中使用详细的对比实验和分析提出了对基于ImageNet预训练的新的思考。研究发现,对于在COCO数据集上的目标检测和实例分割任务,使用随机初始化的参数会收敛的更慢,但最终所达到的结果不比使用在ImageNet上预训练的参数差。
自然语言处理进入大语言模型(Large Language Model, LLM)时代之后,模型的参数量级越来越庞大,以稍早之前的GPT-3为例,它有175B即1亿7千5百万参数,而ChatGPT及后续模型则更大。一方面大语言模型解决自然语言处理任务所需的涌现能力确实需要如此量级的参数,另一方面如此巨大的参数会引起训练成本的急剧增加,甚至从消费级硬件角度来讲,用户全量训练大语言模型的参数的成本令人望而却步。大语言模型已经过pre-training阶段,于是就有学者提出是否能通过finetune一部分少量参数实现下游任务的精调,这催生了一系列PEFT(Parameter-Efficient Fine Tuning,PEFT,可译为参数高效精调)方法。
Prompt的目的是将Fine-tuning的下游任务目标转换为Pre-training的任务.
本文分享论文『Towards a Unified Foundation Model: Jointly Pre-Training Transformers on Unpaired Images and Text』,由谷歌& UCLA 联合提出统一的基础模型,是一个既能做 CV 任务,也能做 NLP 任务的 Transformer 模型!
动物的生物智能系统通过整合不同方式的信息并同时处理各种任务来感知世界。相比之下,当前的机器学习研究遵循特定于任务的范式,导致任务之间的协作效率低下,并且为新任务开发感知模型的边际成本较高。在本文中,作者提出了一种名为Uni-Perceiver的通用感知结构,该结构使用统一的建模和共享参数来处理各种模态和任务。
在这篇文章中,我们将使用一种直观的方法来理解NLP的发展,包括BERT。预训练策略使BERT如此强大和流行,并且BERT可针对大多数NLP任务进行微调。
本文介绍一种称之为BERT的新语言表征模型,意为来自变换器的双向编码器表征量(BidirectionalEncoder Representations from Transformers)。不同于最近的语言表征模型(Peters等,2018; Radford等,2018),BERT旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的BERT表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推理)创建当前最优模型,无需对任务特定架构做出大量修改。
摘要:本文是广告系列第二十篇,主要介绍了GPT系列模型的发展流程。首先介绍了NLP中超强但不秀的GPT模型。GPT属于典型的预训练+微调的两阶段模型,将Transformer作为特征抽取器,使用单向语言模型,属于NLP中非常重要的工作,同时还介绍了GPT模型下游如何改造成不同的NLP任务;然后介绍了有点火的GPT-2。相比于GPT来说GPT-2使用了更多更好的训练数据,同时直接使用无监督的方式来完成下游任务;最后介绍了巨无霸GPT-3。相比于GPT-2,GPT-3直接把模型的规模做到极致,使用了45TB的训练数据,拥有175B的参数量,真正诠释了暴力出奇迹。GPT-3模型直接不需要微调了,不使用样本或者仅使用极少量的样本就可以完成下游NLP任务,尤其在很多数据集中模型的效果直接超越了最好效果的微调模型,真正帮助我们解决了下游任务需要标注语料的问题。对GPT系列模型感兴趣的小伙伴可以一起沟通交流。
[49]中提到的预训练和微调范式可以在同模态任务之间实现惊人的迁移学习,这在CV和NLP等领域已经得到证明。预训练模型通常由资源丰富且经验丰富的团队使用大量干净的数据进行训练。
摘要:训练大型语言模型(LLMs)面临着显著的内存挑战,主要是由于权重和优化器状态的不断增大。常见的内存降低方法,如低秩适应(LoRA),在每一层中向冻结的预训练权重添加一个可训练的低秩矩阵,从而减少可训练参数和优化器状态。然而,这些方法通常在预训练和微调阶段的性能上都不如使用全秩权重训练,因为它们将参数搜索限制在低秩子空间中,改变了训练动态,并且可能需要全秩热启动。在这项工作中,我们提出了Gradient Low-Rank Projection(GaLore),一种允许全参数学习但比LoRA等常见低秩适应方法更节省内存的训练策略。我们的方法在优化器状态的内存使用上最多减少了65.5%,同时在使用C4数据集进行LLaMA 1B和7B架构的预训练以及在GLUE任务上对RoBERTa进行微调时,保持了效率和性能。我们的8位GaLore相较于BF16基准,将优化器内存进一步降低了82.5%,总训练内存降低了63.3%。值得注意的是,我们首次证明了在具有24GB内存的消费级GPU上(例如NVIDIA RTX 4090)进行7B模型的预训练是可行的,而无需模型并行、检查点策略或卸载策略。
NLP中,预训练大模型Finetune是一种非常常见的解决问题的范式。利用在海量文本上预训练得到的Bert、GPT等模型,在下游不同任务上分别进行finetune,得到下游任务的模型。然而,这种方式的代价也很大,经常要对所有任务都保存一个完整的task-specific模型,随着预训练模型体积越来越大,这种方式会占用很多存储空间,当下游任务很多的时候要存储大量的预训练模型。同时,为每个任务finetune一个如此庞大的模型,训练资源的消耗也比较大。
当前语义分割任务存在一个特别常见的问题是收集 groundtruth 的成本和耗时很高,所以会使用预训练。例如监督分类或自监督特征提取,通常用于训练模型 backbone。基于该问题,这篇文章介绍的方法被叫做 decoder denoising pretraining (DDeP),如下图所示。
机器之心报道 机器之心编辑部 来自清华大学的刘知远、黄民烈等研究者提出了一个名为「PPT」的新框架。PPT=Pre-trained Prompt Tuning。 图源:https://www.zhihu.com/pin/1419682869878489088 近年来,微调预训练语言模型(PLM)取得了很大进展。通过微调 PLM 的全部参数,从大规模无标签语料库中获得的多方面知识可以用于处理各种 NLP 任务,并优于从头学习模型的方法。为简单起见,此处将这种全模型调整(full-model tuning)称
在自然语言处理领域,BERT 是一个里程碑式的进展。只需要添加一个单层线性分类器和一个简单的微调策略,它就能在多项任务中达到优异的性能。但另一方面,BERT 的应用也面临很多问题,如规模大、推理速度慢、预训练过程复杂。研究人员已经做了许多尝试来提取一个更简单的子架构,希望这个子架构能够保持原始 BERT 的优异性能,同时简化预训练过程,缩短推理时间。这些研究取得了不同程度的成功。然而,他们提取的这些子架构在准确率方面仍然低于原始架构的实现,而且架构参数集的选择往往看起来很随意。
目前在深度学习领域,一方面需要追求更高的性能,采用强大、复杂的模型网络和实验方法;另一方面又需要关注如何将算法更稳定、高效地在硬件平台上落地。复杂的模型固然展现更好的性能,但过高的存储空间需求和计算资源消耗,是影响在各硬件平台上的落地的重要原因之一。尤其在NLP领域,以BERT、GPT为代表的预训练模型规模越来越大。
持续学习的目的是模仿人类在连续任务中持续积累知识的能力,其主要挑战是在持续学习新任务后如何保持对以前所学任务的表现,即避免灾难性遗忘(catastrophic forgetting)。持续学习和多任务学习(multi-task learning)的区别在于:后者在同一时间可以得到所有任务,模型可以同时学习所有任务;而在持续学习中任务 一个一个出现,模型在某一时刻只能学习一个任务的知识,并且在学习新知识的过程中避免遗忘旧知识。
来源:机器之心本文约2000字,建议阅读5分钟一种优化 Transformer 的有效方案,在只添加少量参数的情况下,对下游任务有极大的提升效果。 来自康奈尔大学、Meta AI 和哥本哈根大学的研究者提出一种优化 Transformer 的有效方案,在只添加少量参数的情况下,对下游任务有极大的提升效果。 识别问题往往是通过预训练大型基础模型处理大量精选或原始数据的方式解决的。这似乎是一种可行的模式:只需利用最新最好的基础模型,就可以在多个识别问题上取得极大的进展。 然而,在实践中,将这些大型模型用于下游任
迁移学习作为一种旨在利用已有知识解决新问题的机器学习技术,在面临小样本问题时展现出强大的适应力和有效性。本文将深入剖析迁移学习在小样本问题中的应用场景、核心策略、实战技巧,并通过Python代码示例详细展示如何在实际项目中运用迁移学习。同时,我们将探讨最佳实践和注意事项,以确保迁移学习在数据匮乏环境下的高效应用。
生而为人,我们不需要一切从零开始学习。但是,我们会「以旧学新」,用过去所学的旧知识,来理解新知识和处理各种新任务。
大语言模型(LLM)是一种利用机器学习技术来理解和生成人类语言的人工智能模型。 对于希望从各个方面增强通信和数据处理并实现自动化的企业和机构而言,LLM 具有极高的价值。 LLM 使用基于神经网络的模型,通常运用自然语言处理(NLP)技术来处理和计算其输出。
笔者刚刚入门NLP的时候,其实还和朋友们调侃过“attention is all you need"这么绝对的标题也敢发出来?当然似乎后来还有一个paper是“cnn is all you need”?但2021年,我再看深度学习领域,无论是自然语言处理、音频信号处理、图像处理、推荐系统,似乎都看到attention混得风生水起,只不过更多时候看到的是它的另一个代号:Transformer。
论文: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
这篇论文是 2017 年在 IEEE 神经系统与康复工程学报上发布的一篇关于睡眠分阶的论文。这篇论文的主要贡献有:
本文主要参考:https://zhuanlan.zhihu.com/p/96020318
选自arXiv 作者:Adrian de Wynter、Daniel J. Perry 机器之心编译 机器之心编辑部 提取 BERT 子架构是一个非常值得探讨的问题,但现有的研究在子架构准确率和选择方面存在不足。近日,来自亚马逊 Alexa 团队的研究者细化 BERT 子架构提取过程,并提取了一个最优子架构 Bort,它的大小仅为 BERT-large 的 16%,CPU 上的推理速度却提升到了原来的八倍。 在自然语言处理领域,BERT 是一个里程碑式的进展。只需要添加一个单层线性分类器和一个简单的微调
最近被 Google 的 BERT (Bidirectional Encoder Representations from Transfoemers)模型给刷屏了。该模型破了 NLP 界的 11 项纪录,所以这两周特意挑选这篇论文来满足好奇心。第一作者还在 Reddit 上进行了解答,具体可以戳:这里。为了方便学习,我翻译了这篇解读(只包含正文):BERT 论文 - 第一作者的 Reddit 解读说明翻译
SFT(Supervised Fine-Tuning)监督微调是指在源数据集上预训练一个神经网络模型,即源模型。然后创建一个新的神经网络模型,即目标模型。目标模型复制了源模型上除了输出层外的所有模型设计及其参数。这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。源模型的输出层与源数据集的标签紧密相关,因此在目标模型中不予采用。微调时,为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。在目标数据集上训练目标模型时,将从头训练到输出层,其余层的参数都基于源模型的参数微调得到。
PTM 通常是基于大规模文本语料训练通用的语言表示,而缺乏领域特定的知识。通过外部知识库引入领域知识被证明可以提升模型结果。这些外部知识包括:语言知识、语义知识、常识知识、事实知识和其他领域特定的知识等。
深度学习往往需要大量数据,不然就会出现过度拟合,本文作者提出了一些在文本数据量不够大的时候可用的一些实用方法,从而赋予小数据集以价值。
选自arXiv 作者:Menglin Jia等 机器之心编译 编辑:赵阳、小舟 来自康奈尔大学、Meta AI 和哥本哈根大学的研究者提出一种优化 Transformer 的有效方案,在只添加少量参数的情况下,对下游任务有极大的提升效果。 识别问题往往是通过预训练大型基础模型处理大量精选或原始数据的方式解决的。这似乎是一种可行的模式:只需利用最新最好的基础模型,就可以在多个识别问题上取得极大的进展。 然而,在实践中,将这些大型模型用于下游任务就存在一些挑战。最直接(通常也是最有效)的适应策略是针对任务对预
目前,计算机视觉神经网络被大量参数化:它们通常有数千万或数亿个参数,这是它们成功利用大型图像集合 (如 ImageNet) 的关键。然而,这些高容量模型往往会在小型(包含数十万张图像)甚至中型数据集上过度拟合。因此,有研究者指出在 2014 年:学习 CNN 的过程相当于估计模型数百万个参数,这需要大量的带标注的数据。
下面要介绍的论文选自AAAI 2020,题目为:「Attendingto Entities for Better Text Understanding」,axriv地址为:https://arxiv.org/abs/1911.04361。
在今年的一篇文章 [1] 中指出,自预训练技术被提出以来,NLP 界一直存在着一个不可能三角(如下图 1),即一个模型不能同时满足:
今天介绍中国科学技术大学和微软亚洲研究院朱西洲老师团队在ICLR2020的论文,该研究提出了一种新的图形神经网络的几何聚合方式,其核心思想是:在bert的基础上为视觉-语言相关任务做预训练。
本文介绍的两个 BERT 实现项目分别基于 TensorFlow 和 Keras,其中基于 TensorFlow 的项目会使用中等数据集与其它技巧降低计算力,并发现使用 TextCNN 代替 Transformer 主干网络,且保留 BERT 预训练任务也能得到非常好的效果。而基于 Keras 的项目尝试使用预训练的 OpenAI Transformer 作为初始化权重,并以较小的计算力重新训练 BERT 预训练模型,再将该预训练的 BERT 应用到不同任务。
领取专属 10元无门槛券
手把手带您无忧上云