https://twitter.com/cwolferesearch/status/1763662791724921145
微调语言模型有很多不同的方式。以下是语言模型微调的简要总结,存在的各种方法,它们的目的以及我们对它们如何工作的了解...
术语“finetuning”简单地指的是对预训练模型进行进一步训练。对于LLMs来说,这意味着我们采用预训练的基础模型并对其进行更多训练。但是,这种训练可以以许多不同的方式进行,这使得微调的概念非常模糊。这个单一术语可以指代各种不同的技术,比如:
- 持续预训练(Continued pretraining)
- 指令微调(Instruction tuning)
- 监督微调(Supervised finetuning)
- 从人类反馈中进行强化学习(RLHF)或直接偏好优化(DPO)
对于语言模型,从业者在进行微调时通常有两个主要目标:
- 知识注入:教导模型如何在解决问题时利用新的知识来源(在预训练期间不存在)。
- 对齐(或样式/格式规范):修改语言模型表达其现有知识库的方式;例如,遵循特定的答案格式,使用新的风格/语气,避免输出不正确的信息等。
有了这些信息,我们可能会想:我们应该使用哪些微调技术来实现这些目标(或两者兼顾)?要回答这个问题,我们需要更深入地研究最近关于微调主题的研究。
大规模指令调优:在现代开源LLM发布之前,对预训练的LLM进行大规模指令调优是非常常见的。这种方法由Google等模型如FLAN推广,该模型在大型数据集上对预训练的语言模型进行指令调优。例如,对于FLAN来说,FLAN v2指令调优数据集包含超过1500万个示例——非常庞大!通过遵循这种方法,FLAN可以高效地学习解决大量不同的下游任务。
“我们展示通过在这些指令上训练模型,它不仅能够解决训练过程中见过的各种指令,还能够通常遵循指令。”- 来自FLAN论文[1]
在ChatGPT提出之后,我们看到了人们对于调整语言模型并使其输出格式符合特定风格或结构的愿望增加。这样的目标与教授语言模型解决新任务截然不同。当我们试图教授语言模型新知识时,更多的数据总是更好的(这就是像FLAN这样的模型使用的大型指导调整数据集)。然而,将语言模型与特定风格或结构的输出对齐并不需要学习新信息!因此,也许以对齐为重点的目标需要更少的精细调整。
LLM微调研究的话题是由LLaMA [2] (后来是LLaMA-2 [3] )的发布所催生的,这使得高质量的基础LLM公开可用。就在LLaMA之后不久,Meta的研究人员发表了LIMA[4] ,它表明对齐式微调可以用非常少的数据来实现。换句话说,对齐的目标是调整LLM的风格(而不是学习新信息),这可以通过一个小型、高质量和多样化的微调数据集来实现。这些发现揭示了LLM的大部分知识来自预训练,并且在对齐过程中LLM学会了正确的风格(见下面的引用)。
“模型的知识和能力几乎完全是在预训练期间学到的,而对齐则教会它在与用户交互时应该使用哪种子分布格式。”- 来自LIMA论文
在LIMA之后,通过对GPT-3.5/4输出的小型合成微调数据集进行LLaMA微调,产生了大量高质量、微调良好的LLM模型(例如Alpaca、Vicuna、Koala、Orca等)。通过这种方式,我们可以训练这些模型来模仿更强大的LLM模型的输出。在人类试验和简单基准测试中评估时,这些模型似乎能够匹配(甚至超过)ChatGPT等强大模型的性能。因此,从业者开始相信我们可以通过进行少量(廉价的)微调来超越GPT-4或ChatGPT等模型。
显然,像ChatGPT这样的模型训练并不是这么简单。研究人员很快发现了在模仿模型方面的一些局限性[5]:
- 如果LLM的风格很好,人类很容易被欺骗,而且(正如LIMA所示)这些模型可以很快学会用很少的数据模仿像ChatGPT这样的模型的风格。
- 使用的基准测试太有限了。当由少数人类进行评估时,这些模型表现良好,但在包括传统的、基于困惑度的评估(例如正常的自然语言处理基准测试)在内的更广泛的基准测试中,它们的表现就会崩溃。
我们可以从少量数据的微调中学习到某些东西(例如风格和输出格式),但我们无法学到所有东西!这些模仿模型缺乏更强大的LLM的知识库,这种知识只能通过大量数据学习得到。
根据我们目前所涵盖的所有信息,我们可以得出一些结论:
- 大部分来自LLM的知识都来自预训练。
- 我们可以通过继续预训练的微调形式来使LLM接触更多(和新的)数据/知识。
- 通过在小规模、高质量数据集上进行微调(SFT),可以实现以对齐为重点的目标。我们不需要大量数据来学习输出的风格或格式,只需学习新知识即可。
在进行微调时,非常重要的是我们要知道我们的目标是对齐还是知识注入。然后,我们应该制定基准,以便准确全面地评估是否实现了这一目标。模仿模型未能做到这一点,这导致了一系列误导性的声明/结果!
故事并没有就此结束!事实上,预训练和微调之间的区别仍然相当模糊。LLM 何时开始真正学习新知识,而不仅仅是学习风格/对齐?许多最近的出版物继续研究这个问题:
- Finetuning vs. RAG [6]:作者发现持续的预训练对知识注入并不是非常有效,而 RAG 实际上非常有效地将 LLM 专门用于新的知识库。
- LIMIT [7]:来自MosiacML/Databricks的作者表明,我们可以在一小部分指令调整和对齐焦点数据上进行微调,从而得到一个在自然语言处理基准测试和风格焦点评估中表现良好的模型。
- TULU [8]:作者对微调的LLM进行了更广泛的评估,发现基础模型的质量对性能有很大影响,并且没有一个微调数据集/策略能够在所有基准测试中取得最佳结果。
- TULU-2 [9]:作者表明,对特定数据集进行微调LLM会使模型学习特定的技能和数据领域。只要确保微调数据集与我们使用的评估风格/领域高度相关,微调效果就会很好。
- AlpaGasus [10]:作者直接研究了LLM在各种下游任务中表现良好需要多少微调数据。
[1] Wei, Jason, et al. "Finetuned language models are zero-shot learners." arXiv preprint arXiv:2109.01652 (2021). [2] Touvron, Hugo, et al. "Llama: Open and efficient foundation language models." arXiv preprint arXiv:2302.13971 (2023). [3] Touvron, Hugo, et al. "Llama 2: Open foundation and fine-tuned chat models." arXiv preprint arXiv:2307.09288 (2023). [4] Zhou, Chunting, et al. "Lima: Less is more for alignment." Advances in Neural Information Processing Systems 36 (2024). [5] Gudibande, Arnav, et al. "The false promise of imitating proprietary llms." arXiv preprint arXiv:2305.15717 (2023). [6] Ovadia, Oded, et al. "Fine-tuning or retrieval? comparing knowledge injection in llms." arXiv preprint arXiv:2312.05934 (2023). [7] Jha, Aditi, et al. "LIMIT: Less Is More for Instruction Tuning Across Evaluation Paradigms." arXiv preprint arXiv:2311.13133 (2023). [8] Wang, Yizhong, et al. "How far can camels go? exploring the state of instruction tuning on open resources." Advances in Neural Information Processing Systems 36 (2024). [9] Ivison, Hamish, et al. "Camels in a changing climate: Enhancing lm adaptation with tulu 2." arXiv preprint arXiv:2311.10702 (2023). [10] Chen, Lichang, et al. "Alpagasus: Training a better alpaca with fewer data." arXiv preprint arXiv:2307.08701 (2023).