微调 (深度学习)

微调（又称大模型微调，英語：fine-tuning）是深度学习中迁移学习的一种方法，其中预训练模型的权重会在新数据上进行训练。微调可以在整个神经网络上执行，也可以仅在其部分层上执行，此时未进行微调的层会被“冻结”（在反向传播步骤中不更新）。模型还可以通过“适配器”进行增强，适配器的参数远少于原始模型，通过调整适配器的权重并保持模型的其余权重不变的方式，以参数有效的方式进行微调。 对于一些体系结构，比如卷积神经网络，通常会将较早的层（靠近输入层的层）冻结，因为它们捕捉到较低层次的特征，而较后的层通常能够识别更高层次的特征，这些特征可能更相关于模型训练的任务。 对于在大型和通用语料库上进行预训练的模型，通常通过重用模型的参数作为起点，并添加一个从头开始训练的任务特定层进行微调。 对整个模型进行微调也很常见，通常会产生更好的结果，但计算成本更高。 微调通常通过监督学习完成，但也有使用弱监督（英语：Weak supervision）进行模型微调的技术。 微调可以与基于人类反馈的强化学习目标相结合，以生成像ChatGPT（GPT-3的微调版本）和Sparrow（英语：Sparrow (bot)）等语言模型。 低秩适应(英語：Low-rank adaptation, 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模型 大语言模型 提示工程 Quinn, Joanne. Dive into deep learning: tools for engagement. Thousand Oaks, California. 2020: 551 [January 10, 2023]. ISBN 978-1-5443-6137-6. （原始内容存档于January 10, 2023）.  CS231n Convolutional Neural Networks for Visual Recognition. cs231n.github.io. [9 March 2023]. （原始内容存档于2023-03-23）.  Liu, Haokun; Tam, Derek; Muqeeth, Mohammed; Mohta, Jay; Huang, Tenghao; Bansal, Mohit; Raffel, Colin A. Koyejo, S.; Mohamed, S.; Agarwal, A.; Belgrave, D.; Cho, K.; Oh, A. , 编. Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning (PDF). Advances in Neural Information Processing Systems 35. Curran Associates, Inc.: 1950–1965. 2022 [2023-12-11]. （原始内容存档 (PDF)于2023-12-26）.  Zeiler, Matthew D; Fergus, Rob. Visualizing and Understanding Convolutional Networks. 2013. arXiv:1311.2901 .  Dodge, Jesse; Ilharco, Gabriel; Schwartz, Roy; Farhadi, Ali; Hajishirzi, Hannaneh; Smith, Noah. Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping. 2020. arXiv:2002.06305 .  Dingliwal, Saket; Shenoy, Ashish; Bodapati, Sravan; Gandhe, Ankur; Gadde, Ravi Teja; Kirchhoff, Katrin. Prompt Tuning GPT-2 language model for parameter-efficient domain adaptation of ASR systems. 2021. arXiv:2112.08718 .  Yu, Yue; Zuo, Simiao; Jiang, Haoming; Ren, Wendi; Zhao, Tuo; Zhang, Chao. Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach. 2020. arXiv:2010.07835 .  Introducing ChatGPT. openai.com. [9 March 2023]. （原始内容存档于2023-03-16）.  Glaese, Amelia; McAleese, Nat; Trębacz, Maja; Aslanides, John; Firoiu, Vlad; Ewalds, Timo; Rauh, Maribeth; Weidinger, Laura; Chadwick, Martin; Thacker, Phoebe; Campbell-Gillingham, Lucy; Uesato, Jonathan; Huang, Po-Sen; Comanescu, Ramona; Yang, Fan; See, Abigail; Dathathri, Sumanth; Greig, Rory; Chen, Charlie; Fritz, Doug; Elias, Jaume Sanchez; Green, Richard; Mokrá, Soňa; Fernando, Nicholas; Wu, Boxi; Foley, Rachel; Young, Susannah; Gabriel, Iason; Isaac, William; Mellor, John; Hassabis, Demis; Kavukcuoglu, Koray; Hendricks, Lisa Anne; Irving, Geoffrey. Improving alignment of dialogue agents via targeted human judgements. 2022. arXiv:2209.14375 .  Hu, Edward J.; Shen, Yelong; Wallis, Phillip; Allen-Zhu, Zeyuan; Li, Yuanzhi; Wang, Shean; Wang, Lu; Chen, Weizhu. LoRA: Low-Rank Adaptation of Large Language Models. 2022-01-28 [2023-12-12]. arXiv:2106.09685 . （原始内容存档于2023-03-15） （英语）.  Ryu, Simo. Using Low-rank adaptation to quickly fine-tune diffusion models. GitHub. February 13, 2023 [June 19, 2023]. （原始内容存档于2024-01-06）.  Cuenca, Pedro; Paul, Sayak. Using LoRA for Efficient Stable Diffusion Fine-Tuning. Hugging Face. January 26, 2023 [June 19, 2023]. （原始内容存档于2023-12-31）.  Parameter-Efficient Fine-Tuning using 🤗 PEFT. huggingface.co. [2023-06-20]. （原始内容存档于2023-11-22）.  Fine-tuning. OpenAI. [2023-06-19]. （原始内容存档于2023-12-29）.  Learn how to customize a model for your application. Microsoft. [2023-06-19]. （原始内容存档于2023-06-19）.  Tune text foundation models. [2023-06-19]. （原始内容存档于2023-12-22）.