1、什么是微调(Fine-Tuning)?

        Fine-Tuning就是一个“再训练”的过程。我们用一个专门的、规模较小的领域数据集,对一个已经预训练好的、通用的LLM(大模型)进行额外的训练,让它适应特定任务或领域

        核心目的:让一个“什么都懂一点”的通才,变成在某个特定领域“非常精通”的专家。

2、为什么要做微调?

       可能有的人会问:我使用 Prompt Engineering - 提示词工程,不就可以了吗? 当然,如果能够通过Prompt Engineering可以解决的问题就不需要大动干戈地去微调模型了,毕竟,训练一个微调的模型代价还是很大的,而且需要具备专业的知识和充足的数据才行。 但是,当仅仅通过修改提示词不能够满足需求的时候,还是需要进行微调的。例如:

        1, 需要有稳定的输出,通过修改提示词,确实可以改进输出的结果,但是不同的人修改的提示词的不同,输出的内容可能也不同。提示词的微小变化(比如换个同义词、调整一下语序)有时会导致输出结果的巨大差异。这种不稳定性使得它在需要高可靠性的生产环境中存在风险。

        2, LLM有一个固定的“工作记忆区”,即上下文窗口。你的提示词、对话历史、提供的知识都在这个窗口里。如果信息太多,最早输入的内容就会被“忘掉”。

        3, 为了得到一个高质量的结果,你可能需要写非常长、非常详细的提示词。这在每次交互中都是一种开销,并且对于终端用户来说是不现实的。

        4, 提示词工程无法超越基础模型本身的能力上限。如果基础模型不擅长逻辑推理,或者缺乏某个领域的知识,你再怎么优化提示词,它也“无中生有”不了。

        提示词工程是你的“第一把武器”。它快速、灵活、无需训练成本,非常适合探索、快速原型制作和一般性任务。但当你的需求变得专业化、规模化,并要求高可靠性时,提示词工程的缺陷就会暴露出来。这时,模型微调就成了更强大、更根本的解决方案。        

        总之,简单总结城一句话,能用提示词解决的问题,就先用提示词。当提示词变得力不从心时,就是考虑微调的时候了。

3、如何进行微调?

        Fine-Tuning(微调):把通用的“通才”大模型,用特定领域的数据进行再训练,变成专业的“专家”模型。如果要微调一个模型,需要分成以下基本步骤:

一、目标定义

        要微调一个模型,一个明确的、可衡量的任务描述是非常必要的。需要描述在什么领域,要做什么,做到什么程度。

二、准备数据

        这是最关键的一步,垃圾进,垃圾出。你需要准备一个高质量的领域特定数据集

          1. 数据格式: 根据你的任务,将收集的数据以一定的格式整理,例如:JSON格式;

          2. 数据要求:数据必须准确、无误。对于大模型,通常几千到几万个高质量的样本就能产生显著效果。数据的风格、格式要统一。

三、选择模型与方法

        根据领域的要求和准备的数据选择一个合适的模型,有开源模型和闭源模型,可以通过https://www.vellum.ai/llm-leaderboard?utm_source=bing&utm_medium=organic对模型进行初期的比较和筛选。

  • 开源模型:如LLaMA、Falcon、ChatGLM、Qwen等。这是微调的首选,因为你可以完全控制它们。

  • 闭源模型:如GPT系列,部分开放微调API(如OpenAI的Fine-tuning API)。使用简单,但灵活性和控制力较差。

四、选择微调的方法

这是技术的核心部分。由于全面微调成本太高,我们通常使用高效微调 方法。

  • LoRA:目前最流行的方法

    • 比喻:不是重新装修整个厨房(全面微调),而是给厨师一本精简的“快捷指令手册”。训练时,只训练这本小手册里的内容,主厨的大脑基本不动。

    • 优点:速度快,成本低,产生的模型文件很小(只保存“手册”),可以轻松切换不同任务。

  • QLoRA:LoRA的升级版,进一步降低内存需求,让你在消费级显卡上也能微调大模型。

  • Prefix-Tuning / P-Tuning:在输入前加一段可训练的“提示参数”,像是一个“任务触发器”。

五、执行训练

        现在,一切准备就绪,开始训练。这个过程通常是自动化的,你需要做的是:

        根据模型的不同,需要配置不同的参数,例如:

        学习率:厨师学习的速度。太快会“学歪”,太慢则效率低下。

        训练轮数:把整个菜谱学习多少遍。

        批处理大小:一次看多少道菜谱再更新一次知识。

            也可以使用像Hugging Face的Transformers库和PEFT 库,配合Axolotl 等高级工具,你只需要写一个配置文件,然后运行脚本。

    六、模型评估

    • 定量评估:在一个模型没见过的测试集上,计算BLEU、ROUGE等分数(如果任务有标准答案)。

    • 定性评估(更重要!)人工检查。你亲自问模型一些问题,看看它的回答是否符合你的预期。这是最终的试金石。

    最后,就是模型部署,将训练好的模型(基础模型 + LoRA适配器)合并,并加载到推理引擎中(如FastAPI、vLLM等)。

    Logo

    更多推荐