训练和微调

训练和微调

微调本质上就是在调整(更新)模型的参数。当我们 说"调整参数"时,指的是调整神经网络内部数以亿计的权重(Weights)和偏置(Biases)。

  • **全量微调(Full Fine-Tuning):**把模型的所有参数全部解锁,用新数据重新训练一遍。

  • 高效微调(PEFT,如 LoRA):把模型原本的参数"冻结"保持不变,只在旁边外挂一小部分新参数,只训练这部分新参数。但无论哪种,改变的都是数学意义上的权重参数。

微调是广义训练的一种。

  • 预训练(Pre-training / 也就是常说的"训练") :从零开始(参数随机初始化),给模型吞下几万亿 Token 的无标订购本(比如整个互联网的网页、图书),让模型学会人类语言的语法、常识和逻辑。这是从无到有的过程,耗资巨大(千万级人民币)。

  • 微调(Fine-tuning): 在已经具备通用能力的预训练模型基础上,使用特定领域的精细数据,进行"二次训练"。这是从及格到优秀、从通用到专用的过程。

什么是 LoRA 指令微调?

1. 传统微调的痛点

假设你要微调一个 70B(700 亿参数)的模型。如果做全量微调,你需要同时更新 700 亿个参数。这不仅需要极其恐怖的显存(几百 GB 甚至上 TB),而且训练完后,你每针对一个场景微调,就要存一个 140GB 的完整模型文件,存储成本极高。

2. LoRA 的底层原理:低秩适应(Low-Rank Adaptation)

LoRA 的核心思想是:原模型的底层大矩阵太重了,我们不碰它;我们在它旁边贴两个小矩阵作为"补丁"。

  • 冻结原模型:模型原有的几百亿参数全部锁定,不接收梯度更新,变成"只读"。

  • 旁路降维矩阵:在原模型的矩阵旁边,增加两个低维度的矩阵AB。原矩阵如果是4096 \\times 4096的大小,LoRA 会把它拆解为4096 \\times rr \\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                                    # 开启半精度加速

训练结束后,你会得到什么? 你不会得到一个新的大模型,而是得到一组 和 文件。 在部署上线时,合并脚本会底层的把这两个"小补丁文件"融合进原本只读的大模型中,你的大模型就完成了进化,学会了听懂你特定业务的指令。

相关推荐
IT_陈寒35 分钟前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
甲维斯1 小时前
Claude Opus5手搓“NewAPI Plus”首轮成果!
人工智能
程序猿DD1 小时前
分享两个我每天都在用的 Skill,拖进豆包就能跑,限时领 30 天会员
人工智能
阿里云大数据AI技术1 小时前
Agentic Search 2.0:从单轮对话迈向企业级 AI 搜索自动驾驶Agent
人工智能·elasticsearch·agent
东风破_2 小时前
从 messages 数组到 Memory:大模型到底是怎么“记住”上一轮对话的?
人工智能
AEI2 小时前
四年间大模型的演进历程
人工智能·面试·程序员
狂师2 小时前
阿里开源:skill-up,一款Agent Skill 评测工具!
人工智能·开源·agent
武子康2 小时前
同一套 Agent Runtime,为什么 Web、Headless 和 Python SDK 仍然不是同一个产品
人工智能·llm·agent
天天代码码天天2 小时前
一个纯 C 的 OCR Runtime,又向前走了一步:lw.PPOCR.C preview.5 发布
人工智能
程序员cxuan2 小时前
Claude 官方的学习教程,太强了。
人工智能·后端·程序员