fine-tuning

微调与参数高效微调

本文整理 Char01.txtChar03.txtChar05.txtChar06.txtChar08.txtChar09.txt 中的微调相关概念,并给出适合 Jetson Nano 的替代路线。

1. 微调是什么

微调是在预训练模型基础上,用任务数据继续训练,使模型适配特定任务或领域。

常见目标:

2. 全量微调 vs 参数高效微调

方法 更新参数 显存/内存 Jetson Nano 适合度
全量微调 全部参数 最高 不适合大模型,只适合 tiny 模型
LoRA 低秩适配矩阵 中低 适合概念演示,不适合真实 0.5B+ 训练
P-Tuning / Prompt Tuning 虚拟 token / prompt 参数 较低 适合小模型演示
冻结骨干 + 分类头 只训练头部 较低 Jetson Nano 相对可行
RAG 不训练或少训练 非常适合 Jetson Nano 原型

3. 数据准备流程

随书多个章节都遵循类似流程:

flowchart LR A[Raw Data] --> B[Clean] B --> C[Train/Validation Split] C --> D[Tokenizer] D --> E[Tensor Dataset] E --> F[Trainer / Training Loop] F --> G[Evaluation] G --> H[Save Model]

关键点:

4. 模型替换策略

原始示例中的大模型需要替换:

原示例 问题 建议替换
facebook/llama-3b 太大,不适合 Nano distilbert-base-uncasedprajjwal1/bert-tiny
gpt2 可推理但微调吃紧 sshleifer/tiny-gpt2、自定义 tiny decoder
gemma/gpt-7b-finetuned 完全不适合 Nano 远程 API 或云 GPU
Salesforce/codegen-350M-multi 训练不适合 Nano Salesforce/codet5-small 仅做小样本/CPU 演示
Qwen2.5-0.5B 可作为轻量推理目标,训练仍重 用量化推理;微调放云端

5. LoRA 概念

LoRA 的核心思想:冻结原模型权重,只训练低秩矩阵:

W' = W + BA

其中:

适合学习的 LoRA 配置:

lora_config = {
    "rank": 4,
    "alpha": 8,
    "dropout": 0.05,
    "target_modules": ["q_proj", "v_proj"],
}

在 Jetson Nano 上,建议只做:

不要在 Nano 上对 Qwen2.5-0.5B 做训练型 LoRA。

6. P-Tuning / Prompt Tuning

P-Tuning 不直接改模型主体,而是学习一组虚拟 token embedding,引导模型完成任务。

适合理解:

Jetson Nano 上建议用小分类模型或 tiny seq2seq 模型演示。

7. Trainer 参数建议

随书示例常见参数:

TrainingArguments(
    per_device_train_batch_size=4,
    num_train_epochs=3,
    max_length=64,
)

Jetson Nano 建议:

TrainingArguments(
    per_device_train_batch_size=1,
    gradient_accumulation_steps=4,
    num_train_epochs=1,
    max_steps=50,
    logging_steps=5,
    save_strategy="no",
    fp16=False,
)

说明:

8. 评估指标

任务 指标
分类 Accuracy、Precision、Recall、F1、Confusion Matrix
生成 Perplexity、人工评估、BLEU、ROUGE
翻译 BLEU、COMET、人工评估
检索 Recall@K、MRR、NDCG
Agent 任务完成率、工具调用成功率、成本、延迟

9. 推荐实践路线

  1. 手写 tiny Transformer,理解 forward / loss / backward。
  2. 用小数据训练字符级语言模型。
  3. sshleifer/tiny-gpt2 跑生成推理。
  4. prajjwal1/bert-tiny 做分类微调。
  5. 用 LoRA 思路改造一个自定义小模型。
  6. 把真实大模型训练迁移到云端或桌面 GPU。
  7. 在 Jetson Nano 上部署量化推理、RAG 或 API 原型。

Page Source