预训练、微调和迁移学习
在机器学习和神经网络中,预训练是指从头开始训练语言模型。从随机初始化的权重开始,在大量文本数据上训练模型。
Pretraining,预训练
预训练方法隐藏模型输入的部分内容,并训练模型重建这些部分。在训练阶段,模型学习理解语言结构、单词之间的关系和其他语言特征,从而构建具有更新权重的预训练模型(也称为基础模型)。
预训练模型在构建强大的语言表示、初始化 NLP 模型的参数以及创建语言概率分布方面非常高效,我们可以从中生成样本。例如,随着 Transformer 模型的出现,开发了一种先进行预训练,然后进行微调的范式。在这种方法中,预训练模型在较小的、特定于任务的数据集上进行微调,以使其适合情绪分析、文本分类和机器翻译等 NLP 任务。
然而,预训练语言模型可能是一个非常耗费资源的过程,无论是在时间还是金钱方面。根据构建预训练模型的数据大小,可能需要几天/几周的时间和大量的财务投资。例如,具有 3.4 亿个参数的 BERT 使用 64 个 TPU 芯片进行了总共 4 天的预训练 [来源]。另一个例子是 GPT-3 模型,它有 1750 亿个参数,在 10,000 个 V100 GPU 上进行了 14.8 天的训练 [来源],估计培训成本超过 460 万美元 .
微调(Fine-Tuning)在机器学习和深度学习中,微调是指采用预训练模型并在较小的特定任务数据集上进一步训练的过程。
微调的目标是调整模型的学习表示,使其在特定任务上表现良好,而无需从头开始训练过程。
对比起从头开始训练模型,微调有什么优势?预训练后进行微调的模式有很多优势,包括减少数据需求、缩短训练时间、降低计算资源成本,进而降低总体成本。
从头开始训练模型通常需要大量数据来学习有意义的表示。这种方法计算成本高、耗时长。而微调则可以有效地利用少量特定任务的数据,因为它起点是预训练模型学到的知识。微调在预训练模型的基础上进行构建,并将其调整到特定任务上,可能导致更快的收敛和更好的性能。这显著减少了所需的数据量、训练时间和计算资源。
注意:选择与特定任务数据集有些相似性的预训练模型非常重要。
迁移学习(Transfer learning)迁移学习是一种机器学习技术,通过解决一个任务获取的知识被应用到不同但相关的任务中。
在目标任务数据有限但相关任务数据充足的场景中,迁移学习尤其有用。
总之,预训练 + 微调是迁移学习的最佳示例之一。这涉及在一个源任务上训练模型(预训练模型),然后利用所学知识来提高模型在目标任务上(微调模型)的性能。