LoRA 的用法要分场景看。常见有两类:大语言模型微调,和 Stable Diffusion 出图。
一、大语言模型微调用 LoRA。
1. 准备数据:整理成指令格式,例如 `{"instruction":"...","input":"...","output":"..."}`。
2. 选基座模型:LoRA 必须和基座模型匹配,不能随便混用。
3. 安装依赖:常用 `transformers`、`peft`、`datasets`、`accelerate`。
4. 配置 LoRA:设置 `r`、`lora_alpha`、`lora_dropout`、`target_modules`。
5. 挂载并训练:用 `peft` 给模型加 LoRA adapter,只训练少量参数。
6. 保存 adapter:通常保存 `adapter_model.bin` 或 `adapter_model.safetensors` 和配置文件。
7. 推理使用:加载基座模型后,再加载 LoRA adapter;也可以按需合并权重。
最小示例思路:
```python
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("基座模型路径")
config = LoraConfig(
r=8,
lora_alpha=16,
lora_dropout=0.05,
target_modules=["q_proj", "v_proj"],
task_type="CAUSAL_LM"
)
model = get_peft_model(model, config)
model.print_trainable_parameters()
```
然后用 `Trainer` 或自定义训练循环训练,训练完调用 `model.save_pretrained("lora输出目录")`。
推理加载示例:
```python
from peft import PeftModel
model = PeftModel.from_pretrained(base_model, "lora输出目录")
```
二、Stable Diffusion 用 LoRA。
1. 下载 `.safetensors` 格式的 LoRA 文件。
2. 放到 WebUI 的 `models/Lora` 目录,或 ComfyUI 对应 LoRA 目录。
3. 在提示词中调用,例如:`<lora:my_lora:0.8>`。
4. 权重一般从 `0.5` 到 `1.0` 试起,过高可能画面崩坏。
5. 注意基座模型匹配:SD1.5、SDXL、Pony 等 LoRA 不能随便混用。
三、使用注意。
LoRA 不是独立模型,通常要配合基座模型使用。训练时数据质量比数量更重要。学习率常用 `1e4` 到 `3e4` 起步。`r` 越大容量越强但更占资源,常用 `8`、`16`、`32`。如果你说的是大模型微调、Stable Diffusion、还是某个具体框架,我可以给更对应的步骤。 |
|