@mcptoolshop/backpropagate 1.1.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +217 -211
- package/README.fr.md +216 -210
- package/README.hi.md +216 -210
- package/README.it.md +221 -215
- package/README.ja.md +221 -215
- package/README.md +216 -210
- package/README.pt-BR.md +215 -209
- package/README.zh.md +215 -209
- package/bin/backpropagate.js +29 -196
- package/package.json +2 -5
package/README.zh.md
CHANGED
|
@@ -10,144 +10,152 @@
|
|
|
10
10
|
<a href="https://github.com/mcp-tool-shop-org/backpropagate/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/backpropagate/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
11
11
|
<a href="https://pypi.org/project/backpropagate/"><img src="https://img.shields.io/pypi/v/backpropagate" alt="PyPI"></a>
|
|
12
12
|
<a href="https://codecov.io/gh/mcp-tool-shop-org/backpropagate"><img src="https://img.shields.io/codecov/c/github/mcp-tool-shop-org/backpropagate" alt="Coverage"></a>
|
|
13
|
+
<a href="https://scorecard.dev/viewer/?uri=github.com/mcp-tool-shop-org/backpropagate"><img src="https://api.scorecard.dev/projects/github.com/mcp-tool-shop-org/backpropagate/badge" alt="OpenSSF Scorecard"></a>
|
|
13
14
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
14
15
|
<a href="https://mcp-tool-shop-org.github.io/backpropagate/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
15
16
|
</p>
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
# 训练一个适配器。将其发送到 Ollama。完成
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Backpropagate 是一个 Python 库,用于在单个 GPU 上微调大型语言模型。只需三行代码,即可在 16GB 的显卡上训练一个 7B 模型。再执行一个命令,即可将其导出到 Ollama,然后您就可以使用 `ollama run` 命令进行微调。它在 Windows 上的兼容性良好。
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
```python
|
|
23
|
+
from backpropagate import Trainer
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
trainer = Trainer("Qwen/Qwen2.5-7B-Instruct")
|
|
26
|
+
trainer.train("my_data.jsonl", steps=100)
|
|
27
|
+
trainer.export("gguf", quantization="q4_k_m")
|
|
28
|
+
```
|
|
24
29
|
|
|
25
30
|
```bash
|
|
26
|
-
|
|
31
|
+
backprop ollama register ./output/lora --name my-model
|
|
32
|
+
ollama run my-model
|
|
27
33
|
```
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
from backpropagate import Trainer
|
|
35
|
+
就这样。没有 YAML 配置文件。没有 `accelerate launch` 命令。也没有单独的“如何将其转换为 GGUF 格式”的教程。如果您有一个 CUDA GPU 并且有一个包含训练数据的 JSONL 文件,您只需三行代码就可以完成微调。
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
trainer.train("examples/quickstart.jsonl", steps=10)
|
|
34
|
-
trainer.export("gguf", quantization="q4_k_m") # Ready for Ollama
|
|
35
|
-
```
|
|
37
|
+
## 安装
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
```bash
|
|
40
|
+
# Recommended: isolated Python install (no conflicts with system Python or other projects)
|
|
41
|
+
pipx install backpropagate
|
|
42
|
+
|
|
43
|
+
# Or via uv (faster install, same isolation)
|
|
44
|
+
uv tool install backpropagate
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
# Standard pip (if you manage your own virtualenv)
|
|
47
|
+
pip install backpropagate
|
|
48
|
+
```
|
|
40
49
|
|
|
41
|
-
|
|
50
|
+
如果您想要可选功能,请将安装替换为以下选项之一:
|
|
42
51
|
|
|
43
52
|
```bash
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
pipx install "backpropagate[standard]" # adds Unsloth (2x faster training) + the web UI
|
|
54
|
+
pipx install "backpropagate[full]" # adds everything: unsloth, ui, monitoring, export, etc.
|
|
46
55
|
```
|
|
47
56
|
|
|
48
|
-
|
|
57
|
+
更喜欢 Docker?`docker pull ghcr.io/mcp-tool-shop-org/backpropagate:latest` 也可以。镜像支持 `linux/amd64` 和 `linux/arm64`,因此 Apple Silicon 和 ARM Linux 用户可以获得原生镜像。一个标准的 `compose.yaml` 文件,用于“在容器中运行 UI”,位于仓库根目录,使用 `docker compose up` 命令可以启动 Web UI,地址为 `http://localhost:7860`,并且会挂载一个持久化的 `~/.backpropagate` 卷。
|
|
49
58
|
|
|
50
|
-
##
|
|
59
|
+
## Backpropagate 的定位
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
有很多优秀的库可用于微调大型语言模型。每个库在不同的方面都非常出色:
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
- **[Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)** — 如果您喜欢 YAML 配置文件,并且想要参考一些配方。
|
|
64
|
+
- **[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)** — 如果您想要一个 Web GUI,并且内置了对 DPO/PPO/RLHF 的支持。
|
|
65
|
+
- **[Unsloth](https://github.com/unslothai/unsloth)** — 如果您需要尽可能快的训练速度,并且使用的是受支持的模型系列。
|
|
66
|
+
- **[torchtune](https://github.com/pytorch/torchtune)** — 如果您想要 Meta 提供的原生 PyTorch 配方,可以进行编辑。
|
|
58
67
|
|
|
59
|
-
|
|
68
|
+
Backpropagate 是一个缺失的选项:**一个用于单个消费级 GPU 的独立操作员的 3 行 Python API,用于训练适配器并将其部署。** 没有 YAML,没有 GUI,没有 DPO/PPO,没有多节点。 只有每个人真正需要的循环,以及一个会妨碍您的导出步骤。
|
|
60
69
|
|
|
61
|
-
|
|
70
|
+
如果您尝试了上述任何一个库,但因为配置文件而感到困扰,或者遇到了模型系列的限制,或者想要 Windows 优先的默认设置,那么 Backpropagate 就是为您准备的。
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
|---------|----------|
|
|
65
|
-
| 微调很复杂 | 3 行代码:加载、训练、保存 |
|
|
66
|
-
| Windows 系统很麻烦 | 一流的 Windows 支持 |
|
|
67
|
-
| VRAM 管理很困难 | 自动批处理大小、GPU 监控 |
|
|
68
|
-
| 模型导出很复杂 | 一键导出为 GGUF 格式,并自动注册到 Ollama |
|
|
69
|
-
| 长时间运行会导致遗忘 | 多轮 SLAO 训练 |
|
|
72
|
+
## 您可以在 16GB 的消费级 GPU 上微调的内容
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
以下是在 16GB 显卡(RTX 4080 / 5080 / 4070 Ti Super)上的实际限制:
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
76
|
+
| 模型 | 方法 | 状态 |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Qwen-3.5-4B / Phi-4-mini-3.8B / SmolLM3-3B | LoRA / QLoRA / DoRA | 良好。完整的序列长度,还有剩余空间。 |
|
|
79
|
+
| Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | 标准。约 7-8 GB。Backpropagate 的默认设置。 |
|
|
80
|
+
| Llama-3 13B | QLoRA + 采样压缩 | 勉强可用。使用较短的序列。 |
|
|
81
|
+
| Mixtral 8x7B (总参数 47B) | AQLM 2-bit + LoRA | v1.4 中的实验性功能。您可以在 16GB 显卡上运行的最大模型。 |
|
|
79
82
|
|
|
80
|
-
|
|
83
|
+
对于 3B 及更小的模型,可以在 16GB 的显卡上进行完整的微调(而不仅仅是 LoRA),并且计划在 v1.4 中提供一个 `mode="full"` 选项。对于 7B+ 的模型,需要 24GB+ 的 GPU 才能进行完整的微调。您可以考虑租用 A100 云服务器,或者坚持使用 LoRA,因为最近的研究表明,在大多数微调后的任务中,LoRA 的质量可以与完整的微调相媲美(请参阅 [“不适合使用的场景”](#what-backpropagate-is-not-for) 部分以获取引用)。
|
|
81
84
|
|
|
82
|
-
|
|
83
|
-
pip install backpropagate # Core only (minimal)
|
|
84
|
-
pip install backpropagate[unsloth] # + Unsloth 2x faster training
|
|
85
|
-
pip install backpropagate[ui] # + Reflex (Radix UI) web interface
|
|
86
|
-
pip install backpropagate[standard] # unsloth + ui (recommended)
|
|
87
|
-
pip install backpropagate[full] # Everything
|
|
88
|
-
```
|
|
85
|
+
## Backpropagate 不适合的场景
|
|
89
86
|
|
|
90
|
-
|
|
91
|
-
|-------|-------------|--------------|
|
|
92
|
-
| `unsloth` | 训练速度提升 2 倍,VRAM 减少 50% | unsloth |
|
|
93
|
-
| `ui` | Reflex (Radix UI) Web 界面 | reflex>=0.9.2, fastapi>=0.115 |
|
|
94
|
-
| `validation` | Pydantic 配置验证 | pydantic, pydantic-settings |
|
|
95
|
-
| `export` | 用于 Ollama 的 GGUF 导出 | llama-cpp-python |
|
|
96
|
-
| `monitoring` | WandB + 系统监控(在 v1.1.0 中自动集成到训练器中) | wandb, psutil |
|
|
97
|
-
| `observability` | OpenTelemetry 追踪 | opentelemetry-api, opentelemetry-sdk |
|
|
98
|
-
| `logging` | 结构化日志记录 | structlog |
|
|
99
|
-
| `security` | JWT 身份验证 + 令牌生成 | PyJWT, cryptography |
|
|
100
|
-
| `production` | unsloth + ui + validation + logging + security | (捆绑) |
|
|
87
|
+
坦诚的说明有助于每个人。Backpropagate 不适用于以下场景,并且尝试使其执行这些操作会比使用正确的工具更糟糕:
|
|
101
88
|
|
|
102
|
-
|
|
89
|
+
- **70亿参数以上模型的全面微调** — Backpropagate 使用 LoRA/QLoRA,它训练一个小的适配器,而不是更新每个权重。对于 70 亿参数及以上的模型,全面微调需要 24GB+ 的 GPU 内存,无法在 16GB 的消费级显卡上运行。对于 30 亿参数及以下的模型,全面微调可以在 16GB 的显卡上运行;v1.4 计划提供 `mode="full"` 选项。更重要的是,最近的研究([Biderman 2024](https://arxiv.org/abs/2405.09673),[Thinking Machines 2025](https://thinkingmachines.ai/blog/lora/))表明,在正确的配置下,LoRA 在大多数微调任务(指令遵循、领域适应、角色/风格)中,其质量可以与全面微调相媲美,但计算量仅为 67%。因此,对于大多数用户实际需要的任务,使用 LoRA 不会带来任何损失。如果您确实需要对 70 亿参数以上的模型进行全面微调,请直接使用 HuggingFace 的 `transformers.Trainer`,并在 24GB+ 的显卡上运行。
|
|
90
|
+
- **DPO/PPO/GRPO/偏好学习** — Backpropagate 仅支持单阶段的监督微调。对于偏好学习,请直接使用 TRL 或 LLaMA-Factory。
|
|
91
|
+
- **多节点训练** — 仅支持单个机器上的单个 GPU。单个机器上的多 GPU 可以运行(通过 `accelerate launch`),但未正式支持。
|
|
92
|
+
- **macOS 训练** — Apple Silicon 没有 CUDA,因此训练需要在运行 Linux 或 Windows 的机器上,该机器需要配备 NVIDIA GPU。您仍然可以在 Mac 上通过 Ollama 运行训练好的模型。
|
|
93
|
+
- **任何不在测试模型系列中的模型** — Qwen 2.5 / 3.5 (70亿 / 40亿参数),Phi-4-mini-3.8B,SmolLM3-3B,Llama 3.2 (30亿 / 10亿参数),Mistral 7B。其他模型通常可以运行,但未在 CI 中进行测试。
|
|
103
94
|
|
|
104
|
-
|
|
95
|
+
如果您需要这些功能,请使用上面列出的库。它们在这方面做得更好。
|
|
105
96
|
|
|
106
|
-
Backpropagate
|
|
97
|
+
## Backpropagate 提供的功能:
|
|
107
98
|
|
|
108
|
-
|
|
109
|
-
- **Windows。** 需要 Visual Studio Build Tools (C++) 和 CMake,用于 `[export]` 扩展(从源代码构建 `llama-cpp-python`)。现在已发布适用于 Windows 的 `bitsandbytes` wheel(>= 0.43);较旧的指南中提到的 `bitsandbytes-windows` 已经过时。
|
|
110
|
-
- **macOS。** **不支持** GPU 训练,因为它不支持 CUDA。您可以安装 Backpropagate,通过 Ollama 运行导出的 GGUF 文件进行*推理*,但 `trainer.train()` 会引发 `DEP_GPU_NOT_AVAILABLE` 错误。请使用支持 CUDA 的机器进行训练。
|
|
111
|
-
- **Linux。** 大多数发行版可以直接使用。如果您使用的是 PyPI 的二进制发布版本,请注意,Linux 构建版本仅支持 CPU 版本的 PyTorch(以保持在 GitHub 的 2 GB 发布文件大小限制内);请先安装来自 pytorch.org 的匹配的 CUDA wheel。
|
|
99
|
+
四个功能,一次安装:
|
|
112
100
|
|
|
113
|
-
|
|
101
|
+
**1. 一个真正的 3 行 API,无需配置文件即可运行。**
|
|
102
|
+
README 顶部的代码片段可以实现端到端的运行。无需 `accelerate config`,无需 YAML,无需 Hydra 覆盖。只需 `Trainer(model).train(data)`,即可完成微调。
|
|
114
103
|
|
|
115
|
-
|
|
104
|
+
**2. 真正适用于 Windows 的解决方案。**
|
|
105
|
+
大多数机器学习库对 Windows 的支持往往不够完善。Backpropagate 在 Windows + RTX 5080 上经过了全面测试。该库处理了 Windows 运行时的各种问题——它知道如何预处理您的数据,以防止 Windows 多进程崩溃;它会自动禁用 RTX 40/50 显卡上的 xformers,因为这会导致问题;它还会选择不导致崩溃的数据加载器设置。您无需了解这些细节,它只需正常运行即可。
|
|
116
106
|
|
|
117
|
-
|
|
107
|
+
**3. 专为无人值守运行而设计。**
|
|
108
|
+
训练需要几个小时。您不想一直盯着它。Backpropagate 旨在可以长时间运行:
|
|
118
109
|
|
|
119
|
-
|
|
110
|
+
- 如果 GPU 内存不足,它会自动将批次大小减半并重试——最多重试三次。无需手动调整。
|
|
111
|
+
- 如果 GPU 过热,它会暂停直到温度降下来,然后继续。
|
|
112
|
+
- 每个检查点都会以原子方式写入——如果您的笔记本电脑在保存过程中崩溃,之前的有效检查点仍然可用。
|
|
113
|
+
- 每次训练都会生成一个唯一的 ID,该 ID 会附加到每条日志行、每个检查点和每个 Weights & Biases 条目上。如果出现问题,一个 ID 可以让维护人员将所有内容关联起来。
|
|
114
|
+
- 错误会显示稳定的代码(例如 `RUNTIME_GPU_OOM`、`DEP_OLLAMA_REGISTRATION_FAILED` 等),以便您可以搜索日志文件,并参考[故障排除指南](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) 查找解决方案。CUDA 相关的错误有专门的[CUDA 故障排除页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/)。
|
|
120
115
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
| `BACKPROPAGATE_LOG_LEVEL` | `INFO` | `DEBUG` / `INFO` / `WARNING` / `ERROR` |
|
|
124
|
-
| `BACKPROPAGATE_LOG_JSON` | 自动 | 强制使用 JSON (`true`) 或控制台 (`false`) 日志 |
|
|
125
|
-
| `BACKPROPAGATE_LOG_FILE` | 未设置 | 用于将日志写入的路径 |
|
|
126
|
-
| `BACKPROPAGATE_DEFER_FEATURE_DETECTION` | 未设置 | 在启动时跳过可选依赖项检测,以实现最快的 CLI 启动速度 |
|
|
127
|
-
| `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE` | `true` | 当 `true` 时,拒绝在不使用 `--auth` 的情况下使用 `backprop ui --share` |
|
|
128
|
-
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | 所有 UI 文件系统写入的基础目录;已进行白名单验证 |
|
|
129
|
-
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | 默认模型 |
|
|
130
|
-
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | 学习率 |
|
|
131
|
-
| `BACKPROPAGATE_LORA__R` | `16` | LoRA 秩 |
|
|
116
|
+
**4. 一条命令,从训练好的适配器到 `ollama run`。**
|
|
117
|
+
许多库可以训练一个模型。但很少有库会在您想要实际使用它时,让您轻松操作。Backpropagate 可以将模型导出为 GGUF 格式(Ollama 使用的格式),并使用一条命令注册 Ollama 模型。您可以从“训练完成”到“我可以与我的微调模型进行对话”,只需大约 30 秒。
|
|
132
118
|
|
|
133
|
-
|
|
119
|
+
## 快速开始
|
|
134
120
|
|
|
135
|
-
|
|
121
|
+
这个仓库包含一个微小的示例数据集,因此 README 文件的开头部分的代码可以在干净的环境中运行。
|
|
136
122
|
|
|
137
|
-
|
|
123
|
+
```bash
|
|
124
|
+
pipx install "backpropagate[standard]"
|
|
138
125
|
|
|
139
|
-
|
|
126
|
+
python -c "
|
|
140
127
|
from backpropagate import Trainer
|
|
128
|
+
trainer = Trainer('Qwen/Qwen2.5-7B-Instruct')
|
|
129
|
+
trainer.train('examples/quickstart.jsonl', steps=10)
|
|
130
|
+
trainer.export('gguf', quantization='q4_k_m')
|
|
131
|
+
"
|
|
132
|
+
```
|
|
141
133
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
134
|
+
这会使用 5 个短的 ShareGPT 格式的对话来训练一个 Qwen 2.5 7B 的适配器,然后将结果导出为 GGUF 格式。对于您自己的数据,请将 JSONL 文件格式化为每行一个示例。
|
|
135
|
+
|
|
136
|
+
```jsonl
|
|
137
|
+
{"conversations": [{"from": "human", "value": "What is Python?"}, {"from": "gpt", "value": "A programming language."}]}
|
|
138
|
+
{"conversations": [{"from": "human", "value": "Explain recursion."}, {"from": "gpt", "value": "A function that calls itself."}]}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Alpaca(`instruction` / `output`)、OpenAI 聊天(`messages`)以及原始文本格式也适用——Backpropagate 会自动检测格式。
|
|
142
|
+
|
|
143
|
+
有关更多端到端的工作流程(例如,微调并推送到 Hugging Face Hub,在出现 OOM 错误后恢复,在较长的训练周期中进行多次迭代训练等),请参阅[手册配方页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/)。
|
|
144
|
+
|
|
145
|
+
### Web UI(可选)
|
|
146
|
+
|
|
147
|
+
如果您更喜欢点击而不是输入 Python 代码,请安装 UI 扩展,然后启动:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
pipx install "backpropagate[ui]"
|
|
151
|
+
backprop ui --port 7862
|
|
146
152
|
```
|
|
147
153
|
|
|
148
|
-
|
|
154
|
+
一个本地 Web 界面将在 `http://localhost:7862` 上打开,您可以在其中选择数据集、选择模型、进行训练和导出。默认情况下,UI 仅在本地可用。要将其暴露给其他设备,请参阅下面的“[Web UI](#web-ui)”部分,了解 `--share` + `--auth` 安全机制。
|
|
155
|
+
|
|
156
|
+
## 多次迭代训练
|
|
149
157
|
|
|
150
|
-
|
|
158
|
+
如果您希望在多个数据集上逐步进行微调——例如,您每周都会获得新的训练数据,并且希望在不忘记之前学到的知识的情况下将其添加到模型中——那么 Backpropagate 的 `multi_run` 模式非常适合您:
|
|
151
159
|
|
|
152
160
|
```python
|
|
153
161
|
from backpropagate import Trainer
|
|
@@ -159,198 +167,196 @@ result = trainer.multi_run(
|
|
|
159
167
|
num_runs=5,
|
|
160
168
|
steps_per_run=100,
|
|
161
169
|
samples_per_run=1000,
|
|
162
|
-
merge_mode="slao", # Single LoRA Continual Learning via Asymmetric Merging
|
|
163
170
|
)
|
|
164
171
|
```
|
|
165
172
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
### 导出到 Ollama
|
|
169
|
-
|
|
170
|
-
```python
|
|
171
|
-
# Export to GGUF
|
|
172
|
-
result = trainer.export("gguf", quantization="q4_k_m")
|
|
173
|
-
|
|
174
|
-
# Register with Ollama separately
|
|
175
|
-
from backpropagate import register_with_ollama
|
|
176
|
-
register_with_ollama(result.path, "my-finetuned-model")
|
|
177
|
-
# ollama run my-finetuned-model
|
|
178
|
-
```
|
|
173
|
+
这会进行五次训练迭代,并在每次迭代之间合并适配器,从而在保留先前知识的同时,整合新的示例。该技术基于最近的持续学习研究,请参阅此 README 文件的底部部分的“[参考文献](#references)”。
|
|
179
174
|
|
|
180
|
-
|
|
175
|
+
命令行版本:
|
|
181
176
|
|
|
182
177
|
```bash
|
|
183
|
-
backprop
|
|
184
|
-
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
185
|
-
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
186
|
-
backprop ui --port 7862
|
|
187
|
-
backprop info
|
|
188
|
-
backprop list-runs # v1.1.0: query past training runs
|
|
189
|
-
backprop show-run <run-id> # v1.1.0: detail view
|
|
190
|
-
backprop resume <run-id> # v1.1.0: resume a crashed multi-run
|
|
191
|
-
backprop push ./output/lora --repo me/my-model # v1.1.0: push adapter to HF Hub
|
|
178
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100 --samples 1000
|
|
192
179
|
```
|
|
193
180
|
|
|
194
|
-
|
|
181
|
+
## 从检查点恢复
|
|
195
182
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
一个原本会在第4次运行时崩溃的5次连续运行流程现在可以恢复。 每次连续运行都会将运行ID写入`run_history.json`文件以及磁盘上的检查点清单,因此,要从中断处恢复,只需执行一个命令即可。
|
|
183
|
+
如果在第四次迭代时崩溃的五次迭代训练可以恢复。 每次多迭代会话都会将其迭代 ID 写入磁盘上的历史记录和检查点清单,因此您可以从上次中断的地方继续,只需一个命令即可:
|
|
199
184
|
|
|
200
185
|
```bash
|
|
201
|
-
backprop resume <run-id>
|
|
202
|
-
backprop multi-run --data ... --resume <run-id>
|
|
203
|
-
backprop train --data ... --resume <run-id>
|
|
186
|
+
backprop resume <run-id>
|
|
187
|
+
backprop multi-run --data ... --resume <run-id>
|
|
188
|
+
backprop train --data ... --resume <run-id> # single-run resume
|
|
204
189
|
```
|
|
205
190
|
|
|
206
|
-
`backprop multi-run`
|
|
207
|
-
|
|
208
|
-
当一个多轮训练恢复时,模型会加载该`run_id`对应的最新检查点,从检查点旁边的`slao/`目录恢复SLAO的合并状态,然后从`last_completed_run + 1`处继续训练循环。历史记录条目的`status`状态会恢复为`running`,因此运行`backprop list-runs --status running`命令可以显示正在进行的会话。
|
|
191
|
+
`backprop multi-run` 的默认行为(不带 `--resume`)会自动检测到同一输出目录中的正在进行的会话,并继续执行。 要强制从头开始,请指定一个全新的输出目录。
|
|
209
192
|
|
|
210
|
-
|
|
193
|
+
## 培训经历
|
|
211
194
|
|
|
212
|
-
`
|
|
195
|
+
每次 `backprop train` 和 `backprop multi-run` 的执行都会在 `<output>/run_history.json` 中记录一行,包括使用的模型、数据集、超参数、状态、最终损失和损失历史记录。 您可以列出和检查过去的训练过程:
|
|
213
196
|
|
|
214
197
|
```bash
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
backprop
|
|
198
|
+
backprop list-runs # last 20 runs
|
|
199
|
+
backprop list-runs --status failed # filter by status
|
|
200
|
+
backprop list-runs --json --limit 100 # machine-readable
|
|
201
|
+
backprop show-run abcd1234 # detail view (partial ID is fine)
|
|
218
202
|
```
|
|
219
203
|
|
|
220
|
-
|
|
204
|
+
## 实验跟踪
|
|
221
205
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
每次 `backprop train` 和 `backprop multi-run` 的执行都会在 `<output>/run_history.json` 文件中记录一行,包含运行ID、模型、数据集、超参数、状态、最终损失、损失历史,以及(对于多轮运行)SLAO 合并的时间线。列出最近的运行记录:
|
|
206
|
+
Backpropagate 会自动检测已安装的实验跟踪器(Weights & Biases、TensorBoard、MLflow),并将其集成。 如果安装了 `wandb` 并且您已登录,则每次运行都会自动记录到 W&B,并且运行名称与磁盘上的运行 ID 匹配,这样您可以使用一个标识符在 W&B、您的日志和 `run_history.json` 文件中进行搜索。
|
|
225
207
|
|
|
226
208
|
```bash
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
backprop
|
|
230
|
-
backprop show-run abcd1234 # detail view (partial run_id ok)
|
|
209
|
+
pip install backpropagate[monitoring] # installs wandb + psutil
|
|
210
|
+
wandb login # one-time setup
|
|
211
|
+
backprop train --data my_data.jsonl
|
|
231
212
|
```
|
|
232
213
|
|
|
233
|
-
|
|
214
|
+
您可以使用 `Trainer(report_to=["wandb"])`、`Trainer(report_to=["tensorboard"])` 或 `Trainer(report_to="none")` 来禁用此功能。
|
|
234
215
|
|
|
235
|
-
|
|
216
|
+
## 网页用户界面
|
|
236
217
|
|
|
237
|
-
|
|
218
|
+
Reflex Web 界面是可选的,请使用 `pipx install "backpropagate[ui]"` 安装,然后启动:
|
|
238
219
|
|
|
239
220
|
```bash
|
|
240
221
|
backprop ui --port 7862
|
|
241
222
|
```
|
|
242
223
|
|
|
243
|
-
|
|
224
|
+
UI 在本地运行在 `http://localhost:7862` 上。 要将其暴露给其他设备(例如,您网络中的其他用户或公共 URL),您必须将 `--share`(或 `--host`)与 `--auth` 结合使用:
|
|
244
225
|
|
|
245
226
|
```bash
|
|
246
227
|
backprop ui --share --auth alice:hunter2
|
|
247
228
|
```
|
|
248
229
|
|
|
249
|
-
`backprop ui --share`
|
|
230
|
+
如果 `backprop ui --share` 不带 `--auth`,则会显示错误。 原因:`--share` 会发布一个 URL,任何互联网用户都可以访问,而没有身份验证,这意味着任何人都可能控制您的流水线并读取您的 Hugging Face 令牌。 没有禁用此功能的选项——如果您不想设置凭据,请使用 SSH 端口转发:
|
|
250
231
|
|
|
251
|
-
|
|
232
|
+
```bash
|
|
233
|
+
# On the client:
|
|
234
|
+
ssh -L 7860:localhost:7860 <your-training-host>
|
|
235
|
+
# On the server:
|
|
236
|
+
backprop ui # no --share
|
|
237
|
+
# Then open http://localhost:7860 in your local browser
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
请参阅 [handbook/security.md](https://mcp-tool-shop-org.github.io/backpropagate/handbook/security/),了解完整的威胁模型。
|
|
252
241
|
|
|
253
242
|
用户界面中的文件写入操作会被限制在一个单独的目录中,以提高安全性。
|
|
254
243
|
|
|
255
244
|
- 默认值:`~/.backpropagate/ui-outputs`
|
|
256
|
-
-
|
|
257
|
-
-
|
|
245
|
+
- 覆盖:设置 `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own`
|
|
246
|
+
- 覆盖设置会进行白名单验证,系统路径或凭据路径(如 `/etc`、`~/.ssh`、`~/.aws`、`C:\Windows\System32` 等)将被拒绝。
|
|
258
247
|
|
|
259
|
-
##
|
|
248
|
+
## 平台说明
|
|
260
249
|
|
|
261
|
-
|
|
250
|
+
**要求:** Python 3.10+ · CUDA GPU (8GB+ VRAM) · PyTorch 2.0+
|
|
262
251
|
|
|
263
|
-
|
|
264
|
-
- 自动禁用 xformers,适用于 RTX 40/50 系列显卡。
|
|
265
|
-
- 采用安全的 DataLoader 设置。
|
|
266
|
-
- 已在 RTX 5080 (16GB 显存) 上进行测试。
|
|
252
|
+
Python 3.10将于2026年10月结束官方支持,Backpropagate计划在v1.4版本中移除对Python 3.10的支持。对于新安装,建议使用Python 3.11或3.12,其中3.11是经过最广泛测试的版本。
|
|
267
253
|
|
|
268
|
-
|
|
254
|
+
Backpropagate可以处理不同平台上的训练过程中的一些问题,但它无法解决安装过程中的问题。最常见的问题有两种:
|
|
269
255
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
| Qwen 2.5 7B。 | 约12GB。 | 中等。 | 祝好。 |
|
|
273
|
-
| Qwen 2.5 3B 模型。 | 约8GB。 | 快速。 | 好的。 |
|
|
274
|
-
| Llama 3.2,30亿参数版本。 | 约8GB。 | 快速。 | 好的。 |
|
|
275
|
-
| Llama 3.2 1B | 约6GB。 | 最快的。 | 基础。 |
|
|
276
|
-
| Mistral 7B | 约12GB。 | 中等。 | 好的。 |
|
|
256
|
+
- **错误的CUDA驱动程序。** PyTorch为每个CUDA版本发布一个二进制文件。如果选择了错误的驱动程序,您将只能使用CPU版本的PyTorch,并且训练速度会非常慢。请使用<https://pytorch.org/get-started/locally/> 上的驱动程序选择器,选择适合您驱动程序的版本。运行 `nvidia-smi` 命令可以查看您的驱动程序/CUDA版本。
|
|
257
|
+
- **Windows + GGUF导出。** `[export]` 扩展会从源代码构建 `llama-cpp-python`,这需要Visual Studio Build Tools(C++组件)和CMake。
|
|
277
258
|
|
|
278
|
-
|
|
259
|
+
**macOS:** 不支持GPU训练(没有CUDA)。您可以在Mac上通过Ollama运行训练好的适配器,但 `trainer.train()` 会抛出 `DEP_GPU_NOT_AVAILABLE` 错误。对于实际的训练,请使用支持CUDA的Linux或Windows机器。
|
|
279
260
|
|
|
261
|
+
请参阅[故障排除手册页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/),获取详细的安装问题解决方案,以及专门的[CUDA故障排除页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/),用于解决驱动程序/显存/xformers/bf16与fp16相关的问题。
|
|
262
|
+
|
|
263
|
+
## CLI
|
|
264
|
+
|
|
265
|
+
每个Python API都有一个命令行界面(CLI)的对应版本:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
backprop train --data my_data.jsonl --model Qwen/Qwen2.5-7B-Instruct --steps 100
|
|
269
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
270
|
+
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
271
|
+
backprop ui --port 7862
|
|
272
|
+
backprop info # environment + version snapshot
|
|
273
|
+
backprop list-runs # past training runs
|
|
274
|
+
backprop show-run <run-id> # detail view
|
|
275
|
+
backprop resume <run-id> # resume a crashed run
|
|
276
|
+
backprop push ./output/lora --repo me/my-model # push adapter to HuggingFace Hub
|
|
277
|
+
backprop diff-runs <run-a> <run-b> # diff two runs side by side
|
|
278
|
+
backprop replay <run-id> # re-run with same config / dataset
|
|
279
|
+
backprop export-runs --format jsonl # bulk export run history
|
|
280
280
|
```
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
281
|
+
|
|
282
|
+
完整的参考信息请参见[命令行界面手册页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/),或者使用 `backprop <子命令> --help` 命令。
|
|
283
|
+
|
|
284
|
+
## 配置
|
|
285
|
+
|
|
286
|
+
所有设置都可以通过使用 `BACKPROPAGATE_` 前缀的环境变量进行覆盖:
|
|
287
|
+
|
|
288
|
+
| 变量 | 默认值 | 说明 |
|
|
289
|
+
|---|---|---|
|
|
290
|
+
| `BACKPROPAGATE_LOG_LEVEL` | `INFO` | `DEBUG` / `INFO` / `WARNING` / `ERROR` |
|
|
291
|
+
| `BACKPROPAGATE_LOG_JSON` | 自动 | 强制JSON或控制台日志输出 |
|
|
292
|
+
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | 默认模型 |
|
|
293
|
+
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | 学习率 |
|
|
294
|
+
| `BACKPROPAGATE_LORA__R` | `256` | LoRA秩(v1.3的默认值;使用 `--lora-preset=fast` 参数可以设置成v1.2.x的默认值16) |
|
|
295
|
+
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | UI文件系统沙箱 |
|
|
296
|
+
|
|
297
|
+
嵌套键使用双下划线(`MODEL__NAME`,而不是 `MODEL_NAME`)。完整的参考信息请参见[环境变量手册页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/)。
|
|
298
|
+
|
|
299
|
+
## 模型预设
|
|
300
|
+
|
|
301
|
+
| 预设。 | 显存 (xiǎn cún) | 许可证 | 说明 |
|
|
302
|
+
|---|---|---|---|
|
|
303
|
+
| Qwen-3.5-4B | 约8GB。 | Apache 2.0 | 适用于小于5B的模型,在该尺寸下质量最佳。 |
|
|
304
|
+
| Phi-4-mini-3.8B | 约8GB。 | MIT | 在推理/数学/代码方面表现出色。许可证清洁。 |
|
|
305
|
+
| SmolLM3-3B | 约6GB。 | Apache 2.0 | 完全开放的配置。原生64K上下文。 |
|
|
306
|
+
| Qwen 2.5 7B。 | 约12GB。 | Apache 2.0 | 现有默认值。在旧版7B预设中质量最佳。 |
|
|
307
|
+
| Qwen 2.5 3B 模型。 | 约8GB。 | Qwen-Research | ⚠ 研究许可证 — 在商业用途前请查看Qwen的许可证条款。 |
|
|
308
|
+
| Llama 3.2,30亿参数版本。 | 约8GB。 | Llama Community | 是Qwen 3B的良好替代方案,具有宽松的限制条件。 |
|
|
309
|
+
| Llama 3.2 1B | 约6GB。 | Llama Community | 适用于小型设备上的快速实验。 |
|
|
310
|
+
| Mistral 7B | 约12GB。 | Apache 2.0 | 与Qwen 7B相当,但使用了不同的对话模板。 |
|
|
311
|
+
|
|
312
|
+
其他模型通常也适用,但只有这八个模型在CI中被固定。使用 `--lora-preset=quality`(默认值)可以设置成秩为256/全线性目标,参考Biderman 2024 + Thinking Machines 2025,或者使用 `--lora-preset=fast` 设置成秩为16/q+v目标,以获得与v1.2.x相同的内存占用。
|
|
306
313
|
|
|
307
314
|
## 故障排除
|
|
308
315
|
|
|
309
|
-
|
|
316
|
+
这是最常见的首次运行失败的简要索引。完整的反向索引请参见[故障排除手册页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/)。有关驱动程序/显存/混合精度深度分析,请参阅[CUDA故障排除页面](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/)。
|
|
310
317
|
|
|
311
|
-
| 症状 |
|
|
312
|
-
|
|
313
|
-
| 训练过程中 GPU 内存耗尽 | `RUNTIME_GPU_OOM` |
|
|
314
|
-
|
|
|
315
|
-
| 模型名称拼写错误 | `INPUT_VALIDATION_FAILED` 或 `DEP_MODEL_LOAD_FAILED` | 验证 <https://huggingface.co/models> 上的 `org/name` 标识符。 |
|
|
318
|
+
| 症状 | 错误代码 | 解决方法 |
|
|
319
|
+
|---|---|---|
|
|
320
|
+
| 训练过程中 GPU 内存耗尽 | `RUNTIME_GPU_OOM` | 自动模式:当出现内存不足错误时,Backpropagate 会减小批次大小,并最多重试 3 次。要禁用此功能,请使用 `Trainer(oom_recovery=False)`。要强制使用更小的批次大小,请使用 `--batch-size 1`。 |
|
|
321
|
+
| HuggingFace 返回 401 错误 / "未找到模型" | `DEP_MODEL_LOAD_FAILED` | 使用 `huggingface-cli login` 重新登录。如果出现拼写错误,请从 <https://huggingface.co/models> 复制确切的 ID。 |
|
|
316
322
|
| `register_with_ollama` 连接被拒绝 | `DEP_OLLAMA_REGISTRATION_FAILED` | 启动守护进程:`ollama serve`。 从 <https://ollama.com> 安装。 可重试。 |
|
|
317
323
|
| 保存检查点时磁盘已满 | `STATE_CHECKPOINT_INVALID` | 在崩溃时,原子写入会在目录中留下一个 `.partial` 目录,可以安全删除。之前的有效检查点仍然存在。 |
|
|
318
|
-
| GPU
|
|
319
|
-
| `backprop ui --share` 被拒绝 | `INPUT_AUTH_REQUIRED` | 使用 `--auth user:password
|
|
320
|
-
| 多次运行出现 "验证重叠" | `CONFIG_INVALID` (Stage A backend B-001) | 降低 `--samples` 的值,使其低于训练池大小,增加数据集,或禁用验证。 |
|
|
324
|
+
| 训练因 GPU 过热而暂停。 | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | 自动模式:当 GPU 温度超过阈值时,Backpropagate 会暂停,并在 GPU 冷却后恢复。如果此问题频繁发生,请改善散热。 |
|
|
325
|
+
| `backprop ui --share` 被拒绝 | `INPUT_AUTH_REQUIRED` | 使用 `--auth user:password`,或者使用 SSH 端口转发(请参阅 [Web UI](#web-ui))。 |
|
|
321
326
|
| 首次尝试 GGUF 导出失败 | `RUNTIME_GGUF_EXPORT_FAILED` | 使用 `pip install backpropagate[export]`。 在 Windows 上,还需要 Visual C++ Build Tools + CMake。 |
|
|
322
327
|
|
|
323
328
|
## 报告错误
|
|
324
329
|
|
|
325
|
-
当出现错误时,Backpropagate
|
|
330
|
+
当出现错误时,Backpropagate 在启动时会打印一行,例如 `run_started run_id=<uuid>`,并将相同的 ID 绑定到每一行日志、每个检查点以及每个 Weights & Biases 条目。**在任何错误报告中,请包含 `run_id`** — 它可以帮助维护者将所有内容与该特定运行关联起来。
|
|
326
331
|
|
|
327
332
|
一个好的错误报告应包含:
|
|
328
333
|
|
|
329
|
-
1. **`run_id`** — 启动时打印的 UUID
|
|
330
|
-
2. **错误代码** — `stderr`
|
|
331
|
-
3.
|
|
334
|
+
1. **`run_id`** — 启动时打印的 UUID。
|
|
335
|
+
2. **错误代码** — `stderr` 中的 `[CODE_NAME]: message` 行。请参阅 [错误代码](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/) 目录。
|
|
336
|
+
3. **已屏蔽的命令行。** `stderr` 会自动进行屏蔽(Bearer 令牌、`sk-*`、`hf_*`、AWS 密钥、`password=` / `token=` 对等信息会被删除)——可以安全地粘贴。要查看完整的未屏蔽的堆栈跟踪,请使用 `--verbose` 重新运行,但在发布之前请仔细检查。
|
|
332
337
|
4. **Python / PyTorch 版本、GPU 型号、操作系统。** `backprop info` 可以一次性打印所有这些信息。
|
|
333
338
|
|
|
339
|
+
问题、想法或“这是预期的吗”的讨论应在 [GitHub Discussions](https://github.com/mcp-tool-shop-org/backpropagate/discussions) 中提出。安全问题应通过 [GitHub Security Advisory](https://github.com/mcp-tool-shop-org/backpropagate/security/advisories/new) 表单私下报告 — 请参阅 [SECURITY.md](SECURITY.md) 了解相关政策。
|
|
340
|
+
|
|
334
341
|
## 隐私
|
|
335
342
|
|
|
336
343
|
所有训练都在您的 GPU 上本地进行。 Backpropagate 仅向 HuggingFace 下载模型时才会进行网络请求(您需要主动发起)。 没有遥测,没有云依赖。
|
|
337
344
|
|
|
338
|
-
##
|
|
345
|
+
## 参考资料
|
|
339
346
|
|
|
340
|
-
|
|
341
|
-
|----------|-------|-------|
|
|
342
|
-
| A. 安全性 | 6/8 | SECURITY.md,信任模型,无秘密/遥测,safe_path()。 MCP 项目已跳过。 |
|
|
343
|
-
| B. 错误处理 | 5/7 | 结构化异常信息(`code`/`message`/`hint`/`cause`/`retryable`),通过 `ERROR_CODES` 注册表提供;CLI 退出码:0/1/2/3;不显示原始堆栈跟踪,除非使用 `--verbose` 参数;`run_id` 关联;已屏蔽的标准错误输出;`--share` + `--auth` 权限控制。MCP/桌面/VS Code 已跳过。 |
|
|
344
|
-
| C. 运维文档 | 4/7 | README、CHANGELOG、LICENSE、--help。日志记录/MCP/复杂功能已跳过。 |
|
|
345
|
-
| D. 发布流程 | 6/9 | `verify.sh`、版本号=标签、CI 中包含 5 个扫描器、dependabot、`python_requires`、干净的构建。 |
|
|
346
|
-
| E. 身份标识 | 4/4 | Logo、翻译、着陆页、元数据。 |
|
|
347
|
-
| **Total** | **25/31** | 跳过了 14 个项目,并已给出理由;`shipcheck audit` 检查通过 100%;审计日期:2026-05-21(B 行在 B 阶段和 A 阶段 CLI 退出码工作完成后重新评估)。 |
|
|
347
|
+
Backpropagate 的默认设置和多轮训练模式是基于最近的研究。如果您对底层技术感兴趣:
|
|
348
348
|
|
|
349
|
-
|
|
349
|
+
- **Hu et al. 2021.** *LoRA: Low-Rank Adaptation of Large Language Models.* [arXiv:2106.09685](https://arxiv.org/abs/2106.09685) — 介绍了 LoRA 的基础论文,Backpropagate 使用 LoRA 来高效地训练适配器。
|
|
350
|
+
- **Biderman et al. 2024.** *LoRA Learns Less and Forgets Less.* [arXiv:2405.09673](https://arxiv.org/abs/2405.09673) — 提供了经验证据,表明在大多数后续训练任务中,秩为 256 且针对所有线性目标的 LoRA 质量与完整微调相当,但计算量仅为 67%。这驱动了 Backpropagate v1.3 的默认 LoRA 配置。
|
|
351
|
+
- **Thinking Machines 2025.** *LoRA Without Regret.* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — 这是一个实践性的后续,它识别了在较高 LoRA 秩下,与完整微调相比,所需的 10 倍学习率修正。
|
|
352
|
+
- **Kirkpatrick et al. 2017.** *Overcoming catastrophic forgetting in neural networks.* [arXiv:1612.00796](https://arxiv.org/abs/1612.00796) — 原始的对神经网络“遗忘”之前训练内容的描述(EWC — Elastic Weight Consolidation)。
|
|
353
|
+
- **Wang et al. 2023.** *Orthogonal Subspace Learning for Language Model Continual Learning.* [arXiv:2310.14152](https://arxiv.org/abs/2310.14152) — O-LoRA,一种较早的方法,通过将新的适配器限制在正交子空间,使用 LoRA 进行持续学习。
|
|
354
|
+
- **Yadav et al. 2023.** *TIES-Merging: Resolving Interference When Merging Models.* [arXiv:2306.01708](https://arxiv.org/abs/2306.01708) — 一种用于合并多个微调模型的、无需干扰的基础技术。
|
|
355
|
+
- **Qiao & Mahdavi 2025.** *Merge before Forget: A Single LoRA Continual Learning via Continual Merging.* [arXiv:2512.23017](https://arxiv.org/abs/2512.23017) — Backpropagate 的多轮合并算法的具体实现。这是一篇 2025 年 12 月的预印本;Backpropagate 是该论文的第一个已知的下游应用。
|
|
350
356
|
|
|
351
357
|
## 许可证
|
|
352
358
|
|
|
353
|
-
MIT —
|
|
359
|
+
MIT — 参见 [LICENSE](LICENSE)。
|
|
354
360
|
|
|
355
361
|
---
|
|
356
362
|
|