微调(又称大模型微调,)是深度学习中迁移学习的一种方法,其中预训练模型的权重会在新数据上进行训练。微调可以在整个神经网络上执行,也可以仅在其部分层上执行,此时未进行微调的层会被“冻结”(在反向传播步骤中不更新)。模型还可以通过“适配器”进行增强,适配器的参数远少于原始模型,通过调整适配器的权重并保持模型的其余权重不变的方式,以参数有效的方式进行微调。
对于一些体系结构,比如卷积神经网络,通常会将较早的层(靠近输入层的层)冻结,因为它们捕捉到较低层次的特征,而较后的层通常能够识别更高层次的特征,这些特征可能更相关于模型训练的任务。
对于在大型和通用语料库上进行预训练的模型,通常通过重用模型的参数作为起点,并添加一个从头开始训练的任务特定层进行微调。 对整个模型进行微调也很常见,通常会产生更好的结果,但计算成本更高。 微调可以与基于人类反馈的强化学习目标相结合,以生成像ChatGPT(GPT-3的微调版本)和等语言模型。
变种
低秩适应
低秩适应(, LoRA)是一种基于适配器的有效微调模型的技术。其基本思想是设计一个低秩矩阵,然后将其添加到原始矩阵中。 在这个背景下,“适配器”是一组低秩矩阵,当添加到基础模型时,产生一个微调模型。它允许在更少的空间需求下接近全模型微调的性能。拥有数十亿参数的语言模型可能只需数百万参数进行LoRA微调。
LoRA-based微调在Stable Diffusion社区中变得流行。 对LoRA的支持正在集成到Hugging Face的Diffusers库中。 对LoRA和类似技术的支持也通过Hugging Face的Parameter-Efficient Fine-Tuning(PEFT)软件包提供给广泛的其他模型。
应用领域
自然语言处理
微调在自然语言处理(NLP)中很常见,特别是在语言建模领域。像OpenAI的GPT基础模型系列这样的大型语言模型可以在特定下游NLP任务的数据上进行微调(使用预训练模型的任务),以提高性能,超过未修改的预训练模型。
商业模型
商业化的语言模型, 有时提供商提供了微调API,可以进行微调。 截至2023年6月19日,OpenAI和Microsoft Azure的“Azure OpenAI Service”为其部分模型提供了语言模型微调API,Google Cloud Platform为其部分PaLM模型提供了API,其他提供商也有类似服务。但是,并非所有商业模型目前都支持微调。
参见
- 机器学习
- 深度学习
- 迁移学习
- 通用人工智慧
- 生成式人工智慧
- 图灵测试
- 生成对抗网络
- Transformer模型
- 大型语言模型
- 提示工程
参考资料
评论 (0)