监督微调步骤
本文重点介绍监督微调,其步骤包括:
- 选择微调任务(例如摘要、问答、文本分类)。
- 根据微调任务准备训练数据集,即创建 (100–10k) 输入输出对并预处理数据(即标记化、截断和填充文本)。
- 选择一个基础模型(试验不同的模型,然后选择一个在所需任务上表现最好的模型)。
- 通过监督学习微调模型。
- 评估模型性能。
这里重点讨论第4步:如何进行模型微调。
训练参数的3个可选项
在微调具有~100M-100B参数的模型时,需要考虑计算成本。为此,一个重要的问题是需要(重新)训练哪些参数?
选项 1:重新训练所有参数
第一种是训练所有内部模型参数(称为全参数调优,full parameter tuning)。这种调优方式计算成本最高。最重要的是,全参数调整的一个已知问题是「灾难性遗忘现象」,也就是模型“忘记”它在初始训练中“学到”的有用信息。
减轻选项1的缺点的一种方法是冻结大部分模型参数,这就引出了选项 2。
选项2:迁移学习
迁移学习(TL)的主要思想是在将模型应用于新任务时「保留模型从过去的训练中学到的有用表示/特征」(也就是微调的时候「权重不变」),只删除神经网络的“头部”并用新层替换(所谓的头部包括其最终层,这些层将模型的内部表示转换为输出值)。正是由于使用了新层替换,TL虽然保持大多数参数不变可以减轻训练LLM的巨大计算成本,但它「不一定能解决灾难性遗忘的问题」。
选项3:参数高效微调 (PEFT)
PEFT(Parameter Efficient Fine-tuning[7])使用相对较少的可训练参数来增强基础模型,其关键是一种微调方法,可通过使用一小部分计算和存储成本达到与全参数调优相当的性能。
PEFT封装了一系列技术,其中之一是流行的LoRA(Low-Rank Adaptation[8])方法。LoRA 背后的基本思想是在现有模型中 「选择一些层」(通常是Linear层和Conv1D层等),并根据以下一定的公式修改预训练模型中相应层的权重。
最后
给大家分享一本大模型入门书籍《从零开始大模型开发与微调:基于PyTorch与ChatGLM》,适合PyTorch深度学习初学者、大模型开发初学者、大模型开发人员学习。
有需要这本书籍PDF文档,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】
《从零开始大模型开发与微调:基于PyTorch与ChatGLM》共18章,内容包括:
- 人工智能与大模型
- PyTorch 2.0深度学习环境搭建
- 从零开始学习PyTorch 2.0
- 深度学习基础算法详解
- 基于PyTorch卷积层的MNIST分类实战
- PyTorch数据处理与模型展示
- ResNet实战
- 有趣的词嵌入
- 基于PyTorch循环神经网络的中文情感分类实战
- 自然语言处理的编码器
- 预训练模型BERT
- 自然语言处理的解码器
- 强化学习实战
- 只具有解码器的GPT-2模型
- 实战训练自己的ChatGPT
- 开源大模型ChatGLM使用详解
- ChatGLM高级定制化应用实战
- 对ChatGLM进行高级微调
有需要《从零开始大模型开发与微调:基于PyTorch与ChatGLM》PDF文档,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】