“预训练是循序渐进的学习,微调就是强化训练”
在学习大模型的环节中,预训练与微调是其中十分关键的两个阶段,一个模型成果好不好并不是由神经网络模型的好坏选择的,而是由预训练和微调来选择的。
大家都知道openAI的GPT模型驳回的是Transformer技术架构,但市面上其它驳回transformer架构的模型,却很难到达GPT模型的成果,其中很大一局部要素就是在于预训练与微调。
当天就来深度了解一下预训练与微调。
什么是预训练与微调?
预训练
预训练是一种深度学习模型训练的战略,通常在大规模数据集上启动。预训练的指标是经过在一个关系但较大的义务上训练模型,使得模型学习到通用的特色示意。
这样的预训练模型在其它详细义务上的体现通常会更好,由于它曾经学习到了普适的特色。
在深度学习中,预训练可以分为两种关键类型:无监视预训练和有监视预训练。
无监视训练
在无监视训练中,模型在没有标签的大规模数据上启动预训练。经常出现的无监视预训练方法包含自编码器,变分自编码器,对比预训练等。
预训练后模型的参数会被调整到一种更有用的示意方式,使得它能够从输入数据中提取无心义的特色。
有监视训练
在有监视预训练中,模型在一个与最终义务关系的较大数据集上启动预训练。而后可以经常使用这些预训练的权重作为最终义务的初始参数。这种方法通常能够减速义务的训练环节,特意是在指标义务数据较少时。
预训练的好处
预训练的好处在于,经过应用大规模数据启动训练,模型可以学习到更泛化的特色示意,从而在详细义务上体现更好。
这关于数据较少的义务或计算资源有限的状况下特意有用;预训练的模型也常罕用于迁徙学习,可以将预训练模型的局部或所有用于新的义务,以提高模型的功能。
微调
微调是指在预训练模型的基础之上,应用预训练模型的参数,经常使用大批数据对模型参数启动局部适当调整,以此取得在详细义务上的良好体现。
微调普通是驳回解冻预训练模型的大局部参数,只对小局部参数启动调整。
预训练普通是经常使用大规模无标签数据集上启动训练(小局部也会驳回有标签数据集),也就是无监视学习;但微调是为了处置特定义务,因此微调关键经常使用的是小规模有标签数据集。
微调分为全量微调(全参数量调整)和高效微调(局部参数调整)等多种微调方式;全量微和谐预训练的区别就是,微调驳回的是监视学习的方式,且预训练之前的模型参数是随机初始化的,而微调模型经常使用的是预训练实现的模型参数。
预训练的作用
预训练的作用关键有以下几点:
减速微调的环节
经过预训练在大规模数据集上学习到的通用特色示意可以作为初始化参数,减速模型在特定义务上的训练环节;这是由于预训练的参数曾经凑近最优解,并且曾经捕捉到了输入数据中的一些经过模型,这样在指标义务上的优化环节也更容易收敛。
提高功能
预训练的模型通常在详细义务上体现更好。这是由于在预训练阶段,模型学习到了少量的数据中的通用特色,这些特色关于许多义务都是有用的,在指标义务中,预训练模型能够更好的应用这些通用特色,从而提高功能。
处置数据无余疑问
在许多实践义务中,数据往往是有限的,特意是深度学习模型须要少量的数据启动训练。经过预训练,可以应用大规模数据集启动通用特色的学习,而后将这些学到的特色运行于指标义务,从而克制数据无余的疑问。
迁徙学习
预训练的模型可以作为迁徙学习的基础,将预训练模型的参数运行于新的关系义务,可以应用预训练模型在大规模数据上学习到的通用特色,从而在新义务上提高功能。
提高泛化才干
预训练有助于提高模型的泛化才干,即在未见过的数据上体现良好;经过在大规模数据上学习通用特色,模型更能够从输入数据中捕捉广泛的形式,而不是适度拟合训练集。
预训练与微调的区别
阶段与指标
数据集
特色示意
义务指标
总结
总之,预训练和微调是两个不同的阶段,它们的指标、数据集和特色示意等方面都有所区别。
预训练提供了一种有效的方式来初始化模型参数,并使模型受益于大规模数据的通用特色示意,而微调是让模型在大批数据集上启动监视学习,从而在特定义务上体现更好。
原文链接: