训练和微调微调本质上就是在调整更新模型的参数。当我们说“调整参数”时指的是调整神经网络内部数以亿计的权重Weights和偏置Biases。全量微调Full Fine-Tuning把模型的所有参数全部解锁用新数据重新训练一遍。高效微调PEFT如 LoRA把模型原本的参数“冻结”保持不变只在旁边外挂一小部分新参数只训练这部分新参数。但无论哪种改变的都是数学意义上的权重参数。微调是广义训练的一种。预训练Pre-training / 也就是常说的“训练”从零开始参数随机初始化给模型吞下几万亿 Token 的无标订购本比如整个互联网的网页、图书让模型学会人类语言的语法、常识和逻辑。这是从无到有的过程耗资巨大千万级人民币。微调Fine-tuning在已经具备通用能力的预训练模型基础上使用特定领域的精细数据进行“二次训练”。这是从及格到优秀、从通用到专用的过程。什么是 LoRA 指令微调1. 传统微调的痛点假设你要微调一个 70B700 亿参数的模型。如果做全量微调你需要同时更新 700 亿个参数。这不仅需要极其恐怖的显存几百 GB 甚至上 TB而且训练完后你每针对一个场景微调就要存一个 140GB 的完整模型文件存储成本极高。2. LoRA 的底层原理低秩适应Low-Rank AdaptationLoRA 的核心思想是原模型的底层大矩阵太重了我们不碰它;我们在它旁边贴两个小矩阵作为“补丁”。冻结原模型模型原有的几百亿参数全部锁定不接收梯度更新变成“只读”。旁路降维矩阵在原模型的矩阵旁边增加两个低维度的矩阵$A$和$B$。原矩阵如果是$4096 \times 4096$的大小LoRA 会把它拆解为$4096 \times r$和$r \times 4096$的两个小矩阵其中$r$通常设得很小比如 8 或 16。数学运算输入数据同时走原矩阵和 LoRA 矩阵最后把结果相加$Y W_0X \Delta WX W_0X (B \times A)X$。惊人的优势需要训练的参数量直接暴降到原来的1% 甚至 0.1%。4090 级别的消费级显卡就能玩得转。 微调完后产出的模型文件LoRA 权重只有几十兆到几百兆可以像插件一样随时插拔。3. “LoRA指令微调”的实操指令过程当你使用上述提到的框架进行 LoRA 指令微调时底层的核心运行逻辑如下以命令行脚本为例LLaMA-Factory巴什# 启动 LLaMA-Factory 进行 LoRA 指令微调 llamafactory-cli train \ --stage sft \ # 阶段SFT监督微调/指令微调 --model_name_or_path /path/to/Qwen2.5 \ # 基础大模型路径 --dataset my_instruction_data \ # 你的指令微调数据集 --finetuning_type lora \ # 微调类型明确指定为 LoRA --lora_target q_proj, v_proj \ # 将 LoRA 补丁贴在注意力机制的 Q, V 矩阵上 --output_dir /path/to/lora_weights \ # 训练好后的 LoRA 补丁保存路径 --per_device_train_batch_size 4 \ # 显存控制单卡批次 --learning_rate 5e-5 \ # 学习率微调参数的步长 --fp16 # 开启半精度加速训练结束后你会得到什么你不会得到一个新的大模型而是得到一组 和 文件。 在部署上线时合并脚本会底层的把这两个“小补丁文件”融合进原本只读的大模型中你的大模型就完成了进化学会了听懂你特定业务的指令。
训练和微调
发布时间:2026/5/20 3:35:13
训练和微调微调本质上就是在调整更新模型的参数。当我们说“调整参数”时指的是调整神经网络内部数以亿计的权重Weights和偏置Biases。全量微调Full Fine-Tuning把模型的所有参数全部解锁用新数据重新训练一遍。高效微调PEFT如 LoRA把模型原本的参数“冻结”保持不变只在旁边外挂一小部分新参数只训练这部分新参数。但无论哪种改变的都是数学意义上的权重参数。微调是广义训练的一种。预训练Pre-training / 也就是常说的“训练”从零开始参数随机初始化给模型吞下几万亿 Token 的无标订购本比如整个互联网的网页、图书让模型学会人类语言的语法、常识和逻辑。这是从无到有的过程耗资巨大千万级人民币。微调Fine-tuning在已经具备通用能力的预训练模型基础上使用特定领域的精细数据进行“二次训练”。这是从及格到优秀、从通用到专用的过程。什么是 LoRA 指令微调1. 传统微调的痛点假设你要微调一个 70B700 亿参数的模型。如果做全量微调你需要同时更新 700 亿个参数。这不仅需要极其恐怖的显存几百 GB 甚至上 TB而且训练完后你每针对一个场景微调就要存一个 140GB 的完整模型文件存储成本极高。2. LoRA 的底层原理低秩适应Low-Rank AdaptationLoRA 的核心思想是原模型的底层大矩阵太重了我们不碰它;我们在它旁边贴两个小矩阵作为“补丁”。冻结原模型模型原有的几百亿参数全部锁定不接收梯度更新变成“只读”。旁路降维矩阵在原模型的矩阵旁边增加两个低维度的矩阵$A$和$B$。原矩阵如果是$4096 \times 4096$的大小LoRA 会把它拆解为$4096 \times r$和$r \times 4096$的两个小矩阵其中$r$通常设得很小比如 8 或 16。数学运算输入数据同时走原矩阵和 LoRA 矩阵最后把结果相加$Y W_0X \Delta WX W_0X (B \times A)X$。惊人的优势需要训练的参数量直接暴降到原来的1% 甚至 0.1%。4090 级别的消费级显卡就能玩得转。 微调完后产出的模型文件LoRA 权重只有几十兆到几百兆可以像插件一样随时插拔。3. “LoRA指令微调”的实操指令过程当你使用上述提到的框架进行 LoRA 指令微调时底层的核心运行逻辑如下以命令行脚本为例LLaMA-Factory巴什# 启动 LLaMA-Factory 进行 LoRA 指令微调 llamafactory-cli train \ --stage sft \ # 阶段SFT监督微调/指令微调 --model_name_or_path /path/to/Qwen2.5 \ # 基础大模型路径 --dataset my_instruction_data \ # 你的指令微调数据集 --finetuning_type lora \ # 微调类型明确指定为 LoRA --lora_target q_proj, v_proj \ # 将 LoRA 补丁贴在注意力机制的 Q, V 矩阵上 --output_dir /path/to/lora_weights \ # 训练好后的 LoRA 补丁保存路径 --per_device_train_batch_size 4 \ # 显存控制单卡批次 --learning_rate 5e-5 \ # 学习率微调参数的步长 --fp16 # 开启半精度加速训练结束后你会得到什么你不会得到一个新的大模型而是得到一组 和 文件。 在部署上线时合并脚本会底层的把这两个“小补丁文件”融合进原本只读的大模型中你的大模型就完成了进化学会了听懂你特定业务的指令。