大模型的微调可以从以下几个方面来理解和操作:
一、大模型的基本概念
通俗来讲,大模型就是输入大量语料,来让计算机获得类似人类的“思考”能力,使之能够理解自然语言,能够进行“文本生成”、“推理问答”、“对话”、“文档摘要”等工作。
可以用“上学参加工作”这件事来类比大模型的训练、使用过程:
找学校:训练大模型需要大量的计算,因此 GPU 更合适,只有购买得起大量 GPU 的才有资本训练自己的大模型。 确定教材:大模型需要的数据量特别多,几千亿序列(Token)的输入基本是标配。 找老师:即用合适的算法讲述“书本”中的内容,让大模型能够更好理解 Token 之间的关系。 就业指导:学完书本中的知识后,为了让大模型能够更好胜任某一行业,需要进行微调(fine tuning)指导。 搬砖:就业指导完成后,下面就要正式干活了,比如进行一次翻译、问答等。二、微调的技术路线
从参数规模的角度,大模型的微调分成两条技术路线:
全量微调 FFT(Full Fine Tuning):对全量的模型参数,进行全量的训练。 PEFT(Parameter-Efficient Fine Tuning):只对部分模型参数进行训练。从成本和效果的角度综合考虑,PEFT 是目前业界比较流行的微调方案。
OpenAI 官方微调教程:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_finetune_chat_models.ipynb
微调是在较小的、特定领域的数据集上继续大模型的训练过程。这可以通过调整模型本身的参数,而不是像提示工程和 RAG 那样仅仅更改提示,来大幅提高模型在特定任务中的性能。把微调想象成把通用工具打磨成精密仪器。
三、微调的好处和操作方式
微调有两大好处:
提高模型在特定任务中的性能。微调意味着可以输入更多的示例。可以在数以百万计的代币上进行微调,而根据上下文的大小,少量学习提示仅限于数以万计的代币。经过微调的模型可能会失去一些通用性,但对于其特定任务而言,应该期待它有更好的表现。解决不当行为的方法是通过某种对话,助手给出了错误的响应。接受这个错误响应,并要求某人提供正确的答案。然后,用正确的答案覆盖错误的响应,并将其作为示例加入到训练数据中。下次进行微调时,模型就会在这种情况下得到改进。这是一个迭代过程,由于微调的成本较低,可以每周或每天进行这样的操作。通常,公司会在微调阶段而不是预训练阶段更频繁地进行迭代。