乐趣区

关于人工智能:模型微调低预算高期望

作为迁徙学习中的罕用技术,Fine-tuning(微调)曾经成为了深度学习反动的重要局部。微调不须要针对新工作从头开始学习,只须要加载预训练模型的参数,而后利用新工作的数据进行一步训练模型即可。也能够说微调是对凋谢域工作的预训练模型进行训练,从而适应特定域工作。
与从零开始训练网络相比,微调是一种低成本,高收益的解决方案。它须要:

  • 更少的数据标注,微调不须要从头学习所有内容,所有的训练都是为了获取特定域常识。
  • 更短的训练工夫,因为微调的过程中,深度神经网络的大多数层都会解冻,所以须要训练的参数很少。

充分利用现有的训练,并将其迁徙到新工作上是深度学习反动的重要实际。微调不仅经济高效,而且不须要高额的算力。这对于心愿利用 AI 技术的渺小企业和集体来说很敌对。(至多,简直所有深度学习的博文都会这样通知你.)然而如果你认真想想,或者尝试在真实世界的用例中应用微调技术,很快你就会发现这个承诺随同着很多不确定因素:

  • 微调到底须要多少数据,能力失去好的后果?一条标记数据?十条还是一千条?
  • 到底须要多长时间的训练,能力取得好的后果?一分钟,一小时,一天或者一周?

即便对于大型企业来说,这些问题也很难解答。对于投入 AI 的资源无限的中小型企业和集体来说,这些问题显得尤为要害。特定域数据既不收费,也有谬误,所以须要低廉的人力来标记数据。而且顶级 GPU 算力的购买和保护老本高得惊人,大多数企业都在云服务上租用 GPU 资源。最好的状况下,租借云服务器每月也须要数千元到数万元。这笔费用对于企业来说不容小觑。
针对以上问题,本文将应用 Jina AI Finetuner 给出 定量 答案。Finetuner 旨在晋升预训练模型的性能,并且无需低廉的硬件设施就能将预训练模型投入生产。
Finetuner 是一款可能简化神经网络微调流程,放慢微调速度的工具。它基于云端整合工作流,并解决所有复杂性和基础架构要求,使得微调神经网络变得更容易、更疾速、更高效。

实验设计

咱们设计了两个试验来定量钻研 标记数据 训练工夫 对微调性能的影响。在每个试验中,咱们通过微调 3 个深度神经网络来构建 3 个多模态搜寻工作。咱们一共应用了 7 个数据集,为了保障试验的泛化性,其中两个数据集是非特定域的公开据集。咱们通过评估微调模型执行搜寻工作的能力来掂量微调模型的性能,评估指标别离为 mRR(Mean Reciprocal Rank[1])、Recall、mAP(Mean Average Precision[2])。这些指标都是基于验证集中每次搜寻的前 20 个后果计算失去的。
下表总结了咱们的试验工作、模型和数据集,以及它们在没有微调的状况下的性能指标。

咱们曾经晓得,对于训练任务来说,等同的试验条件下,更多的标注数据、更长的训练工夫会对模型的性能产生踊跃影响。但这远远不够,咱们要晓得具体须要多少标注数据和多长的训练工夫?
试验的首要问题是:

咱们是否预计出,为了达到足够的性能所需的起码的标签数据和训练工夫?

1. 须要多少标注数据, 能力达到良好的微调性能?

咱们将 Finetuner 的标注数据逐步从 100 条减少到 100,000 条,而后察看这对试验指标产生的影响。为了进一步计算投资收益率(ROI),咱们将绝对改良(代表净利润)除以标注数据量(代表投资老本)。这对于咱们察看试验后果很无益,因为它指出了增加标注数据所产生收益递加的点。下图中,X 轴示意标注数据的数量,Y 轴示意预训练模型的绝对改良,Y 值越高越好。

图中显示的后果并不令人诧异,在所有工作上,模型的性能随着数据集中标记数据的减少而进步,某些工作和数据集比其它工作和数据晋升更大。然而,咱们能够从这些数字中得出的惟一论断是 Finetuner 的成果和宣传的一样。到目前为止,所有都很好。更乏味的是 ROI 曲线。在下图中,X 轴示意标记数据的数量,Y 轴示意每个标记数据项的 ROI,当然 Y 值越高越好。特地阐明的是,ROI=0 意味着在该点增加新的标记数据,模型的性能将不再晋升。

令人诧异的是,咱们能够看到,每单位标签数据的 ROI 从一开始就立刻降落。尽管咱们预计到它最终会降落,但没想到它从一开始就始终降落,这是一个意外的后果。

2. 微调须要多长时间?

为了评估减少训练时长带来的影响,咱们将减少的标注数据固定为 1000 项,而后将训练 epoch 从 1 逐步减少到 10。每次减少训练 epoch,咱们都评估预训练模型的改良并且计算 ROI。对于这些试验,ROI 的计算方法是用绝对改良除以训练时长(以秒为单位)。这意味着,当 ROI=0 时,减少训练工夫将不会进步预训练模型的性能。

咱们当时晓得,始终减少更多工夫并不能保障模型有任何改善。事实上,这可能会带来过拟合问题,导致预训练模型性能降落。某些模型(例如 CLIP)比其余模型更容易适度拟合。原则上,如果咱们一直地用雷同的 1000 个数据点进行训练,必定会造成适度拟合,导致模型的整体性能降落。让咱们一起看看 ROI 曲线。

ROI 在微调的第一个 epoch 后立刻降落。在上一个试验中,当 ROI 靠近零时,减少标注数据,ROI 仍然放弃正值。与上一个试验不同,因为过拟合问题,持续减少训练工夫,ROI 可能会变成正数。

总结

这对谋求最大化收益和最小化老本的用户意味着什么?

许多最先进的深度神经网络都能进行小样本学习,它们只须要几百条标注数据和几分钟训练,就能失去很大的性能晋升。你可能会认为训练深度神经网络须要数百万的数据和一周的运行工夫,本文突破了这种刻板印象。
它们能以最快的速度,从起码的数据中学习到最多的常识,所以随着投入更多工夫和数据进行微调,ROI 会迅速降落。下面的试验中,在 500 个标记数据上训练,或者将 GPU 训练时长减少 600 秒后,ROI 从最高值放大了 70%。这阐明应用超过数百项的训练数据,超过几分钟的训练时长,并不会带来预期的收益。
总而言之,在经济方面,微调无奈与从头开始训练等量齐观。它便宜得多,尤其是在 Finetuner[3] 的帮忙下。因而,下次你收到来自 GPU 供应商或众包数据采集公司的营销邮件时,你就晓得该如何与他们讨价还价了。

参考资料

[1] Mean Reciprocal Rank: https://en.wikipedia.org/wiki…

[2] Mean Average Precision: https://stats.stackexchange.c…

[3] Finetuner: https://github.com/jina-ai/fi…

退出移动版