# 微调 PrivateAssistant 的 Gemma 4（LoRA）

把助理的说话风格/人设烙进模型。流程：

1. **导出训练数据**：应用 Settings → Fine-Tuning → Export Training Data，
   保存为 `train.jsonl`（每行一段完整对话，chat messages 格式）。
   建议 ≥ 200 段高质量对话；风格越一致效果越好。
2. **准备数据目录**：
   ```
   mkdir -p data
   # 训练集（必须叫 train.jsonl）
   cp ~/Downloads/train.jsonl data/train.jsonl
   # 验证集：从训练集里分出约 10%（必须叫 valid.jsonl）
   tail -20 data/train.jsonl > data/valid.jsonl
   ```
3. **训练**（首次运行会创建 Python 环境）：
   ```
   ./train.sh
   ```
   在 M5 Max 上几百步大约几十分钟。产物在 `adapters/` 目录
   （adapter_config.json + adapters.safetensors）。
4. **导入应用**：Settings → Fine-Tuning → Import LoRA Adapter… 选择 `adapters` 文件夹。
   之后 Gemma 的每次回复都会带上微调后的风格；Remove 可随时回到基础模型。

## 注意（实验性）

- 训练目标是量化模型（QLoRA）。若 mlx-lm 对 gemma-4 的 OptiQ 混合量化
  报不支持，把 `train.sh` 里的 `MODEL` 换成 `mlx-community/gemma-4-e4b-it-bf16`
  （需要更多内存，训练出的 adapter 同样可加载到 OptiQ 模型上——层名一致）。
- 微调改的是"风格"，不是"知识"。配方等事实请放进应用的知识库（Knowledge Base）。
