@mcptoolshop/backpropagate 1.4.0 → 1.6.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.ja.md CHANGED
@@ -15,9 +15,9 @@
15
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>
16
16
  </p>
17
17
 
18
- # アダプターをトレーニングします。それをOllamaに送信します。完了です
18
+ # アダプターをトレーニングします。Ollamaにデプロイします。次に進みます
19
19
 
20
- Backpropagateは、単一のGPUで大規模言語モデルをファインチューニングするためのPythonライブラリです。わずか3行のコードで、16GBのカードで7Bモデルをトレーニングできます。さらに1つのコマンドで、ファインチューニングしたモデルをOllamaにエクスポートし、`ollama run`コマンドで実行できます。Windowsでも問題なく動作します。
20
+ Backpropagateは、単一のGPUで大規模言語モデルを微調整するためのPythonライブラリです。3行のコードで、16GBのカード上で7Bモデルをトレーニングできます。さらに1つのコマンドで、微調整したモデルをOllamaにエクスポートし、`ollama run`コマンドで実行できるようにします。Windowsで最適に動作します。
21
21
 
22
22
  ```python
23
23
  from backpropagate import Trainer
@@ -32,7 +32,7 @@ backprop export ./output/lora --format gguf --quantization q4_k_m --ollama --oll
32
32
  ollama run my-model
33
33
  ```
34
34
 
35
- これだけで完了です。YAMLの設定ファイルは不要です。`accelerate launch`コマンドも不要です。また、GGUF形式への変換に関するチュートリアルもありません。CUDA対応のGPUと、トレーニングデータを含むJSONLファイルがあれば、わずか3行のコードでファインチューニングを開始できます。
35
+ これだけです。YAML設定ファイルはありません。`accelerate launch`コマンドも必要ありません。「変換してGGUF形式にする」という別のチュートリアルもありません。CUDA GPUと、トレーニングデータを含むJSONLファイルがあれば、すぐに微調整を開始できます。
36
36
 
37
37
  ## インストール
38
38
 
@@ -47,81 +47,83 @@ uv tool install backpropagate
47
47
  pip install backpropagate
48
48
  ```
49
49
 
50
- オプション機能が必要な場合は、以下のいずれかでインストール方法を変更してください。
50
+ オプションの機能が必要な場合は、以下のいずれかのインストール方法に切り替えてください。
51
51
 
52
52
  ```bash
53
53
  pipx install "backpropagate[standard]" # adds Unsloth (2x faster training) + the web UI
54
54
  pipx install "backpropagate[full]" # adds everything: unsloth, ui, monitoring, export, etc.
55
55
  ```
56
56
 
57
- Dockerを使用したい場合は、`docker pull ghcr.io/mcp-tool-shop-org/backpropagate:latest`でも動作します。`linux/amd64`と`linux/arm64`の両方のイメージが提供されており、Apple SiliconARM Linux環境でもネイティブイメージを使用できます。UIをコンテナで実行するための標準的な`compose.yaml`ファイルは、リポジトリのルートにあります。`docker compose up`コマンドを実行すると、Web UIが`http://localhost:7860`で起動し、永続的な`~/.backpropagate`ボリュームがマウントされます。
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`ボリュームが永続的にマウントされます。
58
58
 
59
- ## Backpropagateの立ち位置
59
+ ## Backpropagateがどのような位置にあるか
60
60
 
61
- 大規模言語モデルのファインチューニングには、いくつかの優れたライブラリがあります。それぞれが異なる強みを持っています。
61
+ LLMの微調整には、いくつかの優れたライブラリがあります。それぞれ異なる点で優れています。
62
62
 
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ネイティブのレシピを編集したい場合に最適です。
63
+ - **[Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)** — YAML設定を好み、既存のレシピを参考にしたい場合に最適です。
64
+ - **[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)** DPO/PPO/RLHFを使用し、Web GUIが必要な場合に最適です。
65
+ - **[Unsloth](https://github.com/unslothai/unsloth)** — 可能な限り高速なトレーニングが必要で、サポートされているモデルファミリーを使用する場合に最適です。
66
+ - **[torchtune](https://github.com/pytorch/torchtune)** — Metaが提供する、PyTorchネイティブのレシピを編集したい場合に最適です。
67
67
 
68
- Backpropagateは、これらのライブラリとは異なるアプローチを提供します。**単一のコンシューマーGPUで動作するユーザー向けに、アダプターをトレーニングし、配布するための、3行のPython APIです。** YAML設定、GUI、DPO/PPO、マルチノード構成は不要です。必要な機能と、邪魔になるエクスポート手順のみを提供します。
68
+ Backpropagateは、不足している選択肢です。**単一のコンシューマーGPUでアダプターをトレーニングし、それをデプロイしたい個人のオペレーター向けの、3行のPython APIです。** YAMLGUIも、オンラインRL(PPO/GRPO)も、マルチノードもありません。必要なループと、その邪魔になるエクスポートステップだけです。
69
69
 
70
- もし、上記のライブラリを試してみて、設定ファイルの煩雑さに困ったり、対応するモデルファミリーがないことに気づいたり、Windows環境での利用を優先したい場合は、Backpropagateが適しています。
70
+ 上記のいずれかのライブラリを試して、設定ファイルの操作に苦労したり、モデルファミリーの制限に遭遇したり、Windowsを優先するデフォルト設定が必要になった場合は、Backpropagateが最適です。
71
71
 
72
- ## 16GBのコンシューマーGPUでファインチューニングできるモデル
72
+ ## 16GBのコンシューマーGPUで微調整できること
73
73
 
74
- 16GBのカード(RTX 4080 / 5080 / 4070 Ti Super)で動作するモデルの目安です。
74
+ 16GBのカード(RTX 4080 / 5080 / 4070 Ti Super)で実際に使用できる範囲は次のとおりです。
75
75
 
76
76
  | モデル | 方法 | 状態 |
77
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をご確認ください。 |
78
+ | Qwen-3.5-4B / Phi-4-mini-3.8B / SmolLM3-3B | LoRA / QLoRA / DoRA | 快適。完全なシーケンス長で、余裕があります。 |
79
+ | SmolLM3-3B / Qwen2.5-3B / Llama-3.2-3B / Llama-3.2-1B | `mode="full"`(完全な微調整) | v1.4 — `backprop train`コマンドまたは`Trainer(..., mode="full")`で`--mode=full`を指定します。完全な精度(bf16)の重みをロードします。4ビット、アダプターは使用しません。勾配チェックポイントとページ化された8ビットAdamにより、フットプリントを16GB以内に収めることができます。 |
80
+ | Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | 標準。約7〜8GBBackpropagateのデフォルトプリセット。 |
81
+ | Llama-3 13B | QLoRA + サンプルパッキング | ぎりぎりですが、動作します。短いシーケンスを使用してください。 |
82
+ | Mixtral 8x7B(合計470億パラメータ) | | 範囲外 2ビット(AQLM / QuIP#)は、マージ可能なアダプターとGGUFエクスポートの契約を破るため、[v1.5の概要](docs/V1_5_BRIEF.md)で廃止されました。16GBのカードでは、≤8Bのベースモデルを使用してください。 |
83
83
 
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をご確認ください。
84
+ `mode="full"`は、最大**40億パラメータ**のモデルをサポートします。上記の完全な微調整行にある4つのプリセットは、実際には約30億(実際のパラメータ数は3.08〜3.24億)であり、16GBのカードに適合します。3.8〜40億のクラス(Phi-4-mini-3.8B、Qwen-3.5-4B)も上限に達しますが、完全な微調整には**24GB以上の**カードが必要です。重みと勾配だけでも16GBに近づき、オプティマイザーと活性化も考慮する必要があります。そのため、16GBのカードでは、これらのモデルに対して`mode="lora"`を使用してください(LoRA行にあります)。40億を超えるモデルは、`RUNTIME_FULL_FT_MODEL_TOO_LARGE`というエラーで終了します。
85
85
 
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) を参照)。
86
+ 2ビット量子化(AQLM / QuIP#)は、**範囲外**です。[v1.4で検討された後、[v1.5の概要](docs/V1_5_BRIEF.md)で廃止されました。2ビットのベースモデルを、完全な精度の重みにクリーンにマージすることはできません。これにより、Backpropagateのマージ可能なアダプター→GGUF→Ollamaエクスポートの契約(パイプラインの目的)が破られます。代わりに、Backpropagateが提供するヘッドルームは、v1.5の**FP8コンピューティングパス**(`--fp8`、Blackwell / Hopper)と、≤40億のモデルに対する`mode="full"`です。どちらもマージ可能で、エクスポート可能です。
87
87
 
88
- ## Backpropagateが適さないケース
88
+ 30億以下のモデルの場合、16GBで完全な微調整(LoRAだけでなく)が可能になり、v1.4で`mode="full"`として提供されます。`Trainer(..., mode="full")`または`backprop train --mode=full --model phi-4-mini-3.8b`を指定して有効にします。40億を超えるモデルの場合、`RUNTIME_FULL_FT_MODEL_TOO_LARGE`というエラーが発生し、LoRAと40億以下のプリセットが代替手段として提案されます。構成の計算と、Biderman 2024 / Thinking Machines 2025による品質比較については、[完全な微調整のハンドブック](https://mcp-tool-shop-org.github.io/backpropagate/handbook/full-fine-tuning/)をご覧ください。70億以上のモデルの場合、完全な微調整には24GB以上のGPUが必要です。A100クラウドレンタルを検討するか、最新の研究では、ほとんどのポストトレーニングタスクで完全な微調整の品質に匹敵することが示されているため、LoRAを使用してください([アンチピッチセクション](#what-backpropagate-is-not-for)に参考文献を参照)。
89
89
 
90
- もし、以下の用途で使用する場合は、別のライブラリを使用することをお勧めします。Backpropagateは適切な選択肢ではなく、無理に使うと、適切なツールを使用するよりも手間と時間がかかります。このセクションを読んでから始めることで、インストールと設定の繰り返しを避けることができます。
90
+ ## Backpropagateが適さない場合
91
91
 
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環境でのテストは行われていません。
92
+ 以下のユースケースに該当する場合は、別のライブラリを使用する方が良い結果が得られます。Backpropagateは適切な選択肢ではなく、無理に使用しようとすると、適切なツールを選択するよりも多くの労力がかかります。インストールを開始する前に、このセクションを読んでください。
97
93
 
98
- 上記のような機能が必要な場合は、上記に記載されているライブラリをご利用ください。それらは、それらの機能に特化しています。
94
+ - **7B以上のモデルに対するフルパラメータのファインチューニング** — BackpropagateはLoRA / QLoRAを使用し、すべての重みを更新するのではなく、小さなアダプターをトレーニングします。7B以上のモデルの場合、フルファインチューニングには24GB以上のGPUメモリが必要であり、16GBのコンシューマーカードでは実行できません。3B以下のモデルの場合、16GBでフルファインチューニングが可能であり、v1.4で`mode="full"`として提供されます(CLIで`Trainer(..., mode="full")`または`--mode=full`を渡します。4Bを超えるモデルの場合、ハードゲートが`RUNTIME_FULL_FT_MODEL_TOO_LARGE`を発生させ、LoRAと4B未満のプリセットをリカバリとして指定します)。より大きな視点として、最近の研究([Biderman 2024](https://arxiv.org/abs/2405.09673)、[Thinking Machines 2025](https://thinkingmachines.ai/blog/lora/))は、適切な設定のLoRAが、ほとんどのポストトレーニングタスク(指示への従順、ドメインへの適応、ペルソナ/スタイル)において、フルファインチューニングの品質に匹敵し、計算コストは67%で済むことを示しています。したがって、ほとんどのオペレーターが実際に求める作業においては、LoRAを使用し続けることで何も失うことはありません。`mode="full"`は、品質の差を測定し、追加の計算コストを費やすことを決定した場合に使用します。7B以上のモデルのフルファインチューニングを本当に必要とする場合は、HuggingFaceの`transformers.Trainer`を24GB以上のカードで直接使用してください。
95
+ - **オンラインRL — PPO / GRPO / RLVR** — Backpropagateは、単一ステージのSFTと参照なしの優先度調整(ORPOはv1.5で提供され、SimPO / KTOは計画中)を実行します。実行しないのは、PPO、GRPO、またはRLVRなどのオンライン強化学習です。これには、報酬モデルまたはトレーニングステップの上に生成とスコアリングのループが必要です。これらの場合は、TRLまたはLLaMA-Factoryを直接使用してください。(参照なしの優先度調整は、単一ステージの範囲に適合します。なぜなら、メモリに保持する必要のある個別の参照モデルがないからです。詳細は、[クイックスタート](#quick-start)のORPOの注記を参照してください。)
96
+ - **マルチノードトレーニング** — 単一のGPUを1つのマシンでのみ使用します。1つのマシンでのマルチGPUは機能しますが、公式にはサポートされていません(`accelerate launch`経由)。
97
+ - **CUDAレール上のmacOSトレーニング** — Apple SiliconにはCUDAがないため、CUDAパスは、NVIDIA GPUを搭載したLinuxまたはWindowsマシンで実行する必要があります。トレーニングされたモデルは、Ollamaを介してMacで引き続き実行できます。**v1.5の新機能:** 実験的なMLXレール(`--backend mlx`)は、Apple Silicon上でLoRAアダプターをネイティブにトレーニングします。詳細は、[Apple Silicon(MLX)](#apple-silicon-mlx--experimental-v15)を参照してください。これはLoRA-SFTのみであり、実際のシリコン上で構築および検証されていますが、まだ完全に検証されていません。したがって、LoRA SFT(ORPO、フルファインチューニング、FP8、マルチラン)以外のものについては、引き続きCUDAレールを使用することをお勧めします。
98
+ - **テストされたモデルファミリー以外のもの** — Qwen 2.5 / 3.5(7B / 4B)、Phi-4-mini-3.8B、SmolLM3-3B、Llama 3.2(3B / 1B)、Mistral 7B。他のモデルも多くの場合機能しますが、CIでは固定されていません。
99
+
100
+ これらの機能が必要な場合は、上記のライブラリのいずれかを使用してください。それらの機能により優れています。
99
101
 
100
102
  ## Backpropagateが提供するもの
101
103
 
102
- インストール時に利用できる、以下の4つの機能:
104
+ 1つのインストールで4つの機能:
103
105
 
104
- **1. 設定ファイルが不要な、シンプルな3行のAPI**
105
- このREADMEの冒頭にあるコードは、エンドツーエンドで実行できます。`accelerate config`、YAMLファイル、Hydraの設定などは不要です。`Trainer(model).train(data)`と記述するだけで、ファインチューニングが完了します。
106
+ **1. 3行の実際のAPIで、設定ファイルなしで実行できます。**
107
+ このREADMEの冒頭にあるスニペットは、最初から最後まで実行されます。`accelerate config`、YAMLHydraオーバーライドは不要です。`Trainer(model).train(data)`を実行するだけで、ファインチューニングが完了します。
106
108
 
107
- **2. 実際に動作するWindowsサポート**
108
- 多くの機械学習ライブラリでは、Windowsは後回しに扱われています。Backpropagateは、Windows + RTX 5080環境で、最初からテストされています。ライブラリは、Windows特有の動作を自動的に処理します。例えば、Windowsのマルチプロセスでクラッシュしないようにデータを事前にトークン化したり、RTX 40/50シリーズのカードでxformersが動作しない場合に自動的に無効にしたり、データローダーの設定を自動的に調整したりします。これらのことをユーザーが知る必要はありません。すべて自動的に処理されます。
109
+ **2. 実際に動作するWindows。**
110
+ ほとんどのMLライブラリは、Windowsを後回しにします。Backpropagateは、Windows + RTX 5080で最初からテストされています。このライブラリは、ランタイムの癖を処理します。データの前処理方法を認識しているため、Windowsのマルチプロセッシングがクラッシュすることはありません。また、RTX 40/50カードで動作しなくなる場合は、xformersを自動的に無効にし、クラッシュしないデータローダーの設定を選択します。これらのことを知る必要はありません。単に実行するだけです。
109
111
 
110
- **3. 無人実行に対応**
111
- トレーニングには時間がかかります。ユーザーが常に監視する必要はありません。Backpropagateは、バックグラウンドで実行されるように設計されています。
112
+ **3. 無人実行用に構築。**
113
+ トレーニングには数時間かかります。監視する必要はありません。Backpropagateは、放置して実行できるように設計されています。
112
114
 
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/)があります。
115
+ - GPUメモリが不足した場合、バッチサイズを自動的に半分にして、最大3回再試行します。手動で調整する必要はありません。
116
+ - GPUが過熱した場合、冷却されるまで一時停止し、その後再開します。
117
+ - すべてのチェックポイントはアトミックに書き込まれます。ラップトップが保存中にクラッシュした場合でも、以前の良好なチェックポイントはそのまま残ります。
118
+ - すべてのトレーニング実行には、一意のIDが割り当てられ、すべてのログ行、すべてのチェックポイント、およびすべてのWeights & Biasesエントリにスタンプが付けられます。問題が発生した場合、1つのIDを使用すると、メンテナーはすべてを関連付けることができます。
119
+ - エラーには、安定したコード(`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/)があります。
118
120
 
119
- **4. 学習済みのアダプターから`ollama run`まで、1つのコマンド**
120
- 多くのライブラリがモデルを学習しますが、実際に使用したい場合に、ユーザーの邪魔をしないものも多くありません。Backpropagateは、Ollamaで使用される形式(GGUF)にエクスポートし、Ollamaモデルを登録する機能を、1つのコマンドで提供します。トレーニングが完了してから、ファインチューニングしたモデルでチャットを開始するまで、わずか30秒で完了します。
121
+ **4. トレーニングされたアダプターから`ollama run`までのワンコマンド。**
122
+ 多くのライブラリがモデルをトレーニングします。しかし、実際に使用したいときに、邪魔にならないようにするライブラリはほとんどありません。Backpropagateは、GGUFOllamaが使用する形式)にエクスポートし、1つのコマンドでOllamaモデルを登録します。トレーニングが完了してから、「チャットでファインチューニングモデルを使用できる」状態になるまで約30秒です。
121
123
 
122
124
  ## クイックスタート
123
125
 
124
- このリポジトリには、小さなサンプルデータセットが含まれており、このREADMEの冒頭にあるコードが、クリーンな環境で実行できるように設計されています。
126
+ このリポジトリには、小さなサンプルデータセットが含まれており、このREADMEの冒頭にあるスニペットは、クリーンなインストールで実行されます。
125
127
 
126
128
  ```bash
127
129
  pipx install "backpropagate[standard]"
@@ -134,31 +136,80 @@ trainer.export('gguf', quantization='q4_k_m')
134
136
  "
135
137
  ```
136
138
 
137
- これは、5つの短いShareGPT形式の会話データセットでQwen 2.5 7Bのアダプターを学習し、その結果をGGUF形式でエクスポートするものです。ご自身のデータを使用する場合は、JSONLファイルを11つの例で記述してください。
139
+ 独自のデータの場合、JSONLファイルを1行に1つの例としてフォーマットします。
138
140
 
139
141
  ```jsonl
140
142
  {"conversations": [{"from": "human", "value": "What is Python?"}, {"from": "gpt", "value": "A programming language."}]}
141
143
  {"conversations": [{"from": "human", "value": "Explain recursion."}, {"from": "gpt", "value": "A function that calls itself."}]}
142
144
  ```
143
145
 
144
- Alpaca(`instruction` / `output`)、OpenAIのチャット(`messages`)、および生のテキスト形式も使用できます。Backpropagateは、形式を自動的に検出します。
146
+ Alpaca(`instruction` / `output`)、OpenAIチャット(`messages`)、および生のテキスト形式も機能します。Backpropagateは、形式を自動的に検出します。
147
+
148
+ ### 嗜好性チューニング(ORPO、SimPO、KTO)
149
+
150
+ v1.5の新機能:プレーンなデモンストレーションではなく、優先度に基づいてトレーニングします。ORPOは参照なしで、単一ステージです。優先度のシグナルをSFTステップに組み込むため、個別の報酬モデルや参照モデルはなく、3行の構造は変わりません。`--method orpo`(CLI)または`method="orpo"`(Python)を渡し、`{prompt, chosen, rejected}`(または`{chosen, rejected}`のみ)の行のデータセットを渡します。
151
+
152
+ ```jsonl
153
+ {"prompt": "What is Python?", "chosen": "A high-level programming language known for readability.", "rejected": "idk look it up"}
154
+ {"prompt": "Explain recursion.", "chosen": "A function that calls itself with a smaller input until a base case.", "rejected": "when something repeats"}
155
+ ```
156
+
157
+ ```python
158
+ from backpropagate import Trainer
159
+
160
+ trainer = Trainer("Qwen/Qwen2.5-7B-Instruct", method="orpo")
161
+ trainer.train("preferences.jsonl", steps=100)
162
+ trainer.export("gguf", quantization="q4_k_m")
163
+ ```
164
+
165
+ ```bash
166
+ backprop train --data preferences.jsonl --method orpo --steps 100
167
+ ```
168
+
169
+ デフォルトの学習率は、ORPOに対して自動的に`8e-6`まで低下します(損失は単純なSFTよりも急峻です)。オッズ比ペナルティの重みを調整するために、`--orpo-beta`(デフォルトは`0.1`)を調整してください。ORPOは`mode="lora"`でのみ使用できます。
145
170
 
146
- より包括的なワークフロー(ファインチューニングとHugging Face Hubへのアップロード、OOMエラーからの再開、長期的なキャンペーンにおける複数回の学習など)については、[handbook recipes page](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/)を参照してください。
171
+ **v1.6の新機能 SimPOとKTO。** `--method simpo` ([Meng et al. 2024](https://arxiv.org/abs/2405.14734))は、長さで正規化された報酬を使用し、参照を必要とせず、ORPOと同じペアの`{prompt, chosen, rejected}`データを受け取ります(`--simpo-beta`、`--simpo-gamma`)。`--method kto` ([Ethayarajh et al. 2024](https://arxiv.org/abs/2402.01306))は、**ペアになっていない** `{prompt, completion, label}`データを受け取ります。これは、キュレーションされたA/Bペアではない大規模なフィードバックのクラスに対して、サンプルごとの肯定/否定の評価を行います。また、ラベル数に基づいて、望ましい/望ましくない損失の重みを自動的に調整します。どちらも`mode="lora"`でのみ使用でき、単一GPU SFT環境に留まります(個別の参照モデルは使用しません)。どの方法を使用するかについては、[嗜好性チューニングハンドブック](https://mcp-tool-shop-org.github.io/backpropagate/handbook/preference-tuning/)を参照してください。オンラインRL(PPO/GRPO)については、[Backpropagateが適さない理由](#what-backpropagate-is-not-for)をご覧ください。
172
+
173
+ ### 推論トレースSFT(R1蒸留)
174
+
175
+ v1.5の新機能:推論モデルを簡単に蒸留します。`--reasoning-trace`(CLI)または `Trainer(..., reasoning_trace=True)`(Python)を渡し、アシスタントの応答内に `<think>...</think>` の連鎖的な思考を保持するトレースを入力します。これは、[DeepSeek-R1](https://arxiv.org/abs/2501.12948) 蒸留の純粋なSFT部分であり、RLは必要ありません。バックプロパゲーションは `<think>` をトレーニングターゲットに保持し、空の/長すぎるトレースを削除(トレース長フィルタリング)、およびより長いCoTのためにデフォルトの `max_seq_length` を8192に引き上げます。重要な点として、`<think>` は **プレーンテキスト** のままです。特別なトークンや、埋め込みのリサイズは行われません。そのため、マージされたGGUFは、他のファインチューンと同様にOllamaにエクスポートできます。SFTのみです。データセットの形状と調整可能なトークンバンドについては、[reasoning-trace recipe](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/#reasoning-trace-sft-r1-distillation) を参照してください。
176
+
177
+ ### Apple Silicon(MLX)—実験的、v1.5
178
+
179
+ v1.5の新機能:**1つのAPI、2つのレール。** CUDAは、引き続き標準で検証済みのバックエンドです。MLXは、Appleの [`mlx_lm.lora`](https://github.com/ml-explore/mlx-lm) ツールチェーンを介して、MシリーズMacでトレーニングを行う2番目のレールです(統合メモリ、CUDAは不要)。同じ3行のコードで、ハードウェアによってレールを選択します。`backend='auto'`(デフォルト)は、NVIDIAではCUDAに、Apple SiliconではMLXにルーティングするため、既存のCUDA環境はバイト単位で同一です。
180
+
181
+ ```python
182
+ from backpropagate import Trainer
183
+
184
+ # On an M-series Mac with `pip install 'backpropagate[mlx]'`:
185
+ trainer = Trainer("mlx-community/Qwen2.5-0.5B-Instruct-4bit", backend="mlx")
186
+ trainer.train("examples/quickstart.jsonl", steps=100)
187
+ ```
188
+
189
+ ```bash
190
+ backprop train --data my_data.jsonl --backend mlx --steps 100
191
+ ```
192
+
193
+ v1.5では、MLXレールは **LoRA SFTのみ** です。ORPO、FP8、`mode='full'`、MLXでのマルチランはまだサポートされていません(それぞれ `CONFIG_INVALID_SETTING` で拒否されます。それらの機能を使用する場合は、NVIDIA環境で `backend='cuda'` / `'auto'` を使用してください)。結果として得られるアダプターは、プレーンなsafetensorsであり、CUDAレールと同じパスを通じてOllamaにエクスポートされます。
194
+
195
+ > ⚠️ **現状:** v1.5でMLXレールは**構築され、ユニットテストも完了(モックを使用)**していますが、**まだ実際のApple Siliconでの実証検証は行われていません** — `mlx-lm`はApple専用であり、このコードが作成されたNVIDIA環境では実行できません。実験的なものとして扱ってください。これは、v1.5でFP8パスが採用されたときと同じ考え方です(FP8はv1.6でBlackwell上で実証検証に合格しました。MLXはまだ実際のシリコンでの検証が必要です)。MシリーズのMacで実行したら、[不具合を報告してください](#reporting-bugs)。Apple以外のホストで`--backend mlx`を強制すると、`CONFIG_INVALID_SETTING`エラーが発生します。Macに`mlx_lm`ツールチェーンがない場合、`DEP_MLX_UNAVAILABLE`エラーが発生します。
196
+
197
+ よりエンドツーエンドのワークフロー(ファインチューンとHF Hubへのプッシュ、OOM後の再開、長期間のキャンペーンにおけるマルチランSLAOなど)については、[ハンドブックのレシピページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/) を参照してください。
147
198
 
148
199
  ### Web UI(オプション)
149
200
 
150
- Pythonコードを直接入力する代わりに、Web UIを使用したい場合は、UIの追加機能をインストールして起動します。
201
+ Pythonのコードを入力する代わりにクリックしたい場合は、UIエクストラをインストールして起動します。
151
202
 
152
203
  ```bash
153
204
  pipx install "backpropagate[ui]"
154
205
  backprop ui --port 7862
155
206
  ```
156
207
 
157
- ローカルのWebインターフェースが`http://localhost:7862`で起動します。ここで、データセットを指定し、モデルを選択し、学習を実行し、エクスポートすることができます。UIはデフォルトではローカルでのみ利用可能です。他のデバイスからアクセスできるようにするには、[Web UI](#web-ui)を参照して、`--share`と`--auth`のセキュリティ設定を確認してください。
208
+ ローカルのWebインターフェイスが `http://localhost:7862` で開き、データセットを閲覧したり、形式を検証したり、トレーニング構成を視覚的に組み立てたりできます。トレーニング自体は `backprop train` を介して実行されます(UIによるトレーニングはロードマップにあります。現在の「開始」ボタンは、そのメモを表示します)。UIはデフォルトではローカルでのみ動作します。他のデバイスからアクセスできるようにするには、[Web UI](#web-ui) の `--share` + `--auth` セキュリティ契約を参照してください。
158
209
 
159
- ## 複数回の学習
210
+ ## マルチラントレーニング
160
211
 
161
- 複数のデータセットで段階的にファインチューニングを行いたい場合(たとえば、毎週新しい学習データを受け取り、以前に学習した内容を忘れることなく追加したい場合)は、Backpropagateの`multi_run`モードが適しています。
212
+ 複数のデータセットにわたって段階的にファインチューンしたい場合(たとえば、毎週新しいトレーニングデータを入手し、以前に学習したことを忘れないように追加したい場合)、Backpropagateの `multi_run` モードを使用します。
162
213
 
163
214
  ```python
164
215
  from backpropagate import Trainer
@@ -173,9 +224,9 @@ result = trainer.multi_run(
173
224
  )
174
225
  ```
175
226
 
176
- これは、5回の学習を繰り返し実行し、各回の実行でアダプターをマージすることで、以前の知識を維持しながら新しい例を取り入れる方法です。この手法は、最近の研究に基づいています。詳細は、このREADMEの末尾にある[References](#references)を参照してください。
227
+ これは、5回のトレーニングパスを実行し、各パスの間にアダプターをマージすることで、以前の知識を保持しながら新しい例を組み込みます。この手法は、最近の継続学習の研究に基づいています。詳細については、このREADMEの末尾にある[参考文献](#references) を参照してください。
177
228
 
178
- CLI(コマンドラインインターフェース)版:
229
+ CLIバージョン:
179
230
 
180
231
  ```bash
181
232
  backprop multi-run --data my_data.jsonl --runs 5 --steps 100 --samples 1000
@@ -183,7 +234,7 @@ backprop multi-run --data my_data.jsonl --runs 5 --steps 100 --samples 1000
183
234
 
184
235
  ## チェックポイントからの再開
185
236
 
186
- 4回目の実行でクラッシュした5回の学習も、再開可能です。すべての`multi_run`セッションは、実行IDをオンディスクの履歴ファイルとチェックポイントマニフェストに書き込みます。そのため、中断した場所から再開するには、1つのコマンドで済みます。
237
+ 5回のトレーニングが4回目の実行でクラッシュした場合でも、再開できます。各マルチランセッションは、実行IDをディスク上の履歴とチェックポイントマニフェストに書き込みます。そのため、中断したところから再開するには、1つのコマンドを実行するだけです。
187
238
 
188
239
  ```bash
189
240
  backprop resume <run-id>
@@ -191,11 +242,11 @@ backprop multi-run --data ... --resume <run-id>
191
242
  backprop train --data ... --resume <run-id> # single-run resume
192
243
  ```
193
244
 
194
- `backprop multi-run`のデフォルト設定(`--resume`オプションなし)では、同じ出力ディレクトリ内に実行中のセッションが存在する場合、それを自動的に検出し、再開します。クリーンな状態から開始するには、新しい出力ディレクトリを指定してください。
245
+ `backprop multi-run` のデフォルトの動作(`--resume` なし)は、同じ出力ディレクトリに進行中のエントリを自動的に検出し、続行します。クリーンな開始を強制するには、新しい出力ディレクトリを指定します。
195
246
 
196
247
  ## トレーニング履歴
197
248
 
198
- `backprop train`および`backprop multi-run`の実行ごとに、`<output>/run_history.json`ファイルに1行が記録されます。記録される内容は、使用したモデル、データセット、ハイパーパラメータ、ステータス、最終的な損失、損失履歴などです。過去の実行を一覧表示し、確認することができます。
249
+ すべての `backprop train` および `backprop multi-run` 呼び出しは、`<output>/run_history.json` に行を記録します。これには、使用されたモデル、データセット、ハイパーパラメータ、ステータス、最終的な損失、損失履歴が含まれます。過去の実行をリスト表示および検査できます。
199
250
 
200
251
  ```bash
201
252
  backprop list-runs # last 20 runs
@@ -204,9 +255,9 @@ backprop list-runs --json --limit 100 # machine-readable
204
255
  backprop show-run abcd1234 # detail view (partial ID is fine)
205
256
  ```
206
257
 
207
- ## 実験の追跡
258
+ ## 実験追跡
208
259
 
209
- Backpropagateは、インストールされている実験追跡ツール(Weights & Biases、TensorBoard、MLflow)を自動的に検出し、連携させます。`wandb`がインストールされており、ログインしている場合は、各実行が自動的にW&Bに記録されます。記録される実行名は、オンディスクの実行IDと一致します。これにより、W&B、ログ、および`run_history.json`ファイルを、1つの識別子で検索することができます。
260
+ Backpropagateは、インストールされている実験追跡ツール(Weights & Biases、TensorBoard、MLflow)を自動的に検出し、それらを連携させます。`wandb` がインストールされていてログインしている場合、すべての実行は、ディスク上の実行IDと一致する実行名でW&Bに自動的にログ記録されます。これにより、W&B、ログ、および `run_history.json` を1つの識別子を使用して検索できます。
210
261
 
211
262
  ```bash
212
263
  pip install backpropagate[monitoring] # installs wandb + psutil
@@ -214,23 +265,25 @@ wandb login # one-time setup
214
265
  backprop train --data my_data.jsonl
215
266
  ```
216
267
 
217
- `Trainer(report_to=["wandb"])`、`Trainer(report_to=["tensorboard"])`、または`Trainer(report_to="none")`を使用して、この機能を無効にすることができます。
268
+ `Trainer(report_to=["wandb"])`、`Trainer(report_to=["tensorboard"])`、または `Trainer(report_to="none")` を使用してオーバーライドし、追跡を無効にすることができます。
218
269
 
219
270
  ## Web UI
220
271
 
221
- ReflexWebインターフェースは、オプションで利用可能です。`pipx install "backpropagate[ui]"`でインストールし、起動します。
272
+ Reflex Webインターフェイスは、オプションです。`pipx install "backpropagate[ui]"` でインストールし、起動します。
222
273
 
223
274
  ```bash
224
275
  backprop ui --port 7862
225
276
  ```
226
277
 
227
- UIは、ローカルで`http://localhost:7862`で実行されます。他のデバイス(ネットワーク上の他のユーザー、パブリックURLなど)からアクセスできるようにするには、`--share`(または`--host`)と`--auth`を組み合わせて使用する必要があります。
278
+ UIはローカルの `http://localhost:7862` で実行されます。現在、ワークフローの **参照/検証/構成** の部分をカバーしています。データセットを指し示し、自動検出された形式と統計をチェックし、モデルを選択し、実行構成を組み立てます。**実行の開始はCLIから行われます** (`backprop train` / `backprop multi-run`)。UIの「開始」ボタンには、そのメモが表示されます。UIによるトレーニングは、今後の計画です。それまでは、UIはオンランプであり、CLIはトリガーです。
279
+
280
+ 他のデバイス(ネットワーク上の他のユーザー、パブリックURLなど)に公開するには、`--share`(または`--host`)を`--auth`と組み合わせて使用する必要があります。
228
281
 
229
282
  ```bash
230
283
  backprop ui --share --auth alice:hunter2
231
284
  ```
232
285
 
233
- `backprop ui --share`を`--auth`なしで実行すると、エラーが発生します。その理由は、`--share`はインターネット上の誰でもアクセスできるURLを公開しますが、認証なしでは、誰でも学習パイプラインを操作したり、Hugging Faceのトークンを読み取ったりできる可能性があるためです。この機能を無効にすることはできません。認証情報を設定したくない場合は、SSHポートフォワードを使用してください。
286
+ `--auth`なしで`backprop ui --share`を実行すると、エラーが発生します。理由は、`--share`はインターネット上の誰でもアクセスできるURLを公開し、認証がない場合、誰でもトレーニングのパイプラインを制御し、Hugging Faceのトークンを読み取ることができるためです。この設定を無効にするオプションはありません。認証情報を設定したくない場合は、代わりにSSHポートフォワーディングを使用してください。
234
287
 
235
288
  ```bash
236
289
  # On the client:
@@ -242,30 +295,30 @@ backprop ui # no --share
242
295
 
243
296
  完全な脅威モデルについては、[handbook/security.md](https://mcp-tool-shop-org.github.io/backpropagate/handbook/security/)を参照してください。
244
297
 
245
- UI からのファイルシステムへの書き込みは、単一のディレクトリにサンドボックス化されています。
298
+ UIからのファイルシステムへの書き込みは、単一のディレクトリにサンドボックス化されます。
246
299
 
247
- - デフォルト: `~/.backpropagate/ui-outputs`
248
- - 上書き: `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own` を設定
249
- - 上書きは、許可リスト方式で検証されます。システムや認証情報に関連するパス (`/etc`, `~/.ssh`, `~/.aws`, `C:\Windows\System32` など) は許可されません。
300
+ - デフォルト:`~/.backpropagate/ui-outputs`
301
+ - 上書き:`BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own`を設定します。
302
+ - 上書きは、許可リストで検証されます。システムまたは認証情報のパス(`/etc`、`~/.ssh`、`~/.aws`、`C:\Windows\System32`など)は拒否されます。
250
303
 
251
304
  ## プラットフォームに関する注意点
252
305
 
253
- **要件:** Python 3.10以上、CUDA対応GPU(8GB以上のVRAM)、PyTorch 2.0以上
306
+ **要件:** Python 3.10+、CUDA GPU(8GB以上のVRAM)、PyTorch 2.0+
254
307
 
255
- Python 3.10 は、2026年10月にサポート終了となります。Backpropagate は、v1.4 で Python 3.10 のサポートを終了する予定です。新規インストールの場合は、Python 3.11 または 3.12 を推奨します。3.11 が最もテストされているバージョンです。
308
+ Python 3.10は少なくともv1.6までサポートされます。2026年10月にアップストリームのサポートが終了し、その後最初のリリースで削除される予定です。新しいインストールでは、Python 3.11または3.12を推奨します。3.11は最もテストされたバージョンです。
256
309
 
257
- Backpropagate は、異なるプラットフォームでのトレーニング時の動作に関する問題を処理しますが、インストール時の問題を解決することはできません。最も一般的な問題は以下の2つです。
310
+ Backpropagateは、さまざまなプラットフォームでのトレーニングにおける実行時の癖に対処しますが、インストール時の問題を修正することはできません。最も一般的な問題は次の2つです。
258
311
 
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 が必要です。
312
+ - **誤ったCUDAホイール。** PyTorchは、CUDAバージョンごとに1つのバイナリとして公開されます。誤ったものを選択すると、CPUのみのPyTorchがサイレントにインストールされ、トレーニングは非常に遅くなります。ドライバーに適したホイールを<https://pytorch.org/get-started/locally/>で選択してください。`nvidia-smi`を実行して、ドライバー/CUDAバージョンを確認してください。
313
+ - **Windows + GGUFエクスポート。** `[export]`エクストラは、`llama-cpp-python`をソースからビルドします。これには、Visual Studio Build ToolsC++コンポーネント)とCMakeが必要です。
261
314
 
262
- **macOS:** GPU トレーニングはサポートされていません (CUDA 非対応)。トレーニング済みのアダプターは、Ollama を使用して Mac で実行できますが、`trainer.train()` を実行すると `DEP_GPU_NOT_AVAILABLE` エラーが発生します。トレーニング自体は、CUDA 対応の Linux または Windows マシンで行ってください。
315
+ **macOS:** CUDAレールはサポートされていません(CUDAがありません)。CUDAを使用するように設定された`trainer.train()`は、`DEP_GPU_NOT_AVAILABLE`を発生させます。トレーニングされたアダプターは、Ollamaを介してMacで実行できます。**v1.5の新機能:** 実験的なMLXレール(`--backend mlx`、`pip install 'backpropagate[mlx]'`)は、`mlx_lm.lora`を介してApple Silicon上でLoRAアダプターをネイティブにトレーニングします。LoRA SFTのみで、ビルドおよびユニットテストは完了していますが、実際のハードウェアでの検証はまだ行われていません([Apple Silicon (MLX)](#apple-silicon-mlx--experimental-v15)を参照)。CUDAパスを使用するか、ORPO / 完全なファインチューニング / FP8 / 複数回の実行を行う場合は、CUDA LinuxまたはWindowsマシンを使用してください。
263
316
 
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/) を参照してください。
317
+ 詳細については、[トラブルシューティングハンドブックページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/)にある詳細なインストール修正ガイドと、[CUDAトラブルシューティングページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/)にあるドライバー/VRAM/xformers/bf16対fp16の問題に関するページを参照してください。
265
318
 
266
319
  ## CLI
267
320
 
268
- すべての Python API には、対応する CLI (コマンドラインインターフェース) が用意されています。
321
+ すべてのPython APIには、対応するCLIミラーがあります。
269
322
 
270
323
  ```bash
271
324
  backprop train --data my_data.jsonl --model Qwen/Qwen2.5-7B-Instruct --steps 100
@@ -282,84 +335,84 @@ backprop replay <run-id> # re-run with same config / dataset
282
335
  backprop export-runs --format jsonl # bulk export run history
283
336
  ```
284
337
 
285
- 完全なリファレンスは、[CLI ハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/) を参照するか、`backprop <サブコマンド> --help` を実行してください。
338
+ 完全なリファレンスは、[CLIハンドブックページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/)または`backprop <サブコマンド> --help`で確認できます。
286
339
 
287
340
  ## 設定
288
341
 
289
- すべての設定は、`BACKPROPAGATE_` というプレフィックスが付いた環境変数を使用して上書きできます。
342
+ すべての設定は、`BACKPROPAGATE_`プレフィックスを使用して環境変数で上書きできます。
290
343
 
291
344
  | 変数 | デフォルト値 | 備考 |
292
345
  |---|---|---|
293
346
  | `BACKPROPAGATE_LOG_LEVEL` | `INFO` | `DEBUG` / `INFO` / `WARNING` / `ERROR` |
294
- | `BACKPROPAGATE_LOG_JSON` | auto | JSON またはコンソールログの出力を強制 |
347
+ | `BACKPROPAGATE_LOG_JSON` | 自動 | JSONまたはコンソールログを強制的に出力します。 |
295
348
  | `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | デフォルトモデル |
296
349
  | `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 ファイルシステムサンドボックス |
350
+ | `BACKPROPAGATE_LORA__R` | `256` | LoRAランク(v1.3のデフォルト。v1.2.xのデフォルトの16にするには、`--lora-preset=fast`を渡します) |
351
+ | `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | UIファイルシステムサンドボックス |
299
352
 
300
- ネストされたキーには、二重アンダースコアを使用します (`MODEL__NAME`、`MODEL_NAME` ではありません)。完全なリファレンスは、[環境変数ハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/) を参照してください。
353
+ ネストされたキーには、二重アンダースコアを使用します(`MODEL__NAME`、`MODEL_NAME`ではありません)。完全なリファレンスは、[環境変数ハンドブックページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/)にあります。
301
354
 
302
355
  ## モデルプリセット
303
356
 
304
357
  | プリセット | VRAM | ライセンス | 備考 |
305
358
  |---|---|---|---|
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 と同等ですが、チャットテンプレートが異なります。 |
359
+ | Qwen-3.5-4B | 8GB | Apache 2.0 | 5GB以下のモデルに推奨されるデフォルト値。このサイズで最高の品質。 |
360
+ | Phi-4-mini-3.8B | 8GB | MIT | 推論/数学/コードに優れています。ライセンスの制限が厳しい。 |
361
+ | SmolLM3-3B | 6GB | Apache 2.0 | 完全にオープンなレシピ。ネイティブで64Kのコンテキストをサポート。 |
362
+ | Qwen 2.5 7B | 12GB | Apache 2.0 | 既存のデフォルト値。従来の7Bプリセットの中で最高の品質。 |
363
+ | Qwen 2.5 3B | 8GB | Qwen-Research | ⚠ 研究ライセンス — 商業利用前にQwenライセンス条項を確認してください。 |
364
+ | Llama 3.2 3B | 8GB | Llama Community | Qwen 3Bの優れた代替手段で、許可に関する制限があります。 |
365
+ | Llama 3.2 1B | 6GB | Llama Community | 小さなカードで迅速な実験を行うためのものです。 |
366
+ | Mistral 7B | 12GB | Apache 2.0 | Qwen 7Bと同等で、異なるチャットテンプレートを使用します。 |
314
367
 
315
- 他のモデルも動作する可能性がありますが、CI (継続的インテグレーション) で使用されるのはこれらの 8 つのモデルのみです。ランク 256 / all-linear ターゲット (Biderman 2024 + Thinking Machines 2025 の推奨) を使用するには、`--lora-preset=quality` (デフォルト) を指定します。v1.2.x のフットプリントが必要な場合は、`--lora-preset=fast` を指定して、レガシーのランク 16 / q+v ターゲットを使用します。
368
+ 他のモデルも動作する場合がありますが、これらの8つだけがCIで固定されています。`--lora-preset=quality`(デフォルト)を渡すと、Biderman 2024 + Thinking Machines 2025のランク256 / すべての線形ターゲットが使用されます。v1.2.xのフットプリントが必要な場合は、`--lora-preset=fast`を渡すと、従来のランク16 / q+vターゲットが使用されます。
316
369
 
317
370
  ## トラブルシューティング
318
371
 
319
- 初回実行時に発生する可能性のある一般的なエラーの簡単な一覧です。完全な逆引き一覧は、[トラブルシューティングハンドブックのページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/) を参照してください。ドライバ / VRAM / 混合精度に関する詳細については、[CUDA トラブルシューティングページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/) を参照してください。
372
+ 最も一般的な初回実行時のエラーの簡単なインデックスです。完全な逆インデックスは、[トラブルシューティングハンドブックページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/)にあります。ドライバー/VRAM/混合精度に関する詳細については、[CUDAトラブルシューティングページ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting-cuda/)を参照してください。
320
373
 
321
- | 症状 | エラーコード | 対処法 |
374
+ | 症状 | エラーコード | 修正方法 |
322
375
  |---|---|---|
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 をコピーしてください。 |
325
- | `register_with_ollama` への接続拒否 | `DEP_OLLAMA_REGISTRATION_FAILED` | デーモンを起動します: `ollama serve`。 <https://ollama.com> からインストールしてください。再試行可能です。 |
326
- | チェックポイント保存中にディスク容量不足 | `STATE_CHECKPOINT_INVALID` | クラッシュ時に、`.partial` というディレクトリが作成されますが、削除しても問題ありません。以前の正常なチェックポイントは保持されています。 |
327
- | GPUの過熱により、トレーニングを一時中断しました。 | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | 自動モードでは、温度が設定された閾値を超えると一時的に動作が停止し、GPUが冷却されると再開されます。この現象が頻繁に発生する場合は、冷却効率を改善するために、エアフローを見直してください。 |
328
- | `backprop ui --share` が拒否される | `INPUT_AUTH_REQUIRED` | `--auth user:password` オプションを指定するか、代わりに SSH のポートフォワード機能を使用してください([Web UI](#web-ui) を参照)。 |
329
- | GGUF エクスポートが初回試行で失敗 | `RUNTIME_GGUF_EXPORT_FAILED` | `pip install backpropagate[export]` を実行してください。Windows の場合は、Visual C++ Build Tools + CMake も必要です。 |
376
+ | GPUのメモリがトレーニング中に不足する | `RUNTIME_GPU_OOM` | 自動 — バックプロパゲーションにより、バッチサイズが半分になり、最大3回再試行されます。無効にするには、`Trainer(oom_recovery=False)` を使用します。より小さいサイズに強制するには、`--batch-size 1` を使用します。 |
377
+ | HuggingFace から 401 / "モデルが見つかりません" というエラーが返されます。 | `DEP_MODEL_LOAD_FAILED` | `huggingface-cli login` を実行し、再試行します。タイプミスがある場合は、<https://huggingface.co/models> から正確な ID をコピーしてください。 |
378
+ | `register_with_ollama` 接続が拒否されました。 | `DEP_OLLAMA_REGISTRATION_FAILED` | デーモンを開始します: `ollama serve`。 <https://ollama.com> からインストールします。再試行可能です。 |
379
+ | チェックポイント保存中にディスクがいっぱいになりました。 | `STATE_CHECKPOINT_INVALID` | アトミック書き込みにより、クラッシュ時に `.partial` ディレクトリが残ります。削除しても安全です。以前の正常なチェックポイントはそのままです。 |
380
+ | GPU の過熱によりトレーニングが一時停止しました。 | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | 自動 — バックプロパゲーションは、温度のしきい値で一時停止し、GPU が冷却されると再開します。頻繁に発生する場合は、エアフローを改善してください。 |
381
+ | `backprop ui --share` が拒否されました。 | `RUNTIME_UI_AUTH_NOT_ENFORCED` | `--auth user:password` を渡すか、代わりに SSH ポートフォワーディングを使用します (「[Web UI](#web-ui)」を参照)。 |
382
+ | GGUF エクスポートが最初の試行で失敗しました。 | `RUNTIME_GGUF_EXPORT_FAILED` | `pip install backpropagate[export]`。Windows の場合は、Visual C++ ビルドツールと CMake も必要です。 |
330
383
 
331
384
  ## バグの報告
332
385
 
333
- Backpropagateがエラーを検出した場合、起動時に`run_started run_id=<UUID>`のようなメッセージを表示し、同じIDをすべてのログ、チェックポイント、およびWeights & Biasesのエントリに紐付けます。**バグ報告を行う際は、必ず`run_id`を含めてください。** これにより、開発者が特定の実行に関する情報をすべて関連付けることができます。
386
+ 何らかの理由で処理が失敗した場合、Backpropagate は起動時に `run_started run_id=<uuid>` のような行を出力し、同じ ID をすべてのログ行、すべてのチェックポイント、およびすべての Weights & Biases エントリに関連付けます。**バグ報告には `run_id` を含めてください**。これにより、担当者がその特定の実行に関連するすべての情報を関連付けることができます。
334
387
 
335
- 良いバグレポートには、以下の情報が含まれている必要があります。
388
+ 適切なバグ報告には、次のものが含まれます。
336
389
 
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`の出力**: このコマンドは、PythonPyTorchCUDAGPUモデル、VRAMOS、インストールされている追加機能など、管理者がプラットフォーム固有の問題を特定するために必要なすべての情報を表示します。
390
+ 1. **`run_id`** — 起動時に出力される UUID。1 つの UUID により、担当者はその特定の実行に関連するすべてのログ行、すべてのチェックポイント、およびすべての Weights & Biases エントリを関連付けることができます。
391
+ 2. **エラーコード** `stderr` の `[CODE_NAME]: message` 行。安定したコードのカタログについては、[エラーコード](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/) を参照してください。
392
+ 3. **編集されたトレースバック**。非詳細モードでは、`stderr` が自動的に編集されます (Bearer トークン、`sk-*`、`hf_*`、AWS キー、`password=` / `token=` / `api_key=` ペアが削除されます)。貼り付けても安全です。完全な編集されていないトレースバックを取得するには、`BACKPROPAGATE_DEBUG=1` (または `--verbose`) で再実行し、投稿する前に確認してください。
393
+ 4. **`backprop info` の出力**。1 つのコマンドで、Python / PyTorch / CUDA / GPU モデル / VRAM / OS / インストールされた追加機能が出力されます。これは、担当者がプラットフォーム固有の回帰を特定するために必要なすべての情報です。
341
394
 
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)を参照してください。
395
+ [バグ報告テンプレート](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) を参照してください。
343
396
 
344
397
  ## プライバシー
345
398
 
346
- トレーニングはすべて、ローカルの GPU 上で行われます。Backpropagate は、HuggingFace からモデルをダウンロードするために必要なネットワークリクエストを除き、他のネットワークリクエストは行いません。テレメトリーやクラウドへの依存はありません。
399
+ すべてのトレーニングは、ローカルの GPU 上で実行されます。Backpropagate は、HuggingFace からモデルをダウンロードする場合を除き、ネットワーク要求を行いません (これはユーザーが開始します)。テレメトリはなく、クラウドへの依存もありません。
347
400
 
348
401
  ## 参考文献
349
402
 
350
- Backpropagateのデフォルト設定や複数回のトレーニングを行う機能は、最新の研究に基づいて設計されています。もし、その基盤となる技術にご興味があれば:
403
+ Backpropagate のデフォルト設定と複数回のトレーニングモードは、最近の研究に基づいています。関連する基盤技術に興味がある場合は、次の資料を参照してください。
351
404
 
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) — 実験的な証拠として、ランク256LoRAで、すべての線形ターゲットを使用した場合、ほとんどの追加学習タスクにおいて、フルファインチューニングと同等の品質を、計算量の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がこの論文を最初に実用化した事例として知られています。
405
+ - **Hu et al. 2021.** *LoRA: Low-Rank Adaptation of Large Language Models.* [arXiv:2106.09685](https://arxiv.org/abs/2106.09685) — Backpropagate がアダプターを効率的にトレーニングする方法である LoRA を導入した基礎論文。
406
+ - **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 構成を推進します。
407
+ - **Thinking Machines 2025.** *LoRA Without Regret.* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — 高い LoRA ランクで必要な 10 倍の学習率と完全な FT の補正を特定した、実践的なフォローアップ。
408
+ - **Kirkpatrick et al. 2017.** *Overcoming catastrophic forgetting in neural networks.* [arXiv:1612.00796](https://arxiv.org/abs/1612.00796) — ニューラルネットワークが新しいデータでファインチューニングすると、以前のトレーニングを「忘れてしまう」理由を最初に説明した論文 (EWC 弾性重み集約)。
409
+ - **Wang et al. 2023.** *Orthogonal Subspace Learning for Language Model Continual Learning.* [arXiv:2310.14152](https://arxiv.org/abs/2310.14152) — O-LoRA。これは、新しいアダプターを直交部分空間に制約することにより、LoRA を継続学習に使用する、より早いアプローチです。
410
+ - **Yadav et al. 2023.** *TIES-Merging: Resolving Interference When Merging Models.* [arXiv:2306.01708](https://arxiv.org/abs/2306.01708) — 複数のファインチューニングされたモデルを干渉なしでマージするための基礎的な手法。
411
+ - **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 は、この論文の最初の既知のダウンストリーム採用者です。
359
412
 
360
413
  ## ライセンス
361
414
 
362
- MITライセンスについては、[LICENSE](LICENSE) をご参照ください。
415
+ MIT[LICENSE](LICENSE) を参照してください。
363
416
 
364
417
  ---
365
418