@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.es.md +175 -122
- package/README.fr.md +178 -125
- package/README.hi.md +165 -112
- package/README.it.md +170 -117
- package/README.ja.md +169 -116
- package/README.md +67 -14
- package/README.pt-BR.md +170 -117
- package/README.zh.md +171 -118
- package/package.json +1 -1
package/README.hi.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
|
-
# एक एडाप्टर को प्रशिक्षित करें। इसे ओलामा
|
|
18
|
+
# एक एडाप्टर को प्रशिक्षित करें। इसे ओलामा में भेजें। आगे बढ़ें।
|
|
19
19
|
|
|
20
|
-
बैकप्रोपैगेट एक पायथन लाइब्रेरी है
|
|
20
|
+
बैकप्रोपैगेट एक पायथन लाइब्रेरी है जिसका उपयोग एकल जीपीयू पर बड़े भाषा मॉडल को ठीक करने के लिए किया जाता है। तीन पंक्तियों के कोड से 16GB कार्ड पर 7B मॉडल को प्रशिक्षित किया जा सकता है। एक और कमांड इसे ओलामा में निर्यात करता है ताकि आप अपने फाइनट्यून को `ollama run` के साथ चला सकें। यह विंडोज पर बेहतरीन तरीके से काम करता है।
|
|
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
|
-
बस इतना ही।
|
|
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 pull ghcr.io/mcp-tool-shop-org/backpropagate:latest` भी काम
|
|
57
|
+
क्या आप डॉकर का उपयोग करना पसंद करते हैं? `docker pull ghcr.io/mcp-tool-shop-org/backpropagate:latest` भी काम करेगा। दोनों `linux/amd64` और `linux/arm64` के लिए इमेज उपलब्ध हैं, इसलिए Apple सिलिकॉन और ARM लिनक्स उपयोगकर्ताओं को एक मूल इमेज मिलेगी। "कंटेनर में UI" के लिए एक मानक `compose.yaml` रिपॉजिटरी की रूट में मौजूद है - `docker compose up` वेब UI को `http://localhost:7860` पर एक स्थायी `~/.backpropagate` वॉल्यूम माउंट के साथ लाता है।
|
|
58
58
|
|
|
59
|
-
## बैकप्रोपैगेट
|
|
59
|
+
## बैकप्रोपैगेट किस क्षेत्र में काम करता है
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
LLM को ठीक करने के लिए कई अच्छी लाइब्रेरी उपलब्ध हैं। वे सभी अलग-अलग चीजों में उत्कृष्ट हैं:
|
|
62
62
|
|
|
63
|
-
- **[Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)**
|
|
64
|
-
- **[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)**
|
|
65
|
-
- **[Unsloth](https://github.com/unslothai/unsloth)**
|
|
66
|
-
- **[torchtune](https://github.com/pytorch/torchtune)**
|
|
63
|
+
- **[Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)** - यदि आप YAML कॉन्फ़िगरेशन पसंद करते हैं और आपको कॉपी करने के लिए व्यंजनों का एक समुदाय चाहिए।
|
|
64
|
+
- **[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)** - यदि आप DPO/PPO/RLHF और एक वेब GUI चाहते हैं।
|
|
65
|
+
- **[Unsloth](https://github.com/unslothai/unsloth)** - यदि आपको सबसे तेज़ प्रशिक्षण की आवश्यकता है और आप समर्थित मॉडल परिवार पर हैं।
|
|
66
|
+
- **[torchtune](https://github.com/pytorch/torchtune)** - यदि आप मेटा के पहले-पक्षीय PyTorch-नेटिव व्यंजनों को संपादित करना चाहते हैं।
|
|
67
67
|
|
|
68
|
-
बैकप्रोपैगेट
|
|
68
|
+
बैकप्रोपैगेट वह विकल्प है जिसकी कमी थी: **एक एकल उपभोक्ता GPU पर अकेले ऑपरेटरों के लिए 3-पंक्ति पायथन API जो एक एडाप्टर को प्रशिक्षित करना और उसे भेजना चाहते हैं।** कोई YAML नहीं, कोई GUI नहीं, कोई ऑनलाइन RL (PPO/GRPO) नहीं, कोई मल्टी-नोड नहीं। बस वह लूप जिसकी वास्तव में हर किसी को आवश्यकता है और वह निर्यात चरण जो बाधा डालता है।
|
|
69
69
|
|
|
70
|
-
यदि आपने ऊपर दी गई लाइब्रेरी में से किसी एक को आज़माया
|
|
70
|
+
यदि आपने ऊपर दी गई लाइब्रेरी में से किसी एक को आज़माया और कॉन्फ़िगरेशन-फ़ाइल समारोह से निराश हो गए, या मॉडल-परिवार की कमी का सामना किया, या विंडोज-प्रथम डिफ़ॉल्ट्स चाहते थे - तो बैकप्रोपैगेट आपके लिए है।
|
|
71
71
|
|
|
72
|
-
##
|
|
72
|
+
## आप 16GB उपभोक्ता GPU पर क्या ठीक कर सकते हैं
|
|
73
73
|
|
|
74
|
-
यहां
|
|
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
|
-
|
|
|
80
|
-
| Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | मानक।
|
|
81
|
-
| Llama-3 13B | QLoRA +
|
|
82
|
-
| Mixtral 8x7B (कुल
|
|
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-बिट एडम इसे 16GB के भीतर रखता है। |
|
|
80
|
+
| Qwen-2.5-7B / Llama-3.1-8B / Mistral-7B | QLoRA | मानक। ~7-8 GB। बैकप्रोपैगेट के डिफ़ॉल्ट प्रीसेट। |
|
|
81
|
+
| Llama-3 13B | QLoRA + नमूना पैकिंग | तंग लेकिन काम करता है। कम अनुक्रमों का उपयोग करें। |
|
|
82
|
+
| Mixtral 8x7B (कुल 47B पैरामीटर) | — | दायरे से बाहर - 2-बिट (AQLM / QuIP#) मर्ज करने योग्य-एडाप्टर + GGUF-निर्यात अनुबंध को तोड़ता है, इसलिए इसे [v1.5 प्रक्षेपवक्र संक्षिप्त](docs/V1_5_BRIEF.md) में वापस ले लिया गया। 16GB कार्ड पर, ≤8B बेस का उपयोग करें। |
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
`mode="full"` 4B तक के मॉडल को स्वीकार करता है। ऊपर दी गई पूर्ण-एफटी पंक्ति में चार प्रीसेट वास्तविक ~3B (सत्य पैरामीटर गणना 3.08-3.24B) हैं और 16GB कार्ड पर फिट होते हैं। 3.8-4B वर्ग (Phi-4-mini-3.8B, Qwen-3.5-4B) भी सीमा द्वारा स्वीकार किया जाता है, लेकिन पूर्ण FT के लिए 24GB+ कार्ड की आवश्यकता होती है - भार + ग्रेडिएंट अकेले 16GB तक पहुंचते हैं, इससे पहले कि ऑप्टिमाइज़र और सक्रियण - इसलिए 16GB कार्ड पर उन पर `mode="lora"` का उपयोग करें (वे LoRA पंक्ति में हैं)। 4B से अधिक मॉडल `RUNTIME_FULL_FT_MODEL_TOO_LARGE` के साथ बाहर निकल जाते हैं।
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
2-बिट परिमाणीकरण (AQLM / QuIP#) **दायरे से बाहर है।** इसे v1.4 के लिए निर्धारित किया गया था, फिर [v1.5 प्रक्षेपवक्र संक्षिप्त](docs/V1_5_BRIEF.md) में वापस ले लिया गया: 2-बिट बेस को पूर्ण-सटीक भार में साफ-सुथरा तरीके से वापस मर्ज नहीं किया जा सकता है, जो बैकप्रोपैगेट के मर्ज करने योग्य-एडाप्टर → GGUF → ओलामा निर्यात अनुबंध को तोड़ता है (पाइपलाइन का पूरा बिंदु)। इसके बजाय बैकप्रोपैगेट द्वारा भेजे जाने वाले हेडरूम लीवर v1.5 **FP8 कंप्यूट पथ** (`--fp8`, ब्लैकवेल/हॉपर) और ≤4B मॉडल के लिए `mode="full"` हैं - दोनों मर्ज करने योग्य और निर्यात करने योग्य बने रहते हैं।
|
|
87
|
+
|
|
88
|
+
3B और उससे छोटे मॉडल के लिए, 16GB पर पूर्ण फाइन-ट्यूनिंग (केवल LoRA नहीं) संभव है और अब v1.4 में `mode="full"` के रूप में उपलब्ध है। इसे सक्षम करने के लिए `Trainer(..., mode="full")` या `backprop train --mode=full --model phi-4-mini-3.8b` पास करें। एक कठोर गेट > 4B मॉडल के लिए मोड को `RUNTIME_FULL_FT_MODEL_TOO_LARGE` के साथ अस्वीकार करता है, LoRA + 4B से कम प्रीसेट को रिकवरी विकल्पों के रूप में नामित करता है। कॉन्फ़िगरेशन गणित + बिडरमैन 2024 / थिंकिंग मशीन 2025 गुणवत्ता तुलना के लिए [पूर्ण फाइन-ट्यूनिंग हैंडबुक पृष्ठ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/full-fine-tuning/) देखें। 7B+ मॉडल के लिए, पूर्ण फाइन-ट्यूनिंग के लिए 24GB+ GPU की आवश्यकता होती है - A100 क्लाउड रेंटल पर विचार करें, या LoRA के साथ बने रहें, जो हालिया शोध से पता चलता है कि अधिकांश पोस्ट-ट्रेनिंग कार्यों पर पूर्ण फाइन-ट्यूनिंग गुणवत्ता से मेल खाता है (संदर्भ के लिए [एंटी-पिच अनुभाग](#what-backpropagate-is-not-for) देखें)।
|
|
87
89
|
|
|
88
90
|
## बैकप्रोपैगेट किसके लिए नहीं है
|
|
89
91
|
|
|
90
|
-
यदि आपका
|
|
92
|
+
यदि आपका उपयोग मामला नीचे दिया गया है, तो आपको किसी अन्य लाइब्रेरी के साथ बेहतर अनुभव होगा - बैकप्रोपैगेट सही विकल्प नहीं है और इसे काम करने की कोशिश करने से सही उपकरण तक पहुंचने से अधिक खर्च आएगा। शुरू करने से पहले इस अनुभाग को पढ़ने से इंस्टॉलेशन-और-वापस जाने के चक्र से बचा जा सकता है:
|
|
91
93
|
|
|
92
|
-
- **7B+
|
|
93
|
-
-
|
|
94
|
-
- **मल्टी-नोड प्रशिक्षण** — केवल एक मशीन पर
|
|
95
|
-
- **macOS प्रशिक्षण** — Apple Silicon में CUDA नहीं है, इसलिए
|
|
96
|
-
- **परीक्षण किए गए मॉडल परिवारों के बाहर
|
|
94
|
+
- **7B+ मॉडल का पूर्ण-पैरामीटर फाइन-ट्यूनिंग** — बैकप्रोपगेट 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` उत्पन्न करता है और 4B से छोटे मॉडल के लिए LoRA + प्रीसेट को रिकवरी के रूप में नामित करता है)। मुख्य बात: हालिया शोध ([बिडरमैन 2024](https://arxiv.org/abs/2405.09673), [थिंकिंग मशीन्स 2025](https://thinkingmachines.ai/blog/lora/)) दर्शाता है कि सही कॉन्फ़िगरेशन पर LoRA, अधिकांश पोस्ट-ट्रेनिंग कार्यों (निर्देश-अनुपालन, डोमेन अनुकूलन, व्यक्तित्व/शैली) पर पूर्ण फाइन-ट्यूनिंग गुणवत्ता से मेल खाता है, जो 67% कंप्यूट शक्ति का उपयोग करता है — इसलिए, अधिकांश ऑपरेटरों द्वारा वास्तव में वांछित कार्य के लिए, LoRA का उपयोग करने से कोई नुकसान नहीं होता है। `mode="full"` उन मामलों के लिए मौजूद है जहां आपने गुणवत्ता में अंतर मापा है और अतिरिक्त कंप्यूट शक्ति खर्च करने का निर्णय लिया है। यदि आपको वास्तव में 7B+ मॉडल के पूर्ण फाइन-ट्यूनिंग की आवश्यकता है, तो HuggingFace `transformers.Trainer` को सीधे 24GB+ कार्ड पर उपयोग करें।
|
|
95
|
+
- **ऑनलाइन RL — PPO / GRPO / RLVR** — बैकप्रोपगेट सिंगल-स्टेज SFT प्लस संदर्भ-मुक्त प्राथमिकता ट्यूनिंग करता है (ORPO v1.5 में उपलब्ध है; SimPO/KTO की योजना बनाई जा रही है)। यह जो *नहीं* करता है, वह है ऑनलाइन रीइन्फोर्समेंट लर्निंग — PPO, GRPO, या RLVR — जिसके लिए एक इनाम मॉडल या प्रशिक्षण चरण के शीर्ष पर एक पीढ़ी-और-स्कोरिंग लूप की आवश्यकता होती है। उन कार्यों के लिए, TRL या LLaMA-Factory का सीधे उपयोग करें। (संदर्भ-मुक्त प्राथमिकता ट्यूनिंग सिंगल-स्टेज एनवेलप में फिट बैठता है क्योंकि मेमोरी में रखने के लिए कोई अलग संदर्भ मॉडल नहीं है; [क्विक स्टार्ट](#quick-start) के तहत ORPO नोट देखें)।
|
|
96
|
+
- **मल्टी-नोड प्रशिक्षण** — केवल एक मशीन पर एक GPU। एक मशीन पर मल्टी-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 में पिन नहीं किए गए हैं।
|
|
97
99
|
|
|
98
100
|
यदि आपको इनमें से किसी भी चीज़ की आवश्यकता है, तो ऊपर सूचीबद्ध पुस्तकालयों में से किसी एक का उपयोग करें। वे इसमें बेहतर हैं।
|
|
99
101
|
|
|
100
|
-
## बैकप्रोपगेट आपको क्या
|
|
102
|
+
## बैकप्रोपगेट आपको क्या प्रदान करता है
|
|
101
103
|
|
|
102
|
-
एक इंस्टॉलेशन
|
|
104
|
+
एक इंस्टॉलेशन में चार चीजें:
|
|
103
105
|
|
|
104
|
-
**1. एक वास्तविक 3
|
|
105
|
-
इस README के शीर्ष पर दिया गया स्निपेट एंड-टू-एंड चलता है। कोई `accelerate config
|
|
106
|
+
**1. एक वास्तविक 3-लाइन API जो बिना कॉन्फ़िगरेशन फ़ाइल के चलता है।**
|
|
107
|
+
इस README के शीर्ष पर दिया गया स्निपेट एंड-टू-एंड चलता है। कोई `accelerate config`, कोई YAML, कोई हाइड्रा ओवरराइड नहीं। बस `Trainer(model).train(data)` और आपके पास एक फाइन-ट्यून मॉडल है।
|
|
106
108
|
|
|
107
109
|
**2. विंडोज जो वास्तव में काम करता है।**
|
|
108
|
-
अधिकांश ML
|
|
110
|
+
अधिकांश ML पुस्तकालय विंडोज को एक afterthought के रूप में मानते हैं। बैकप्रोपगेट को विंडोज + RTX 5080 पर पहले से परीक्षण किया गया है। पुस्तकालय आपके लिए रनटाइम की विशिष्टताओं को संभालता है — यह जानता है कि आपके डेटा को पहले से कैसे टोकनाइज़ करना है ताकि विंडोज मल्टीप्रोसेसिंग क्रैश न हो, यह स्वचालित रूप से RTX 40/50 कार्ड पर xformers को अक्षम कर देता है जहां यह विफल हो जाएगा, और यह डेटा लोडर सेटिंग्स चुनता है जो विफल नहीं होते हैं। आपको इनमें से किसी भी चीज़ को जानने की आवश्यकता नहीं है। यह बस चलता है।
|
|
109
111
|
|
|
110
|
-
**3. बिना
|
|
111
|
-
प्रशिक्षण में घंटों लगते हैं। आप
|
|
112
|
+
**3. बिना निगरानी वाले रनों के लिए बनाया गया।**
|
|
113
|
+
प्रशिक्षण में घंटों लगते हैं। आप इसकी निगरानी नहीं करना चाहते हैं। बैकप्रोपगेट को लगातार चलने के लिए डिज़ाइन किया गया है:
|
|
112
114
|
|
|
113
|
-
- यदि आपके पास GPU मेमोरी
|
|
114
|
-
- यदि आपका GPU बहुत गर्म हो जाता है, तो यह तब तक रुक जाता है जब तक कि चीजें
|
|
115
|
-
- प्रत्येक चेकपॉइंट को परमाणु रूप से लिखा जाता है
|
|
116
|
-
- प्रत्येक प्रशिक्षण रन को एक अद्वितीय ID मिलता है जो प्रत्येक लॉग लाइन, प्रत्येक चेकपॉइंट और प्रत्येक
|
|
117
|
-
- त्रुटियां स्थिर कोड के साथ आती हैं (`RUNTIME_GPU_OOM`, `DEP_OLLAMA_REGISTRATION_FAILED`, आदि) ताकि आप अपने लॉग
|
|
115
|
+
- यदि आपके पास GPU मेमोरी कम हो जाती है, तो यह स्वचालित रूप से बैच आकार को आधा कर देता है और तीन बार तक पुनः प्रयास करता है। कोई मैन्युअल ट्यूनिंग नहीं।
|
|
116
|
+
- यदि आपका GPU बहुत गर्म हो जाता है, तो यह तब तक रुक जाता है जब तक कि चीजें शांत न हो जाएं और फिर जारी रहता है।
|
|
117
|
+
- प्रत्येक चेकपॉइंट को परमाणु रूप से लिखा जाता है — यदि आपका लैपटॉप मध्य-सहेजते समय क्रैश हो जाता है, तो पिछला अच्छा चेकपॉइंट अभी भी बरकरार रहता है।
|
|
118
|
+
- प्रत्येक प्रशिक्षण रन को एक अद्वितीय ID मिलता है जो प्रत्येक लॉग लाइन, प्रत्येक चेकपॉइंट और प्रत्येक वेट्स एंड बायसेस प्रविष्टि पर मुद्रित होता है। यदि कुछ गलत हो जाता है, तो एक 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
121
|
**4. प्रशिक्षित एडाप्टर से `ollama run` तक एक कमांड।**
|
|
120
|
-
कई
|
|
122
|
+
कई पुस्तकालय एक मॉडल को प्रशिक्षित करते हैं। उनमें से कुछ ही आपको वास्तव में इसका उपयोग करने पर रास्ते से हटते हैं। बैकप्रोपगेट GGUF (Ollama द्वारा उपयोग किया जाने वाला प्रारूप) में निर्यात करता है और एक कमांड में एक Ollama मॉडल को पंजीकृत करता है। आप "प्रशिक्षण पूरा" से "मैं अपने फाइन-ट्यून मॉडल के साथ चैट कर सकता हूं" लगभग 30 सेकंड में जा सकते हैं।
|
|
121
123
|
|
|
122
|
-
## शुरुआत
|
|
124
|
+
## त्वरित शुरुआत
|
|
123
125
|
|
|
124
|
-
|
|
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-प्रारूप
|
|
139
|
+
यह 5 छोटे ShareGPT-प्रारूप वार्तालापों पर Qwen 2.5 7B एडाप्टर को प्रशिक्षित करता है, फिर परिणाम को GGUF में निर्यात करता है। अपने स्वयं के डेटा के लिए, अपने JSONL को एक पंक्ति में एक उदाहरण के रूप में स्वरूपित करें:
|
|
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
|
-
|
|
146
|
+
अल्पाका (`instruction` / `output`), OpenAI चैट (`messages`), और कच्चे पाठ प्रारूप भी काम करते हैं — बैकप्रोपगेट प्रारूप का स्वचालित रूप से पता लगाता है।
|
|
147
|
+
|
|
148
|
+
### वरीयता ट्यूनिंग (ओआरपीओ, सिम्पो, केटीओ)
|
|
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
|
+
ओआरपीओ के लिए डिफ़ॉल्ट लर्निंग दर स्वचालित रूप से घटकर `8e-6` हो जाती है (क्योंकि इसका नुकसान साधारण एसएफटी की तुलना में अधिक तीव्र होता है); ऑड्स-अनुपात दंड को भारित करने के लिए `--orpo-beta` (डिफ़ॉल्ट `0.1`) ट्यून करें। ओआरपीओ केवल `mode="lora"` पर ही काम करता है।
|
|
145
170
|
|
|
146
|
-
|
|
171
|
+
**v1.6 में नया — सिम्पो और केटीओ।** `--method simpo` ([मेंग एट अल. 2024](https://arxiv.org/abs/2405.14734)) लंबाई-मानकीकृत इनाम के साथ संदर्भ-मुक्त है और ओआरपीओ के समान युग्मित `{prompt, chosen, rejected}` डेटा लेता है (`--simpo-beta`, `--simpo-gamma`)। `--method kto` ([एथयाराज एट अल. 2024](https://arxiv.org/abs/2402.01306)) **युग्मित नहीं** `{prompt, completion, label}` डेटा लेता है — प्रति उदाहरण थंब्स-अप/डाउन — प्रतिक्रिया के उस बड़े वर्ग के लिए जो क्यूरेटेड ए/बी युग्म नहीं हैं; यह आपके लेबल गणनाओं से वांछनीय/अवांछनीय नुकसान भार को स्वचालित रूप से संतुलित करता है। दोनों केवल `mode="lora"` पर ही काम करते हैं और सिंगल-जीपीयू एसएफटी लिफाफे में रहते हैं (कोई अलग संदर्भ मॉडल नहीं)। इसका उपयोग किस लिए करना है, इसके लिए [वरीयता-ट्यूनिंग हैंडबुक](https://mcp-tool-shop-org.github.io/backpropagate/handbook/preference-tuning/) देखें। ऑनलाइन आरएल (पीपीओ/जीआरपीओ) के लिए [बैकप्रोपगेट क्या नहीं है](#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
|
+
### एप्पल सिलिकॉन (MLX) — प्रयोगात्मक, v1.5
|
|
178
|
+
|
|
179
|
+
v1.5 में नया: **एक API, दो रेल।** CUDA डिफ़ॉल्ट, सत्यापित बैकएंड बना रहता है; MLX एक दूसरी रेल है जो Apple के [`mlx_lm.lora`](https://github.com/ml-explore/mlx-lm) टूलचेन के माध्यम से M-श्रृंखला Mac पर प्रशिक्षित होती है (एकीकृत मेमोरी, कोई CUDA नहीं)। समान 3-पंक्ति आकार हार्डवेयर द्वारा रेल का चयन करता है — `backend='auto'` (डिफ़ॉल्ट) NVIDIA पर CUDA और Apple सिलिकॉन पर 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'` का उपयोग करें)। परिणामी एडाप्टर सादा सेफ़टेंसर है और उसी पथ के माध्यम से CUDA रेल की तरह Ollama में निर्यात होता है।
|
|
194
|
+
|
|
195
|
+
> ⚠️ **सटीक स्थिति:** एमएलएक्स रेल v1.5 में **निर्मित + यूनिट-परीक्षण (मॉक किया गया)** के साथ आता है, लेकिन अभी तक वास्तविक ऐप्पल सिलिकॉन पर **डॉगफूड-सत्यापित नहीं** है — `mlx-lm` केवल ऐप्पल के लिए है और इसे उस एनवीडिया रिग पर नहीं चलाया जा सकता था जिस पर यह बनाया गया था। इसे प्रयोगात्मक मानें — वही ढांचा जो v1.5 में एफपी8 पथ में था (एफपी8 को v1.6 में ब्लैकवेल पर डॉगफूड-सत्यापित किया गया; एमएलएक्स को अभी भी वास्तविक सिलिकॉन पर उस चरण से गुजरने की आवश्यकता है) — और कृपया एक बार जब यह एम-सीरीज़ मैक पर चलता है, तो [विसंगतियों की रिपोर्ट करें](#reporting-bugs)। गैर-एप्पल होस्ट पर `--backend mlx` को जबरदस्ती लागू करने पर `CONFIG_INVALID_SETTING` त्रुटि आती है; मैक पर लापता `mlx_lm` टूलचेन `DEP_MLX_UNAVAILABLE` उत्पन्न करता है।
|
|
196
|
+
|
|
197
|
+
अधिक एंड-टू-एंड वर्कफ़्लो (फाइन-ट्यून-एंड-पुश-टू-HF-हब, OOM के बाद फिर से शुरू करें, लंबे अभियान में मल्टी-रन SLAO, आदि) के लिए [हैंडबुक रेसिपी पेज](https://mcp-tool-shop-org.github.io/backpropagate/handbook/recipes/) देखें।
|
|
147
198
|
|
|
148
199
|
### वेब UI (वैकल्पिक)
|
|
149
200
|
|
|
150
|
-
यदि आप Python
|
|
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
|
-
एक स्थानीय वेब इंटरफ़ेस `http://localhost:7862` पर खुलता है,
|
|
208
|
+
एक स्थानीय वेब इंटरफ़ेस `http://localhost:7862` पर खुलता है, जिसका उपयोग डेटासेट ब्राउज़ करने, प्रारूपों को मान्य करने और प्रशिक्षण कॉन्फ़िगरेशन को दृश्य रूप से इकट्ठा करने के लिए किया जा सकता है। प्रशिक्षण स्वयं `backprop train` के माध्यम से चलता है (UI-संचालित प्रशिक्षण रोडमैप पर है — स्टार्ट बटन वर्तमान में उस नोट को प्रदर्शित करता है)। UI डिफ़ॉल्ट रूप से केवल स्थानीय है। इसे अन्य उपकरणों तक विस्तारित करने के लिए, [Web UI](#web-ui) नीचे `--share` + `--auth` सुरक्षा अनुबंध देखें।
|
|
158
209
|
|
|
159
|
-
##
|
|
210
|
+
## मल्टी-रन प्रशिक्षण
|
|
160
211
|
|
|
161
|
-
यदि आप कई डेटासेट
|
|
212
|
+
यदि आप कई डेटासेट में वृद्धिशील रूप से फाइन-ट्यून करना चाहते हैं — मान लीजिए कि आपको हर हफ्ते नया प्रशिक्षण डेटा मिलता है और आप इसे पहले से सीखे गए ज्ञान को भूले बिना जोड़ना चाहते हैं — तो बैकप्रोपैगेट का `multi_run` मोड आपके लिए है:
|
|
162
213
|
|
|
163
214
|
```python
|
|
164
215
|
from backpropagate import Trainer
|
|
@@ -173,17 +224,17 @@ result = trainer.multi_run(
|
|
|
173
224
|
)
|
|
174
225
|
```
|
|
175
226
|
|
|
176
|
-
यह पांच प्रशिक्षण
|
|
227
|
+
यह पांच प्रशिक्षण पास चलाता है, जो रन के बीच एडाप्टर को इस तरह से मर्ज करता है कि पहले के ज्ञान को संरक्षित किया जा सके, जबकि नए उदाहरणों को शामिल किया जा सके। यह तकनीक हालिया निरंतर-शिक्षण अनुसंधान पर आधारित है — इस README के नीचे [References](#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
|
|
182
233
|
```
|
|
183
234
|
|
|
184
|
-
## चेकपॉइंट से
|
|
235
|
+
## चेकपॉइंट से फिर से शुरू करें
|
|
185
236
|
|
|
186
|
-
|
|
237
|
+
5-रन प्रशिक्षण जो रन 4 पर क्रैश हो जाता है, उसे ठीक किया जा सकता है। प्रत्येक मल्टी-रन सत्र अपने रन आईडी को ऑन-डिस्क इतिहास और चेकपॉइंट मेनिफेस्ट में लिखता है, इसलिए जहां आपने छोड़ा था, वहां से उठाना एक कमांड है:
|
|
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`
|
|
245
|
+
`backprop multi-run` (कोई `--resume` नहीं) का डिफ़ॉल्ट व्यवहार उसी आउटपुट निर्देशिका में एक प्रगति पर प्रविष्टि का स्वचालित रूप से पता लगाता है और उसे जारी रखता है। एक स्वच्छ शुरुआत के लिए, एक ताज़ा आउटपुट निर्देशिका पर इंगित करें।
|
|
195
246
|
|
|
196
247
|
## प्रशिक्षण इतिहास
|
|
197
248
|
|
|
198
|
-
प्रत्येक `backprop train` और `backprop multi-run`
|
|
249
|
+
प्रत्येक `backprop train` और `backprop multi-run` आह्वान `<output>/run_history.json` में एक पंक्ति रिकॉर्ड करता है — उपयोग किया गया मॉडल, डेटासेट, हाइपरपैरामीटर, स्थिति, अंतिम हानि, हानि इतिहास। आप पिछले रन को सूचीबद्ध और निरीक्षण कर सकते हैं:
|
|
199
250
|
|
|
200
251
|
```bash
|
|
201
252
|
backprop list-runs # last 20 runs
|
|
@@ -206,7 +257,7 @@ backprop show-run abcd1234 # detail view (partial ID is fine)
|
|
|
206
257
|
|
|
207
258
|
## प्रयोग ट्रैकिंग
|
|
208
259
|
|
|
209
|
-
|
|
260
|
+
बैकप्रोपैगेट स्थापित प्रयोग ट्रैकर्स (वेट्स एंड बायसेस, टेंसरबोर्ड, MLflow) का स्वचालित रूप से पता लगाता है और उन्हें जोड़ता है। यदि `wandb` स्थापित है और आप लॉग इन हैं, तो प्रत्येक रन स्वचालित रूप से W&B में एक रन नाम के साथ लॉग करता है जो ऑन-डिस्क रन आईडी से मेल खाता है — इसलिए आप W&B, अपने लॉग और `run_history.json` में एक पहचानकर्ता का उपयोग करके खोज सकते हैं।
|
|
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
|
## वेब UI
|
|
220
271
|
|
|
221
|
-
|
|
272
|
+
रिफ्लेक्स वेब इंटरफ़ेस वैकल्पिक है — `pipx install "backpropagate[ui]"` के साथ स्थापित करें और लॉन्च करें:
|
|
222
273
|
|
|
223
274
|
```bash
|
|
224
275
|
backprop ui --port 7862
|
|
225
276
|
```
|
|
226
277
|
|
|
227
|
-
UI स्थानीय रूप से `http://localhost:7862` पर चलता है। इसे
|
|
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` के
|
|
286
|
+
`backprop ui --share` बिना `--auth` के त्रुटि के साथ समाप्त हो जाता है। कारण: `--share` एक URL प्रकाशित करता है जिस तक इंटरनेट पर कोई भी पहुंच सकता है, और प्रमाणीकरण के बिना, इसका मतलब है कि कोई भी आपके प्रशिक्षण पाइपलाइन को चला सकता है और आपके HuggingFace टोकन को पढ़ सकता है। इसके लिए कोई विकल्प नहीं है - यदि आप क्रेडेंशियल सेट नहीं करना चाहते हैं, तो इसके बजाय 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
300
|
- डिफ़ॉल्ट: `~/.backpropagate/ui-outputs`
|
|
248
|
-
-
|
|
249
|
-
-
|
|
301
|
+
- ओवरराइड: `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own` सेट करें
|
|
302
|
+
- ओवरराइड को अस्वीकृति सूची के साथ मान्य किया जाता है - सिस्टम या क्रेडेंशियल पथ (`/etc`, `~/.ssh`, `~/.aws`, `C:\Windows\System32`, आदि) अस्वीकार किए जाते हैं।
|
|
250
303
|
|
|
251
|
-
## प्लेटफ़ॉर्म
|
|
304
|
+
## प्लेटफ़ॉर्म नोट्स
|
|
252
305
|
|
|
253
|
-
**आवश्यकताएं:**
|
|
306
|
+
**आवश्यकताएं:** Python 3.10+ · CUDA GPU (8GB+ VRAM) · PyTorch 2.0+
|
|
254
307
|
|
|
255
|
-
|
|
308
|
+
पायथन 3.10 कम से कम v1.6 तक समर्थित है; इसकी अपस्ट्रीम जीवन अवधि अक्टूबर 2026 में समाप्त हो जाएगी और इसे उसके बाद के पहले संस्करण में हटाने की योजना बनाई गई है। नए इंस्टॉलेशन के लिए, पायथन 3.11 या 3.12 को प्राथमिकता दें — 3.11 सबसे अधिक परीक्षण किया गया संस्करण है।
|
|
256
309
|
|
|
257
|
-
Backpropagate विभिन्न प्लेटफ़ॉर्म पर प्रशिक्षण के दौरान आने वाली
|
|
310
|
+
Backpropagate विभिन्न प्लेटफ़ॉर्म पर प्रशिक्षण के दौरान आने वाली रनटाइम संबंधी विशिष्टताओं को संभालता है, लेकिन यह इंस्टॉलेशन के समय आने वाली समस्याओं को ठीक नहीं कर सकता है। दो सबसे आम समस्याएं हैं:
|
|
258
311
|
|
|
259
|
-
- **गलत CUDA
|
|
260
|
-
- **Windows + GGUF
|
|
312
|
+
- **गलत CUDA व्हील।** PyTorch प्रत्येक CUDA संस्करण के लिए एक बाइनरी के रूप में प्रकाशित किया जाता है। यदि आप गलत संस्करण चुनते हैं, तो आपको चुपचाप केवल CPU-आधारित PyTorch मिलेगा और प्रशिक्षण असंभव रूप से धीमा होगा। अपने ड्राइवर के लिए <https://pytorch.org/get-started/locally/> पर व्हील पिकर का उपयोग करें। अपना ड्राइवर / CUDA संस्करण देखने के लिए `nvidia-smi` चलाएं।
|
|
313
|
+
- **Windows + GGUF निर्यात।** `[export]` एक्स्ट्रा स्रोत से `llama-cpp-python` बनाता है, जिसके लिए विज़ुअल स्टूडियो बिल्ड टूल्स (C++ घटक) और CMake की आवश्यकता होती है।
|
|
261
314
|
|
|
262
|
-
**macOS:**
|
|
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
|
-
|
|
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-vs-fp16 मुद्दों के बारे में जानकारी देखें।
|
|
265
318
|
|
|
266
319
|
## CLI
|
|
267
320
|
|
|
268
|
-
प्रत्येक Python API
|
|
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,80 +335,80 @@ 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
|
-
|
|
338
|
+
पूर्ण संदर्भ [CLI हैंडबुक पृष्ठ](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/) पर या `backprop <subcommand> --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` | ऑटो | JSON या कंसोल लॉग को
|
|
347
|
+
| `BACKPROPAGATE_LOG_JSON` | ऑटो | JSON या कंसोल लॉग को बाध्य करें |
|
|
295
348
|
| `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 के
|
|
298
|
-
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | UI फ़ाइल सिस्टम
|
|
349
|
+
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | सीखने की दर |
|
|
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
|
-
नेस्टेड कुंजियों
|
|
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 | पूरी तरह से खुला
|
|
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 | छोटे कार्ड पर त्वरित
|
|
359
|
+
| Qwen-3.5-4B | ~8GB | Apache 2.0 | 5B से कम के लिए अनुशंसित डिफ़ॉल्ट। इस आकार पर सर्वोत्तम गुणवत्ता। |
|
|
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 | छोटे कार्ड पर त्वरित प्रयोगों के लिए। |
|
|
313
366
|
| Mistral 7B | ~12GB | Apache 2.0 | Qwen 7B के समान, अलग चैट टेम्पलेट। |
|
|
314
367
|
|
|
315
|
-
अन्य मॉडल
|
|
368
|
+
अन्य मॉडल अक्सर काम करते हैं, लेकिन केवल ये आठ CI में पिन किए गए हैं। Biderman 2024 + Thinking Machines 2025 के अनुसार रैंक-256 / सभी-रैखिक लक्ष्यों के लिए `--lora-preset=quality` (डिफ़ॉल्ट) पास करें, या यदि आपको v1.2.x फ़ुटप्रिंट की आवश्यकता है तो पुराने रैंक-16 / q+v लक्ष्य के लिए `--lora-preset=fast` पास करें।
|
|
316
369
|
|
|
317
370
|
## समस्या निवारण
|
|
318
371
|
|
|
319
|
-
सबसे आम
|
|
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 की मेमोरी समाप्त हो जाती
|
|
324
|
-
| हगिंगफेस 401 / "मॉडल नहीं मिला"
|
|
325
|
-
| `register_with_ollama` कनेक्शन अस्वीकृत। | `DEP_OLLAMA_REGISTRATION_FAILED` | डेमॉन शुरू करें: `ollama serve`। <https://ollama.com> से
|
|
326
|
-
| चेकपॉइंट सहेजते समय डिस्क भर गई। | `STATE_CHECKPOINT_INVALID` | क्रैश होने पर
|
|
327
|
-
| जीपीयू
|
|
328
|
-
| `backprop ui --share` अस्वीकृत। | `
|
|
329
|
-
|
|
|
376
|
+
| प्रशिक्षण के दौरान GPU की मेमोरी समाप्त हो जाती है | `RUNTIME_GPU_OOM` | स्वचालित — बैकप्रोपैगेट बैच आकार को आधा कर देता है और 3 बार तक पुनः प्रयास करता है। इसे बंद करने के लिए: `Trainer(oom_recovery=False)`। आकार को कम करने के लिए: `--batch-size 1`। |
|
|
377
|
+
| हगिंगफेस 401 / "मॉडल नहीं मिला" लौटाता है। | `DEP_MODEL_LOAD_FAILED` | `huggingface-cli login` और पुनः प्रयास करें। टाइपो के लिए, <https://huggingface.co/models> से सटीक आईडी कॉपी करें। |
|
|
378
|
+
| `register_with_ollama` कनेक्शन अस्वीकृत। | `DEP_OLLAMA_REGISTRATION_FAILED` | डेमॉन शुरू करें: `ollama serve`। <https://ollama.com> से स्थापित करें। पुनः प्रयास किया जा सकता है। |
|
|
379
|
+
| चेकपॉइंट सहेजते समय डिस्क भर गई। | `STATE_CHECKPOINT_INVALID` | एटॉमिक लेखन क्रैश होने पर `.partial` नामक एक निर्देशिका छोड़ देता है — इसे सुरक्षित रूप से हटाया जा सकता है। पिछला अच्छा चेकपॉइंट बरकरार है। |
|
|
380
|
+
| जीपीयू ज़्यादा गरम होने पर प्रशिक्षण रोक दिया गया। | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | स्वचालित — बैकप्रोपैगेट तापमान सीमा पर रुक जाता है और जैसे ही जीपीयू ठंडा होता है, फिर से शुरू हो जाता है। यदि यह लगातार होता रहता है, तो वायु प्रवाह में सुधार करें। |
|
|
381
|
+
| `backprop ui --share` अस्वीकृत। | `RUNTIME_UI_AUTH_NOT_ENFORCED` | `--auth user:password` पास करें, या इसके बजाय SSH पोर्ट-फ़ॉरवर्डिंग का उपयोग करें (देखें [वेब यूआई](#web-ui))। |
|
|
382
|
+
| पहला प्रयास करने पर जीजीयूएफ निर्यात विफल। | `RUNTIME_GGUF_EXPORT_FAILED` | `pip install backpropagate[export]`; विंडोज पर आपको विज़ुअल सी++ बिल्ड टूल्स + सीएमएके की भी आवश्यकता होगी। |
|
|
330
383
|
|
|
331
|
-
## बग की रिपोर्ट
|
|
384
|
+
## बग की रिपोर्ट करना।
|
|
332
385
|
|
|
333
|
-
जब कुछ विफल
|
|
386
|
+
जब कुछ विफल हो जाता है, तो बैकप्रोपैगेट स्टार्टअप पर एक पंक्ति प्रिंट करता है, जैसे `run_started run_id=<uuid>` और प्रत्येक लॉग पंक्ति, प्रत्येक चेकपॉइंट और प्रत्येक वेट्स और बायसेस प्रविष्टि से समान आईडी को जोड़ता है। **किसी भी बग रिपोर्ट में `run_id` शामिल करें** — इससे एक रखरखावकर्ता उस विशिष्ट रन के लिए सब कुछ सहसंबंधित कर सकता है।
|
|
334
387
|
|
|
335
388
|
एक अच्छी बग रिपोर्ट में शामिल हैं:
|
|
336
389
|
|
|
337
|
-
1. **`run_id
|
|
338
|
-
2. **त्रुटि
|
|
339
|
-
3.
|
|
340
|
-
4. **`backprop info` आउटपुट।** एक कमांड
|
|
390
|
+
1. **`run_id`** — स्टार्टअप पर मुद्रित UUID। एक UUID एक रखरखावकर्ता को उस विशिष्ट रन के लिए प्रत्येक लॉग पंक्ति, प्रत्येक चेकपॉइंट और प्रत्येक वेट्स और बायसेस प्रविष्टि को सहसंबंधित करने देता है।
|
|
391
|
+
2. **त्रुटि कोड** — stderr में `[CODE_NAME]: message` पंक्ति। स्थिर कोड की सूची के लिए [त्रुटि कोड](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/) देखें।
|
|
392
|
+
3. **संपादित ट्रेसबैक।** गैर-विस्तृत मोड में stderr स्वचालित रूप से संपादित किया जाता है (बेयरर टोकन, `sk-*`, `hf_*`, AWS कुंजियाँ, `password=` / `token=` / `api_key=` जोड़े हटा दिए जाते हैं) — इसे सुरक्षित रूप से पेस्ट किया जा सकता है। पूर्ण, बिना संपादित ट्रेसबैक के लिए, `BACKPROPAGATE_DEBUG=1` (या `--verbose`) के साथ पुनः चलाएं; पोस्ट करने से पहले समीक्षा करें।
|
|
393
|
+
4. **`backprop info` आउटपुट।** एक कमांड पायथन / पायटॉर्च / CUDA / GPU मॉडल / VRAM / OS / स्थापित अतिरिक्त — सब कुछ प्रिंट करता है जिसकी रखरखावकर्ता को प्लेटफ़ॉर्म-विशिष्ट प्रतिगमन को अलग करने के लिए आवश्यकता होती है।
|
|
341
394
|
|
|
342
|
-
[बग रिपोर्ट टेम्पलेट](https://github.com/mcp-tool-shop-org/backpropagate/issues/new?template=bug_report.yml)
|
|
395
|
+
[बग रिपोर्ट टेम्पलेट](https://github.com/mcp-tool-shop-org/backpropagate/issues/new?template=bug_report.yml) इनमें से प्रत्येक के लिए स्पष्ट रूप से संकेत देता है ताकि जांच तेजी से हो सके। प्रश्न, विचार, या "क्या यह अपेक्षित है?" थ्रेड [गिटहब डिस्कशन](https://github.com/mcp-tool-shop-org/backpropagate/discussions) में होने चाहिए। सुरक्षा संबंधी मुद्दों की निजी तौर पर [गिटहब सुरक्षा सलाहकार](https://github.com/mcp-tool-shop-org/backpropagate/security/advisories/new) फॉर्म के माध्यम से रिपोर्ट की जानी चाहिए — नीति और प्रतिक्रिया समयसीमा के लिए [SECURITY.md](SECURITY.md) देखें।
|
|
343
396
|
|
|
344
397
|
## गोपनीयता
|
|
345
398
|
|
|
346
|
-
सभी प्रशिक्षण आपके
|
|
399
|
+
सभी प्रशिक्षण आपके जीपीयू पर स्थानीय रूप से होते हैं। बैकप्रोपैगेट हगिंगफेस से मॉडल डाउनलोड करने के अलावा कोई नेटवर्क अनुरोध नहीं करता है (जिसे आप शुरू करते हैं)। कोई टेलीमेट्री नहीं, कोई क्लाउड निर्भरता नहीं।
|
|
347
400
|
|
|
348
401
|
## संदर्भ
|
|
349
402
|
|
|
350
|
-
|
|
403
|
+
बैकप्रोपैगेट की डिफ़ॉल्ट सेटिंग्स और मल्टी-रन प्रशिक्षण मोड हाल के शोध पर आधारित हैं। यदि आप अंतर्निहित तकनीकों में रुचि रखते हैं:
|
|
351
404
|
|
|
352
|
-
- **हु एट
|
|
353
|
-
- **बिडरमैन एट
|
|
354
|
-
- **थिंकिंग मशीन 2025।** *लोरा बिना पछतावे के।* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — व्यावहारिक अनुवर्ती जो उच्च लोरा रैंक पर आवश्यक 10 गुना
|
|
355
|
-
- **किर्कपैट्रिक एट
|
|
356
|
-
- **वांग एट
|
|
357
|
-
- **यादव एट
|
|
358
|
-
- **कियाओ और महदावी 2025।**
|
|
405
|
+
- **हु एट अल. 2021।** *लोरा: बड़े भाषा मॉडल का कम-रैंक अनुकूलन।* [arXiv:2106.09685](https://arxiv.org/abs/2106.09685) — यह मूलभूत पेपर है जो लोरा का परिचय देता है, जिससे बैकप्रोपैगेट कुशलतापूर्वक एडेप्टर को प्रशिक्षित करता है।
|
|
406
|
+
- **बिडरमैन एट अल. 2024।** *लोरा कम सीखता है और कम भूलता है।* [arXiv:2405.09673](https://arxiv.org/abs/2405.09673) — अनुभवजन्य प्रमाण कि रैंक 256 पर सभी-रैखिक लक्ष्यों के साथ लोरा, अधिकांश पोस्ट-प्रशिक्षण कार्यों पर 67% कंप्यूट पर पूर्ण फाइन-ट्यूनिंग गुणवत्ता से मेल खाता है। बैकप्रोपैगेट के v1.3 डिफ़ॉल्ट लोरा कॉन्फ़िगरेशन को चलाता है।
|
|
407
|
+
- **थिंकिंग मशीन 2025।** *लोरा बिना पछतावे के।* [thinkingmachines.ai/blog/lora](https://thinkingmachines.ai/blog/lora/) — व्यावहारिक अनुवर्ती जो उच्च लोरा रैंक पर आवश्यक 10 गुना शिक्षण-दर-बनाम-पूर्ण-एफटी सुधार की पहचान करता है।
|
|
408
|
+
- **किर्कपैट्रिक एट अल. 2017।** *तंत्रिका नेटवर्क में विनाशकारी विस्मरण को दूर करना।* [arXiv:1612.00796](https://arxiv.org/abs/1612.00796) — तंत्रिका नेटवर्क के "भूलने" के मूल लक्षण वर्णन जब आप नए डेटा पर फाइन-ट्यून करते हैं (ईडब्ल्यूसी — इलास्टिक वेट कंसॉलिडेशन)।
|
|
409
|
+
- **वांग एट अल. 2023।** *भाषा मॉडल निरंतर सीखने के लिए ऑर्थोगोनल सबस्पेस लर्निंग।* [arXiv:2310.14152](https://arxiv.org/abs/2310.14152) — ओ-लोरा, निरंतर सीखने के लिए लोरा का उपयोग करने का एक प्रारंभिक दृष्टिकोण, नए एडेप्टर को ऑर्थोगोनल सबस्पेस तक सीमित करके।
|
|
410
|
+
- **यादव एट अल. 2023।** *टीआईएस-मर्जिंग: मॉडल को मर्ज करते समय हस्तक्षेप को हल करना।* [arXiv:2306.01708](https://arxiv.org/abs/2306.01708) — कई फाइन-ट्यून किए गए मॉडल को हस्तक्षेप के बिना मर्ज करने के लिए एक मूलभूत तकनीक।
|
|
411
|
+
- **कियाओ और महदावी 2025।** *भूलने से पहले मर्ज करें: निरंतर मर्जिंग के माध्यम से एक एकल लोरा निरंतर सीखना।* [arXiv:2512.23017](https://arxiv.org/abs/2512.23017) — विशिष्ट एल्गोरिदम जिसे बैकप्रोपैगेट का मल्टी-रन मर्जर लागू करता है। दिसंबर 2025 का एक प्रीप्रिंट; बैकप्रोपैगेट पेपर का पहला ज्ञात डाउनस्ट्रीम अपनाने वाला है।
|
|
359
412
|
|
|
360
413
|
## लाइसेंस
|
|
361
414
|
|