@mcptoolshop/backpropagate 1.2.0 → 1.4.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 +219 -207
- package/README.fr.md +219 -207
- package/README.hi.md +219 -207
- package/README.it.md +220 -208
- package/README.ja.md +219 -207
- package/README.md +220 -208
- package/README.pt-BR.md +219 -207
- package/README.zh.md +219 -207
- package/bin/backpropagate.js +47 -196
- package/package.json +2 -5
package/README.ja.md
CHANGED
|
@@ -10,143 +10,155 @@
|
|
|
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は、単一のGPUで大規模言語モデルをファインチューニングするためのPythonライブラリです。わずか3行のコードで、16GBのカードで7Bモデルをトレーニングできます。さらに1つのコマンドで、ファインチューニングしたモデルを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 export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-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ファイルがあれば、わずか3行のコードでファインチューニングを開始できます。
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
## インストール
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Recommended: isolated Python install (no conflicts with system Python or other projects)
|
|
41
|
+
pipx install backpropagate
|
|
36
42
|
|
|
37
|
-
|
|
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環境でもネイティブイメージを使用できます。UIをコンテナで実行するための標準的な`compose.yaml`ファイルは、リポジトリのルートにあります。`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
|
+
| Phi-4-mini-3.8B / Qwen-3.5-4B / SmolLM3-3B (パラメータ数が30億以下) | `mode="full"` (フルファインチューニング) | v1.4 — `backprop train` コマンドで `--mode=full` オプションを付与するか、`Trainer(..., mode="full")` を指定します。勾配チェックポイントとPaged 8-bit Adamを使用することで、活性化メモリをsqrt(L)に抑えます。 |
|
|
80
|
+
| Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | 標準的。約7〜8GBのメモリを使用。Backpropagateのデフォルト設定。 |
|
|
81
|
+
| Llama-3 13B | QLoRA + サンプルパッキング | ギリギリだが動作する。短いシーケンスを使用してください。 |
|
|
82
|
+
| Mixtral 8x7B (合計470億パラメータ) | AQLM 2-bit + LoRA | v1.5では以下の機能が予定されています。詳細は、公開されたV1_5_BRIEFをご確認ください。 |
|
|
79
83
|
|
|
80
|
-
|
|
84
|
+
AQLM 2-bit量子化 (`quant_method="aqlm"`) は、Mixtral-8x7Bを16GBのメモリで動作させるための実験的なオプションとしてv1.4で検討されていましたが、現在はv1.5での実装が予定されています。`aqlm` ライブラリは成熟していますが、v1.4では、フルファインチューニングのサポート(パラメータ数が30億以下のモデルに対して `mode="full"` を設定)を優先し、新しい量子化バックエンドの追加は見送られました。v1.5の実装計画については、公開されたV1_5_BRIEFをご確認ください。
|
|
81
85
|
|
|
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
|
-
```
|
|
86
|
+
30億パラメータ以下のモデルでは、フルファインチューニング(LoRAだけでなく)が16GBのメモリでも可能であり、v1.4では `mode="full"` として提供されています。`Trainer(..., mode="full")` を指定するか、`backprop train --mode=full --model phi-4-mini-3.8b` コマンドを実行することで有効にできます。30億パラメータを超えるモデルに対しては、`RUNTIME_FULL_FT_MODEL_TOO_LARGE` エラーが発生し、フルファインチューニングは利用できません。この場合、LoRAや30億パラメータ以下のモデルのプリセットを使用できます。設定の詳細や、Biderman 2024 / Thinking Machines 2025による品質比較については、[フルファインチューニングに関する詳細なドキュメント](https://mcp-tool-shop-org.github.io/backpropagate/handbook/full-fine-tuning/) を参照してください。70億パラメータ以上のモデルでは、フルファインチューニングには24GB以上のGPUメモリが必要です。A100クラウドの利用を検討するか、LoRAを使用することをお勧めします。最近の研究では、LoRAが多くの後処理タスクにおいて、フルファインチューニングと同等の品質を達成できることが示されています(詳細は、[この機能ではないものに関するセクション](#what-backpropagate-is-not-for) を参照)。
|
|
89
87
|
|
|
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
|
-
| `logging` | 構造化されたロギング | structlog |
|
|
98
|
-
| `security` | JWT認証 + トークン生成 | PyJWT, cryptography |
|
|
99
|
-
| `production` | unsloth + ui + 検証 + ロギング + セキュリティ | (バンドル) |
|
|
88
|
+
## Backpropagateが適さないケース
|
|
100
89
|
|
|
101
|
-
|
|
90
|
+
もし、以下の用途で使用する場合は、別のライブラリを使用することをお勧めします。Backpropagateは適切な選択肢ではなく、無理に使うと、適切なツールを使用するよりも手間と時間がかかります。このセクションを読んでから始めることで、インストールと設定の繰り返しを避けることができます。
|
|
102
91
|
|
|
103
|
-
|
|
92
|
+
- **70億パラメータ以上のモデルのフルパラメータファインチューニング** — BackpropagateはLoRA/QLoRAを使用しており、すべてのパラメータを更新するのではなく、小さなアダプターを学習します。70億パラメータ以上のモデルでは、フルファインチューニングには24GB以上のGPUメモリが必要であり、16GBの一般的なGPUでは動作しません。30億パラメータ以下のモデルでは、フルファインチューニングは16GBのメモリでも可能であり、v1.4では `mode="full"` として提供されています(`Trainer(..., mode="full")` を指定するか、`--mode=full` オプションをCLIで指定します。30億パラメータを超えるモデルに対しては、`RUNTIME_FULL_FT_MODEL_TOO_LARGE` エラーが発生し、LoRAや30億パラメータ以下のモデルのプリセットを使用できます)。補足として、最近の研究([Biderman 2024](https://arxiv.org/abs/2405.09673), [Thinking Machines 2025](https://thinkingmachines.ai/blog/lora/))によると、適切な設定のLoRAは、ほとんどの後処理タスク(指示に従う、ドメイン適応、ペルソナ/スタイル)において、フルファインチューニングと同等の品質を67%の計算量で達成できます。したがって、ほとんどのユーザーが求めるタスクでは、LoRAを使用しても何も失うことはありません。`mode="full"` は、品質の差を測定し、追加の計算リソースを使用する必要がある場合に利用できます。70億パラメータ以上のモデルをフルファインチューニングする必要がある場合は、HuggingFaceの `transformers.Trainer` を直接、24GB以上のGPUで実行してください。
|
|
93
|
+
- **DPO / PPO / GRPO / 嗜好学習** — Backpropagateは、シングルステージの教師ありファインチューニングのみをサポートしています。嗜好学習の場合は、TRLまたはLLaMA-Factoryを直接使用してください。
|
|
94
|
+
- **マルチノードトレーニング** — シングルGPUのみをサポートしています。シングルマシン上でのマルチGPU構成は可能ですが(`accelerate launch` を使用)、公式にはサポートされていません。
|
|
95
|
+
- **macOSでのトレーニング** — Apple SiliconにはCUDAがないため、トレーニングはLinuxまたはWindowsのNVIDIA GPU搭載マシンで行う必要があります。トレーニング済みのモデルは、Ollamaを使用してMac上で実行できます。
|
|
96
|
+
- **サポートされていないモデルファミリー** — Qwen 2.5 / 3.5 (7B / 4B), Phi-4-mini-3.8B, SmolLM3-3B, Llama 3.2 (3B / 1B), Mistral 7B。他のモデルでも動作する場合がありますが、CI環境でのテストは行われていません。
|
|
104
97
|
|
|
105
|
-
|
|
98
|
+
上記のような機能が必要な場合は、上記に記載されているライブラリをご利用ください。それらは、それらの機能に特化しています。
|
|
106
99
|
|
|
107
|
-
|
|
108
|
-
- **Windows。** `[export]` オプションを使用する場合(`llama-cpp-python` はソースコードからビルドされます)、Visual Studio Build Tools (C++) と CMake が必要です。`bitsandbytes` wheel は、Windows ネイティブで利用できるようになりました(>= 0.43)。古いドキュメントで `bitsandbytes-windows` が言及されている場合は、最新の情報ではありません。
|
|
109
|
-
- **macOS。** GPU を使用した学習は**サポートされていません**。CUDA は利用できません。エクスポートされた GGUF モデルを Ollama を介して *推論* 実行するには、Backpropagate をインストールできますが、`trainer.train()` を実行すると `DEP_GPU_NOT_AVAILABLE` エラーが発生します。学習には CUDA 対応の環境を使用してください。
|
|
110
|
-
- **Linux。** ほとんどのディストリビューションで問題なく動作します。PyPI からのバイナリリリースを使用している場合は、Linux のビルドでは CPU のみで動作する torch が使用されていることに注意してください(GitHub のリリースアセットの 2GB 制限を超えるため)。最初に、pytorch.org から対応する CUDA wheel をインストールしてください。
|
|
100
|
+
## Backpropagateが提供するもの
|
|
111
101
|
|
|
112
|
-
|
|
102
|
+
インストール時に利用できる、以下の4つの機能:
|
|
113
103
|
|
|
114
|
-
|
|
104
|
+
**1. 設定ファイルが不要な、シンプルな3行のAPI**
|
|
105
|
+
このREADMEの冒頭にあるコードは、エンドツーエンドで実行できます。`accelerate config`、YAMLファイル、Hydraの設定などは不要です。`Trainer(model).train(data)`と記述するだけで、ファインチューニングが完了します。
|
|
115
106
|
|
|
116
|
-
|
|
107
|
+
**2. 実際に動作するWindowsサポート**
|
|
108
|
+
多くの機械学習ライブラリでは、Windowsは後回しに扱われています。Backpropagateは、Windows + RTX 5080環境で、最初からテストされています。ライブラリは、Windows特有の動作を自動的に処理します。例えば、Windowsのマルチプロセスでクラッシュしないようにデータを事前にトークン化したり、RTX 40/50シリーズのカードでxformersが動作しない場合に自動的に無効にしたり、データローダーの設定を自動的に調整したりします。これらのことをユーザーが知る必要はありません。すべて自動的に処理されます。
|
|
117
109
|
|
|
118
|
-
|
|
110
|
+
**3. 無人実行に対応**
|
|
111
|
+
トレーニングには時間がかかります。ユーザーが常に監視する必要はありません。Backpropagateは、バックグラウンドで実行されるように設計されています。
|
|
119
112
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
| `BACKPROPAGATE_DEFER_FEATURE_DETECTION` | 未設定 | 起動時のオプション依存関係の検出をスキップし、CLI の起動を高速化 |
|
|
126
|
-
| `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE` | `true` | `true` の場合、`--auth` オプションなしでの `backprop ui --share` を拒否 |
|
|
127
|
-
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | すべての UI ファイルシステムの書き込みのサンドボックスベース。許可リストで検証済み |
|
|
128
|
-
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | デフォルトモデル |
|
|
129
|
-
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | 学習率 |
|
|
130
|
-
| `BACKPROPAGATE_LORA__R` | `16` | LoRA のランク |
|
|
113
|
+
- GPUメモリが不足した場合、バッチサイズを自動的に半分にし、最大3回まで再試行します。手動での調整は不要です。
|
|
114
|
+
- GPUの温度が上昇した場合、温度が下がるまで一時停止し、その後、再開します。
|
|
115
|
+
- すべてのチェックポイントは、アトミックに書き込まれます。つまり、ラップトップが保存中にクラッシュした場合でも、以前の正常なチェックポイントは保持されます。
|
|
116
|
+
- すべてのトレーニング実行には、一意のIDが割り当てられ、ログの各行、チェックポイント、およびWeights & Biasesのエントリに記録されます。問題が発生した場合、このIDを使用することで、管理者がすべての情報を関連付けることができます。
|
|
117
|
+
- エラーには、安定したコード(`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/)があります。
|
|
131
118
|
|
|
132
|
-
|
|
119
|
+
**4. 学習済みのアダプターから`ollama run`まで、1つのコマンド**
|
|
120
|
+
多くのライブラリがモデルを学習しますが、実際に使用したい場合に、ユーザーの邪魔をしないものも多くありません。Backpropagateは、Ollamaで使用される形式(GGUF)にエクスポートし、Ollamaモデルを登録する機能を、1つのコマンドで提供します。トレーニングが完了してから、ファインチューニングしたモデルでチャットを開始するまで、わずか30秒で完了します。
|
|
133
121
|
|
|
134
|
-
##
|
|
122
|
+
## クイックスタート
|
|
135
123
|
|
|
136
|
-
|
|
124
|
+
このリポジトリには、小さなサンプルデータセットが含まれており、このREADMEの冒頭にあるコードが、クリーンな環境で実行できるように設計されています。
|
|
137
125
|
|
|
138
|
-
```
|
|
126
|
+
```bash
|
|
127
|
+
pipx install "backpropagate[standard]"
|
|
128
|
+
|
|
129
|
+
python -c "
|
|
139
130
|
from backpropagate import Trainer
|
|
131
|
+
trainer = Trainer('Qwen/Qwen2.5-7B-Instruct')
|
|
132
|
+
trainer.train('examples/quickstart.jsonl', steps=10)
|
|
133
|
+
trainer.export('gguf', quantization='q4_k_m')
|
|
134
|
+
"
|
|
135
|
+
```
|
|
140
136
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
137
|
+
これは、5つの短いShareGPT形式の会話データセットでQwen 2.5 7Bのアダプターを学習し、その結果をGGUF形式でエクスポートするものです。ご自身のデータを使用する場合は、JSONLファイルを1行1つの例で記述してください。
|
|
138
|
+
|
|
139
|
+
```jsonl
|
|
140
|
+
{"conversations": [{"from": "human", "value": "What is Python?"}, {"from": "gpt", "value": "A programming language."}]}
|
|
141
|
+
{"conversations": [{"from": "human", "value": "Explain recursion."}, {"from": "gpt", "value": "A function that calls itself."}]}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Alpaca(`instruction` / `output`)、OpenAIのチャット(`messages`)、および生のテキスト形式も使用できます。Backpropagateは、形式を自動的に検出します。
|
|
145
|
+
|
|
146
|
+
より包括的なワークフロー(ファインチューニングとHugging Face Hubへのアップロード、OOMエラーからの再開、長期的なキャンペーンにおける複数回の学習など)については、[handbook recipes page](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/)を参照してください。
|
|
147
|
+
|
|
148
|
+
### Web UI(オプション)
|
|
149
|
+
|
|
150
|
+
Pythonコードを直接入力する代わりに、Web UIを使用したい場合は、UIの追加機能をインストールして起動します。
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pipx install "backpropagate[ui]"
|
|
154
|
+
backprop ui --port 7862
|
|
145
155
|
```
|
|
146
156
|
|
|
147
|
-
|
|
157
|
+
ローカルのWebインターフェースが`http://localhost:7862`で起動します。ここで、データセットを指定し、モデルを選択し、学習を実行し、エクスポートすることができます。UIはデフォルトではローカルでのみ利用可能です。他のデバイスからアクセスできるようにするには、[Web UI](#web-ui)を参照して、`--share`と`--auth`のセキュリティ設定を確認してください。
|
|
148
158
|
|
|
149
|
-
|
|
159
|
+
## 複数回の学習
|
|
160
|
+
|
|
161
|
+
複数のデータセットで段階的にファインチューニングを行いたい場合(たとえば、毎週新しい学習データを受け取り、以前に学習した内容を忘れることなく追加したい場合)は、Backpropagateの`multi_run`モードが適しています。
|
|
150
162
|
|
|
151
163
|
```python
|
|
152
164
|
from backpropagate import Trainer
|
|
@@ -158,196 +170,196 @@ result = trainer.multi_run(
|
|
|
158
170
|
num_runs=5,
|
|
159
171
|
steps_per_run=100,
|
|
160
172
|
samples_per_run=1000,
|
|
161
|
-
merge_mode="slao", # Single LoRA Continual Learning via Asymmetric Merging
|
|
162
173
|
)
|
|
163
174
|
```
|
|
164
175
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
### Ollama へのエクスポート
|
|
168
|
-
|
|
169
|
-
```python
|
|
170
|
-
# Export to GGUF
|
|
171
|
-
result = trainer.export("gguf", quantization="q4_k_m")
|
|
172
|
-
|
|
173
|
-
# Register with Ollama separately
|
|
174
|
-
from backpropagate import register_with_ollama
|
|
175
|
-
register_with_ollama(result.path, "my-finetuned-model")
|
|
176
|
-
# ollama run my-finetuned-model
|
|
177
|
-
```
|
|
176
|
+
これは、5回の学習を繰り返し実行し、各回の実行でアダプターをマージすることで、以前の知識を維持しながら新しい例を取り入れる方法です。この手法は、最近の研究に基づいています。詳細は、このREADMEの末尾にある[References](#references)を参照してください。
|
|
178
177
|
|
|
179
|
-
|
|
178
|
+
CLI(コマンドラインインターフェース)版:
|
|
180
179
|
|
|
181
180
|
```bash
|
|
182
|
-
backprop
|
|
183
|
-
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
184
|
-
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
185
|
-
backprop ui --port 7862
|
|
186
|
-
backprop info
|
|
187
|
-
backprop list-runs # v1.1.0: query past training runs
|
|
188
|
-
backprop show-run <run-id> # v1.1.0: detail view
|
|
189
|
-
backprop resume <run-id> # v1.1.0: resume a crashed multi-run
|
|
190
|
-
backprop push ./output/lora --repo me/my-model # v1.1.0: push adapter to HF Hub
|
|
181
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100 --samples 1000
|
|
191
182
|
```
|
|
192
183
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
### チェックポイントからの再開 (v1.1.0)
|
|
184
|
+
## チェックポイントからの再開
|
|
196
185
|
|
|
197
|
-
4
|
|
186
|
+
4回目の実行でクラッシュした5回の学習も、再開可能です。すべての`multi_run`セッションは、実行IDをオンディスクの履歴ファイルとチェックポイントマニフェストに書き込みます。そのため、中断した場所から再開するには、1つのコマンドで済みます。
|
|
198
187
|
|
|
199
188
|
```bash
|
|
200
|
-
backprop resume <run-id>
|
|
201
|
-
backprop multi-run --data ... --resume <run-id>
|
|
202
|
-
backprop train --data ... --resume <run-id>
|
|
189
|
+
backprop resume <run-id>
|
|
190
|
+
backprop multi-run --data ... --resume <run-id>
|
|
191
|
+
backprop train --data ... --resume <run-id> # single-run resume
|
|
203
192
|
```
|
|
204
193
|
|
|
205
|
-
`backprop multi-run
|
|
206
|
-
|
|
207
|
-
マルチラン再開時には、その `run_id` に対応する最新のチェックポイントがモデルにロードされ、チェックポイントの隣にある `slao/` ディレクトリから SLAO のマージ状態が復元され、実行ループが `last_completed_run + 1` から継続されます。履歴エントリの `status` が `running` に戻るため、`backprop list-runs --status running` コマンドで実行中のセッションが表示されます。
|
|
194
|
+
`backprop multi-run`のデフォルト設定(`--resume`オプションなし)では、同じ出力ディレクトリ内に実行中のセッションが存在する場合、それを自動的に検出し、再開します。クリーンな状態から開始するには、新しい出力ディレクトリを指定してください。
|
|
208
195
|
|
|
209
|
-
|
|
196
|
+
## トレーニング履歴
|
|
210
197
|
|
|
211
|
-
`
|
|
198
|
+
`backprop train`および`backprop multi-run`の実行ごとに、`<output>/run_history.json`ファイルに1行が記録されます。記録される内容は、使用したモデル、データセット、ハイパーパラメータ、ステータス、最終的な損失、損失履歴などです。過去の実行を一覧表示し、確認することができます。
|
|
212
199
|
|
|
213
200
|
```bash
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
backprop
|
|
201
|
+
backprop list-runs # last 20 runs
|
|
202
|
+
backprop list-runs --status failed # filter by status
|
|
203
|
+
backprop list-runs --json --limit 100 # machine-readable
|
|
204
|
+
backprop show-run abcd1234 # detail view (partial ID is fine)
|
|
217
205
|
```
|
|
218
206
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
### トレーニング履歴
|
|
207
|
+
## 実験の追跡
|
|
222
208
|
|
|
223
|
-
|
|
209
|
+
Backpropagateは、インストールされている実験追跡ツール(Weights & Biases、TensorBoard、MLflow)を自動的に検出し、連携させます。`wandb`がインストールされており、ログインしている場合は、各実行が自動的にW&Bに記録されます。記録される実行名は、オンディスクの実行IDと一致します。これにより、W&B、ログ、および`run_history.json`ファイルを、1つの識別子で検索することができます。
|
|
224
210
|
|
|
225
211
|
```bash
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
backprop
|
|
229
|
-
backprop show-run abcd1234 # detail view (partial run_id ok)
|
|
212
|
+
pip install backpropagate[monitoring] # installs wandb + psutil
|
|
213
|
+
wandb login # one-time setup
|
|
214
|
+
backprop train --data my_data.jsonl
|
|
230
215
|
```
|
|
231
216
|
|
|
232
|
-
|
|
217
|
+
`Trainer(report_to=["wandb"])`、`Trainer(report_to=["tensorboard"])`、または`Trainer(report_to="none")`を使用して、この機能を無効にすることができます。
|
|
233
218
|
|
|
234
|
-
|
|
219
|
+
## Web UI
|
|
235
220
|
|
|
236
|
-
|
|
221
|
+
ReflexのWebインターフェースは、オプションで利用可能です。`pipx install "backpropagate[ui]"`でインストールし、起動します。
|
|
237
222
|
|
|
238
223
|
```bash
|
|
239
224
|
backprop ui --port 7862
|
|
240
225
|
```
|
|
241
226
|
|
|
242
|
-
|
|
227
|
+
UIは、ローカルで`http://localhost:7862`で実行されます。他のデバイス(ネットワーク上の他のユーザー、パブリックURLなど)からアクセスできるようにするには、`--share`(または`--host`)と`--auth`を組み合わせて使用する必要があります。
|
|
243
228
|
|
|
244
229
|
```bash
|
|
245
230
|
backprop ui --share --auth alice:hunter2
|
|
246
231
|
```
|
|
247
232
|
|
|
248
|
-
`backprop ui --share
|
|
233
|
+
`backprop ui --share`を`--auth`なしで実行すると、エラーが発生します。その理由は、`--share`はインターネット上の誰でもアクセスできるURLを公開しますが、認証なしでは、誰でも学習パイプラインを操作したり、Hugging Faceのトークンを読み取ったりできる可能性があるためです。この機能を無効にすることはできません。認証情報を設定したくない場合は、SSHポートフォワードを使用してください。
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# On the client:
|
|
237
|
+
ssh -L 7860:localhost:7860 <your-training-host>
|
|
238
|
+
# On the server:
|
|
239
|
+
backprop ui # no --share
|
|
240
|
+
# Then open http://localhost:7860 in your local browser
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
完全な脅威モデルについては、[handbook/security.md](https://mcp-tool-shop-org.github.io/backpropagate/handbook/security/)を参照してください。
|
|
249
244
|
|
|
250
245
|
UI からのファイルシステムへの書き込みは、単一のディレクトリにサンドボックス化されています。
|
|
251
246
|
|
|
252
247
|
- デフォルト: `~/.backpropagate/ui-outputs`
|
|
253
|
-
- 上書き: `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own`
|
|
254
|
-
-
|
|
248
|
+
- 上書き: `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own` を設定
|
|
249
|
+
- 上書きは、許可リスト方式で検証されます。システムや認証情報に関連するパス (`/etc`, `~/.ssh`, `~/.aws`, `C:\Windows\System32` など) は許可されません。
|
|
255
250
|
|
|
256
|
-
##
|
|
251
|
+
## プラットフォームに関する注意点
|
|
257
252
|
|
|
258
|
-
|
|
253
|
+
**要件:** Python 3.10以上、CUDA対応GPU(8GB以上のVRAM)、PyTorch 2.0以上
|
|
259
254
|
|
|
260
|
-
|
|
261
|
-
- RTX 40/50 シリーズ向け xformers の自動無効化
|
|
262
|
-
- 安全なデータローダー設定
|
|
263
|
-
- RTX 5080 (16GB VRAM) での動作確認済み
|
|
255
|
+
Python 3.10 は、2026年10月にサポート終了となります。Backpropagate は、v1.4 で Python 3.10 のサポートを終了する予定です。新規インストールの場合は、Python 3.11 または 3.12 を推奨します。3.11 が最もテストされているバージョンです。
|
|
264
256
|
|
|
265
|
-
|
|
257
|
+
Backpropagate は、異なるプラットフォームでのトレーニング時の動作に関する問題を処理しますが、インストール時の問題を解決することはできません。最も一般的な問題は以下の2つです。
|
|
266
258
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
| Qwen 2.5 7B | ~12GB | 中 | 最高 |
|
|
270
|
-
| Qwen 2.5 3B | ~8GB | 高速 | 良 |
|
|
271
|
-
| Llama 3.2 3B | ~8GB | 高速 | 良 |
|
|
272
|
-
| Llama 3.2 1B | ~6GB | 最速 | 基本 |
|
|
273
|
-
| Mistral 7B | ~12GB | 中 | 良 |
|
|
259
|
+
- **誤った CUDA wheel の選択:** PyTorch は、CUDA のバージョンごとに異なるバイナリが提供されています。誤ったものを選択すると、CPU のみを使用する PyTorch がインストールされ、トレーニング速度が著しく低下します。お使いのドライバに合った wheel を、<https://pytorch.org/get-started/locally/> で選択してください。`nvidia-smi` コマンドを実行して、ドライバと CUDA のバージョンを確認してください。
|
|
260
|
+
- **Windows + GGUF エクスポート:** `[export]` オプションは、ソースコードから `llama-cpp-python` をビルドしますが、これには Visual Studio Build Tools (C++ コンポーネント) と CMake が必要です。
|
|
274
261
|
|
|
275
|
-
|
|
262
|
+
**macOS:** GPU トレーニングはサポートされていません (CUDA 非対応)。トレーニング済みのアダプターは、Ollama を使用して Mac で実行できますが、`trainer.train()` を実行すると `DEP_GPU_NOT_AVAILABLE` エラーが発生します。トレーニング自体は、CUDA 対応の Linux または Windows マシンで行ってください。
|
|
276
263
|
|
|
264
|
+
詳細なインストールに関するトラブルシューティングガイドは、[トラブルシューティングハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) を参照してください。また、ドライバ / VRAM / xformers / bf16-vs-fp16 に関する問題については、専用の [CUDA トラブルシューティングページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/) を参照してください。
|
|
265
|
+
|
|
266
|
+
## CLI
|
|
267
|
+
|
|
268
|
+
すべての Python API には、対応する CLI (コマンドラインインターフェース) が用意されています。
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
backprop train --data my_data.jsonl --model Qwen/Qwen2.5-7B-Instruct --steps 100
|
|
272
|
+
backprop multi-run --data my_data.jsonl --runs 5 --steps 100
|
|
273
|
+
backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --ollama-name my-model
|
|
274
|
+
backprop ui --port 7862
|
|
275
|
+
backprop info # environment + version snapshot
|
|
276
|
+
backprop list-runs # past training runs
|
|
277
|
+
backprop show-run <run-id> # detail view
|
|
278
|
+
backprop resume <run-id> # resume a crashed run
|
|
279
|
+
backprop push ./output/lora --repo me/my-model # push adapter to HuggingFace Hub
|
|
280
|
+
backprop diff-runs <run-a> <run-b> # diff two runs side by side
|
|
281
|
+
backprop replay <run-id> # re-run with same config / dataset
|
|
282
|
+
backprop export-runs --format jsonl # bulk export run history
|
|
277
283
|
```
|
|
278
|
-
backpropagate/
|
|
279
|
-
├── trainer.py # Core Trainer class
|
|
280
|
-
├── multi_run.py # Multi-run SLAO training
|
|
281
|
-
├── slao.py # SLAO LoRA merging algorithm
|
|
282
|
-
├── datasets.py # Dataset loading, filtering & curriculum
|
|
283
|
-
├── export.py # GGUF/Ollama export
|
|
284
|
-
├── config.py # Pydantic settings + training presets
|
|
285
|
-
├── gpu_safety.py # GPU monitoring & safety
|
|
286
|
-
├── cli.py # CLI entry point (backprop command)
|
|
287
|
-
├── checkpoints.py # Checkpoint management
|
|
288
|
-
├── exceptions.py # Structured error hierarchy
|
|
289
|
-
├── feature_flags.py # Optional feature detection
|
|
290
|
-
├── security.py # Path traversal & torch security
|
|
291
|
-
├── logging_config.py # Structured logging setup
|
|
292
|
-
├── ui_theme.py # Radix theme tokens + CSS (Reflex era)
|
|
293
|
-
├── ui_state.py # rx.State subclasses
|
|
294
|
-
├── ui_app/ # Reflex web interface (Radix UI)
|
|
295
|
-
│ ├── app.py # rx.App entry point
|
|
296
|
-
│ ├── chrome.py # Header / LeftNav / SideRail / Footer
|
|
297
|
-
│ ├── pages/ # Train / Multi-Run / Export / Dataset
|
|
298
|
-
│ └── components/ # Bp* primitives (status pill, sparkline, event log…)
|
|
299
|
-
└── ui_security.py # Rate limiting, CSRF, file validation (framework-agnostic)
|
|
300
|
-
```
|
|
301
284
|
|
|
302
|
-
|
|
285
|
+
完全なリファレンスは、[CLI ハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/) を参照するか、`backprop <サブコマンド> --help` を実行してください。
|
|
286
|
+
|
|
287
|
+
## 設定
|
|
288
|
+
|
|
289
|
+
すべての設定は、`BACKPROPAGATE_` というプレフィックスが付いた環境変数を使用して上書きできます。
|
|
290
|
+
|
|
291
|
+
| 変数 | デフォルト値 | 備考 |
|
|
292
|
+
|---|---|---|
|
|
293
|
+
| `BACKPROPAGATE_LOG_LEVEL` | `INFO` | `DEBUG` / `INFO` / `WARNING` / `ERROR` |
|
|
294
|
+
| `BACKPROPAGATE_LOG_JSON` | auto | JSON またはコンソールログの出力を強制 |
|
|
295
|
+
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | デフォルトモデル |
|
|
296
|
+
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | 学習率 |
|
|
297
|
+
| `BACKPROPAGATE_LORA__R` | `256` | LoRA のランク (v1.3 のデフォルト値。v1.2.x のデフォルト値である 16 を使用するには、`--lora-preset=fast` を指定) |
|
|
298
|
+
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | UI ファイルシステムサンドボックス |
|
|
299
|
+
|
|
300
|
+
ネストされたキーには、二重アンダースコアを使用します (`MODEL__NAME`、`MODEL_NAME` ではありません)。完全なリファレンスは、[環境変数ハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/) を参照してください。
|
|
301
|
+
|
|
302
|
+
## モデルプリセット
|
|
303
|
+
|
|
304
|
+
| プリセット | VRAM | ライセンス | 備考 |
|
|
305
|
+
|---|---|---|---|
|
|
306
|
+
| Qwen-3.5-4B | ~8GB | Apache 2.0 | 5B 以下のモデルに推奨されるデフォルト値。このサイズで最高の品質を提供します。 |
|
|
307
|
+
| Phi-4-mini-3.8B | ~8GB | MIT | 推論 / 数学 / コードにおいて高い性能を発揮します。ライセンスの制約が緩やかです。 |
|
|
308
|
+
| SmolLM3-3B | ~6GB | Apache 2.0 | 完全にオープンソースのレシピ。ネイティブな 64K コンテキストに対応。 |
|
|
309
|
+
| Qwen 2.5 7B | ~12GB | Apache 2.0 | 既存のデフォルト値。レガシーの 7B プリセットの中で最高の品質を提供します。 |
|
|
310
|
+
| Qwen 2.5 3B | ~8GB | Qwen-Research | ⚠ 研究ライセンス — 商用利用の際は、Qwen のライセンス条項を確認してください。 |
|
|
311
|
+
| Llama 3.2 3B | ~8GB | Llama Community | Qwen 3B の優れた代替案であり、許可条件があります。 |
|
|
312
|
+
| Llama 3.2 1B | ~6GB | Llama Community | 小規模な環境での迅速な実験に適しています。 |
|
|
313
|
+
| Mistral 7B | ~12GB | Apache 2.0 | Qwen 7B と同等ですが、チャットテンプレートが異なります。 |
|
|
314
|
+
|
|
315
|
+
他のモデルも動作する可能性がありますが、CI (継続的インテグレーション) で使用されるのはこれらの 8 つのモデルのみです。ランク 256 / all-linear ターゲット (Biderman 2024 + Thinking Machines 2025 の推奨) を使用するには、`--lora-preset=quality` (デフォルト) を指定します。v1.2.x のフットプリントが必要な場合は、`--lora-preset=fast` を指定して、レガシーのランク 16 / q+v ターゲットを使用します。
|
|
303
316
|
|
|
304
317
|
## トラブルシューティング
|
|
305
318
|
|
|
306
|
-
|
|
319
|
+
初回実行時に発生する可能性のある一般的なエラーの簡単な一覧です。完全な逆引き一覧は、[トラブルシューティングハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) を参照してください。ドライバ / VRAM / 混合精度に関する詳細については、[CUDA トラブルシューティングページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/) を参照してください。
|
|
307
320
|
|
|
308
|
-
| 症状 |
|
|
309
|
-
|
|
310
|
-
| GPUメモリ不足によるトレーニング中断 | `RUNTIME_GPU_OOM` |
|
|
311
|
-
|
|
|
312
|
-
| モデル名の入力ミス | `INPUT_VALIDATION_FAILED` または `DEP_MODEL_LOAD_FAILED` | <https://huggingface.co/models> での `org/name` の識別子を確認してください。 |
|
|
321
|
+
| 症状 | エラーコード | 対処法 |
|
|
322
|
+
|---|---|---|
|
|
323
|
+
| GPUメモリ不足によるトレーニング中断 | `RUNTIME_GPU_OOM` | 自動モードでは、メモリ不足が発生した場合、バッチサイズを半分にし、最大3回まで再試行します。この機能を無効にするには、`Trainer(oom_recovery=False)` と指定してください。バッチサイズを強制的に小さくするには、`--batch-size 1` オプションを使用してください。 |
|
|
324
|
+
| HuggingFaceから401エラー(「モデルが見つかりません」)が返ってきました。 | `DEP_MODEL_LOAD_FAILED` | `huggingface-cli login` を実行し、再度試してください。入力ミスがある場合は、<https://huggingface.co/models> から正確な ID をコピーしてください。 |
|
|
313
325
|
| `register_with_ollama` への接続拒否 | `DEP_OLLAMA_REGISTRATION_FAILED` | デーモンを起動します: `ollama serve`。 <https://ollama.com> からインストールしてください。再試行可能です。 |
|
|
314
326
|
| チェックポイント保存中にディスク容量不足 | `STATE_CHECKPOINT_INVALID` | クラッシュ時に、`.partial` というディレクトリが作成されますが、削除しても問題ありません。以前の正常なチェックポイントは保持されています。 |
|
|
315
|
-
| GPU
|
|
316
|
-
| `backprop ui --share` が拒否される | `INPUT_AUTH_REQUIRED` | `--auth user:password`
|
|
317
|
-
| 複数回の実行における "validation overlap" (検証データの重複) | `CONFIG_INVALID` (Stage A backend B-001) | `--samples` の値を、トレーニングプールサイズよりも小さくするか、データセットを増やすか、検証を無効にしてください。 |
|
|
327
|
+
| GPUの過熱により、トレーニングを一時中断しました。 | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | 自動モードでは、温度が設定された閾値を超えると一時的に動作が停止し、GPUが冷却されると再開されます。この現象が頻繁に発生する場合は、冷却効率を改善するために、エアフローを見直してください。 |
|
|
328
|
+
| `backprop ui --share` が拒否される | `INPUT_AUTH_REQUIRED` | `--auth user:password` オプションを指定するか、代わりに SSH のポートフォワード機能を使用してください([Web UI](#web-ui) を参照)。 |
|
|
318
329
|
| GGUF エクスポートが初回試行で失敗 | `RUNTIME_GGUF_EXPORT_FAILED` | `pip install backpropagate[export]` を実行してください。Windows の場合は、Visual C++ Build Tools + CMake も必要です。 |
|
|
319
330
|
|
|
320
331
|
## バグの報告
|
|
321
332
|
|
|
322
|
-
|
|
333
|
+
Backpropagateがエラーを検出した場合、起動時に`run_started run_id=<UUID>`のようなメッセージを表示し、同じIDをすべてのログ、チェックポイント、およびWeights & Biasesのエントリに紐付けます。**バグ報告を行う際は、必ず`run_id`を含めてください。** これにより、開発者が特定の実行に関する情報をすべて関連付けることができます。
|
|
323
334
|
|
|
324
335
|
良いバグレポートには、以下の情報が含まれている必要があります。
|
|
325
336
|
|
|
326
|
-
1. **`run_id
|
|
327
|
-
2.
|
|
328
|
-
3.
|
|
329
|
-
4.
|
|
337
|
+
1. **`run_id`**: 起動時に表示されるUUID。このUUIDを使用することで、管理者は特定の実行に関するすべてのログ行、チェックポイント、およびWeights & Biasesのエントリを関連付けることができます。
|
|
338
|
+
2. **エラーコード**: `stderr`に出力される`[コード名]: メッセージ`という形式の文字列。安定したコードの一覧は、[エラーコード](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/)を参照してください。
|
|
339
|
+
3. **追跡情報のマスキング**: `stderr`は、詳細表示モードでない場合、自動的にマスキングされます(Bearerトークン、`sk-*`、`hf_*`、AWSキー、`password=` / `token=` / `api_key=`のペアなどが削除されます)。貼り付けても安全です。完全な追跡情報を確認するには、`BACKPROPAGATE_DEBUG=1`(または`--verbose`)を指定して再度実行し、投稿前に内容を確認してください。
|
|
340
|
+
4. **`backprop info`の出力**: このコマンドは、Python、PyTorch、CUDA、GPUモデル、VRAM、OS、インストールされている追加機能など、管理者がプラットフォーム固有の問題を特定するために必要なすべての情報を表示します。
|
|
341
|
+
|
|
342
|
+
[バグレポートテンプレート](https://github.com/mcp-tool-shop-org/backpropagate/issues/new?template=bug_report.yml)では、これらの情報をすべて明示的に入力するように促しており、そのため問題の切り分けが迅速に進みます。質問、アイデア、または「これは想定される動作ですか?」といった議論は、[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)を参照してください。
|
|
330
343
|
|
|
331
344
|
## プライバシー
|
|
332
345
|
|
|
333
346
|
トレーニングはすべて、ローカルの GPU 上で行われます。Backpropagate は、HuggingFace からモデルをダウンロードするために必要なネットワークリクエストを除き、他のネットワークリクエストは行いません。テレメトリーやクラウドへの依存はありません。
|
|
334
347
|
|
|
335
|
-
##
|
|
348
|
+
## 参考文献
|
|
336
349
|
|
|
337
|
-
|
|
338
|
-
|----------|-------|-------|
|
|
339
|
-
| A. セキュリティ | 6/8 | SECURITY.md、信頼できるモデル、秘密情報/テレメトリーなし、safe_path()。MCP の項目はスキップされます。 |
|
|
340
|
-
| B. エラー処理 | 5/7 | 構造化された例外情報(`code`/`message`/`hint`/`cause`/`retryable`)は、ERROR_CODES レジストリを通じて提供されます。CLIの終了コードは0/1/2/3です。`--verbose`オプションなしでは、生のスタックトレースは表示されません。`run_id`による関連付け、内容が一部隠蔽された標準エラー出力、`--share`と`--auth`の組み合わせによる制限。MCP、デスクトップ版、Visual Studio Codeは対象外です。 |
|
|
341
|
-
| C. オペレーター向けドキュメント | 4/7 | README、CHANGELOG、LICENSE、`--help`。ロギング、MCP、複雑な機能は対象外。 |
|
|
342
|
-
| D. リリース時の品質管理 | 6/9 | `verify.sh`、バージョン=タグ、CI環境での5つのスキャナー、dependabot、`python_requires`、クリーンなビルド。 |
|
|
343
|
-
| E. アイデンティティ | 4/4 | ロゴ、翻訳、ランディングページ、メタデータ。 |
|
|
344
|
-
| **Total** | **25/31** | 14項目は理由によりスキップされました。`shipcheck audit`は100%合格。監査日: 2026年5月21日(B行は、ステージBとステージAのCLI終了コードの作業後に再評価)。 |
|
|
350
|
+
Backpropagateのデフォルト設定や複数回のトレーニングを行う機能は、最新の研究に基づいて設計されています。もし、その基盤となる技術にご興味があれば:
|
|
345
351
|
|
|
346
|
-
|
|
352
|
+
- **Hu et al. 2021.** *LoRA: 低ランク適応による大規模言語モデルの効率化.* [arXiv:2106.09685](https://arxiv.org/abs/2106.09685) — LoRAを紹介する基礎論文。Backpropagateは、この技術を用いてアダプターを効率的に学習します。
|
|
353
|
+
- **Biderman et al. 2024.** *LoRAはより少なく学習し、より少なく忘却する.* [arXiv:2405.09673](https://arxiv.org/abs/2405.09673) — 実験的な証拠として、ランク256のLoRAで、すべての線形ターゲットを使用した場合、ほとんどの追加学習タスクにおいて、フルファインチューニングと同等の品質を、計算量の67%で達成できることが示されています。これは、Backpropagateのバージョン1.3のデフォルトLoRA設定の基盤となっています。
|
|
354
|
+
- **Thinking Machines 2025.** *後悔のないLoRA.* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — 高いLoRAランクを使用する場合に必要な、学習率とフルファインチューニングとの関係を明らかにする実践的な解説。
|
|
355
|
+
- **Kirkpatrick et al. 2017.** *ニューラルネットワークにおける破滅的な忘却の克服.* [arXiv:1612.00796](https://arxiv.org/abs/1612.00796) — ニューラルネットワークが、新しいデータでファインチューニングを行う際に、以前の学習内容を「忘れてしまう」理由を最初に説明した論文(EWC:Elastic Weight Consolidation)。
|
|
356
|
+
- **Wang et al. 2023.** *言語モデルの継続学習のための直交部分空間学習.* [arXiv:2310.14152](https://arxiv.org/abs/2310.14152) — O-LoRAは、新しいアダプターを直交部分空間に制限することで、LoRAを継続学習に利用する初期のアプローチです。
|
|
357
|
+
- **Yadav et al. 2023.** *TIES-マージ:モデルのマージ時の干渉の解消.* [arXiv:2306.01708](https://arxiv.org/abs/2306.01708) — 複数のファインチューニング済みモデルを、干渉なくマージするための基本的な技術です。
|
|
358
|
+
- **Qiao & Mahdavi 2025.** *忘却する前にマージ:継続的なマージによる単一のLoRA継続学習.* [arXiv:2512.23017](https://arxiv.org/abs/2512.23017) — Backpropagateが実装している、特定のアルゴリズムです。2025年12月に発表されたプレプリントであり、Backpropagateがこの論文を最初に実用化した事例として知られています。
|
|
347
359
|
|
|
348
360
|
## ライセンス
|
|
349
361
|
|
|
350
|
-
MIT
|
|
362
|
+
MITライセンスについては、[LICENSE](LICENSE) をご参照ください。
|
|
351
363
|
|
|
352
364
|
---
|
|
353
365
|
|