सेटअप¶
जो उपयोगकर्ता Docker या किसी अन्य कंटेनर ऑर्केस्ट्रेशन प्लेटफ़ॉर्म का उपयोग करना चाहते हैं, वे पहले यह दस्तावेज़ देखें।
इंस्टॉलेशन¶
Windows 10 या उससे नए संस्करण पर काम करने वाले उपयोगकर्ताओं के लिए, Docker और WSL पर आधारित इंस्टॉलेशन गाइड यह दस्तावेज़ में उपलब्ध है।
Pip इंस्टॉलेशन विधि¶
आप pip का उपयोग करके SimpleTuner को आसानी से इंस्टॉल कर सकते हैं, जो अधिकांश उपयोगकर्ताओं के लिए अनुशंसित है:
# for CUDA
pip install 'simpletuner[cuda]'
# for CUDA 13 / Blackwell (NVIDIA B-series GPUs)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130
# for CUDA 13 with TransformerEngine FP8 support
pip install 'simpletuner[cuda13-transformerengine]' --extra-index-url https://download.pytorch.org/whl/cu130
# for ROCm
pip install 'simpletuner[rocm]' --extra-index-url https://download.pytorch.org/whl/rocm7.1
# for Apple Silicon
pip install 'simpletuner[apple]'
# for CPU-only (not recommended)
pip install 'simpletuner[cpu]'
# for JPEG XL support (optional)
pip install 'simpletuner[jxl]'
# development requirements (optional, only for submitting PRs or running tests)
pip install 'simpletuner[dev]'
Git रिपॉज़िटरी विधि¶
लोकल डेवलपमेंट या टेस्टिंग के लिए, आप SimpleTuner रिपॉज़िटरी को क्लोन कर सकते हैं और python venv सेट अप कर सकते हैं:
git clone --branch=release https://github.com/bghira/SimpleTuner.git
cd SimpleTuner
# if python --version shows 3.11 or 3.12, you may want to upgrade to 3.13.
python3.13 -m venv .venv
source .venv/bin/activate
ℹ️ आप अपनी कस्टम venv path का उपयोग
config/config.envफ़ाइल मेंexport VENV_PATH=/path/to/.venvसेट करके कर सकते हैं।
नोट: हम यहाँ release ब्रांच इंस्टॉल कर रहे हैं; main ब्रांच में प्रयोगात्मक फीचर्स हो सकते हैं जो बेहतर परिणाम या कम मेमोरी उपयोग दे सकते हैं।
ऑटोमैटिक प्लेटफ़ॉर्म डिटेक्शन के साथ SimpleTuner इंस्टॉल करें:
# Basic installation (auto-detects CUDA/ROCm/Apple)
pip install -e .
# With JPEG XL support
pip install -e .[jxl]
नोट: setup.py आपके प्लेटफ़ॉर्म (CUDA/ROCm/Apple) को स्वतः पहचानता है और उपयुक्त dependencies इंस्टॉल करता है।
NVIDIA Hopper / Blackwell फॉलो‑अप चरण¶
वैकल्पिक रूप से, Hopper (या उससे नए) उपकरण torch.compile का उपयोग करते समय बेहतर inference और प्रशिक्षण प्रदर्शन के लिए FlashAttention3 का लाभ उठा सकते हैं।
आपको अपने SimpleTuner डायरेक्टरी से, venv सक्रिय रखते हुए, निम्न कमांड्स चलाने होंगे:
git clone https://github.com/Dao-AILab/flash-attention
pushd flash-attention
pushd hopper
python setup.py install
popd
popd
⚠️ SimpleTuner में flash_attn बिल्ड का प्रबंधन अभी कमजोर रूप से समर्थित है। अपडेट्स पर यह टूट सकता है, जिससे आपको समय‑समय पर यह बिल्ड प्रक्रिया फिर से चलानी पड़ सकती है।
AMD ROCm फॉलो‑अप चरण¶
AMD MI300X को उपयोग योग्य बनाने के लिए निम्न चरण चलाने होंगे:
apt install amd-smi-lib
pushd /opt/rocm/share/amd_smi
python3 -m pip install --upgrade pip
python3 -m pip install .
popd
ℹ️ ROCm acceleration defaults: जब SimpleTuner HIP‑सक्षम PyTorch बिल्ड का पता लगाता है तो यह स्वतः
PYTORCH_TUNABLEOP_ENABLED=1एक्सपोर्ट करता है (यदि आपने पहले से सेट नहीं किया है), ताकि TunableOp kernels उपलब्ध हों। MI300/gfx94x डिवाइसों पर हम डिफ़ॉल्ट रूप सेHIPBLASLT_ALLOW_TF32=1भी सेट करते हैं, जिससे हाथ से वातावरण सेट किए बिना hipBLASLt की TF32 paths सक्षम हो जाती हैं।
सभी प्लेटफ़ॉर्म¶
- 2a. विकल्प एक (अनुशंसित):
simpletuner configureचलाएँ - 2b. विकल्प दो:
config/config.json.exampleकोconfig/config.jsonमें कॉपी करें और विवरण भरें।
⚠️ जिन देशों में Hugging Face Hub आसानी से उपलब्ध नहीं है, वहाँ के उपयोगकर्ताओं को अपने सिस्टम के
$SHELLके अनुसार~/.bashrcया~/.zshrcमेंHF_ENDPOINT=https://hf-mirror.comजोड़ना चाहिए।
मल्टी‑GPU प्रशिक्षण¶
SimpleTuner अब WebUI के जरिए स्वचालित GPU पहचान और कॉन्फ़िगरेशन शामिल करता है। पहली बार लोड होने पर, आपको एक onboarding चरण के माध्यम से गाइड किया जाएगा जो आपके GPUs पहचानता है और Accelerate को स्वतः कॉन्फ़िगर करता है।
WebUI ऑटो‑डिटेक्शन (अनुशंसित)¶
जब आप पहली बार WebUI लॉन्च करते हैं या simpletuner configure का उपयोग करते हैं, तो आपको "Accelerate GPU Defaults" onboarding चरण मिलेगा जो:
- सिस्टम पर उपलब्ध सभी GPUs को स्वचालित रूप से पहचानता है
- नाम, मेमोरी, और डिवाइस IDs सहित GPU विवरण दिखाता है
- मल्टी‑GPU प्रशिक्षण के लिए उत्तम सेटिंग्स की सिफ़ारिश करता है
-
तीन कॉन्फ़िगरेशन मोड प्रदान करता है:
-
ऑटो मोड (अनुशंसित): सभी detected GPUs को optimal process count के साथ उपयोग करता है
- मैन्युअल मोड: विशिष्ट GPUs चुनें या कस्टम process count सेट करें
- Disabled मोड: केवल single GPU प्रशिक्षण
यह कैसे काम करता है:
- सिस्टम CUDA/ROCm के जरिए आपके GPU हार्डवेयर का पता लगाता है
- उपलब्ध डिवाइसों के आधार पर optimal --num_processes गणना करता है
- विशिष्ट GPUs चुने जाने पर CUDA_VISIBLE_DEVICES स्वतः सेट करता है
- भविष्य के प्रशिक्षण रन के लिए आपकी प्राथमिकताएँ सेव करता है
मैन्युअल कॉन्फ़िगरेशन¶
यदि WebUI का उपयोग नहीं कर रहे हैं, तो आप अपने config.json में GPU visibility सीधे नियंत्रित कर सकते हैं:
यह प्रशिक्षण को GPUs 0, 1, और 2 तक सीमित करेगा और 3 प्रक्रियाएँ लॉन्च करेगा।
- यदि आप
--report_to='wandb'(डिफ़ॉल्ट) का उपयोग कर रहे हैं, तो निम्न चरण आपकी सांख्यिकी रिपोर्ट करने में मदद करेंगे:
प्रिंटेड निर्देशों का पालन करें, अपनी API key ढूँढें और कॉन्फ़िगर करें।
इसके बाद, आपके प्रशिक्षण सत्र और validation डेटा Weights & Biases पर उपलब्ध होंगे।
ℹ️ यदि आप Weights & Biases या Tensorboard रिपोर्टिंग पूरी तरह बंद करना चाहते हैं, तो
--report-to=noneका उपयोग करें।
- simpletuner के साथ प्रशिक्षण शुरू करें; logs
debug.logमें लिखे जाएंगे
⚠️ इस बिंदु पर, यदि आपने
simpletuner configureका उपयोग किया है, तो आप तैयार हैं! यदि नहीं - ये कमांड्स काम करेंगे, लेकिन आगे की कॉन्फ़िगरेशन आवश्यक है। अधिक जानकारी के लिए ट्यूटोरियल देखें।
यूनिट टेस्ट चलाएँ¶
यह सुनिश्चित करने के लिए कि इंस्टॉलेशन सफलतापूर्वक पूरा हुआ है, यूनिट टेस्ट चलाएँ:
उन्नत: कई कॉन्फ़िगरेशन वातावरण¶
जो उपयोगकर्ता कई मॉडल ट्रेन करते हैं या अलग‑अलग डेटासेट/सेटिंग्स के बीच जल्दी स्विच करना चाहते हैं, स्टार्टअप पर दो environment variables देखे जाते हैं।
इनका उपयोग करने के लिए:
envका डिफ़ॉल्टdefaultहोता है, जो इस गाइड द्वारा कॉन्फ़िगर किए गए सामान्यSimpleTuner/config/डायरेक्टरी की ओर इशारा करता हैsimpletuner train env=pixartउपयोग करने परSimpleTuner/config/pixartडायरेक्टरी मेंconfig.envखोजा जाएगाconfig_backendका डिफ़ॉल्टenvहोता है, जो इसी गाइड द्वारा कॉन्फ़िगर की गई सामान्यconfig.envफ़ाइल का उपयोग करता है- समर्थित विकल्प:
env,json,toml, याcmd(यदि आपtrain.pyमैन्युअली चलाते हैं) simpletuner train config_backend=jsonउपयोग करने परSimpleTuner/config/config.jsonखोजेगा, न किconfig.env- इसी तरह,
config_backend=tomlconfig.envका उपयोग करेगा
आप config/config.env बना सकते हैं जिसमें इनमें से एक या दोनों मान हों:
इन्हें अगले रन पर याद रखा जाएगा। ध्यान दें कि इन्हें ऊपर बताए गए multiGPU विकल्पों के अतिरिक्त जोड़ा जा सकता है।
प्रशिक्षण डेटा¶
एक सार्वजनिक डेटासेट Hugging Face Hub पर उपलब्ध है जिसमें लगभग 10k छवियाँ हैं, और कैप्शन फ़ाइल‑नाम के रूप में हैं, जो SimpleTuner के लिए उपयोग‑तैयार हैं।
आप छवियों को एक ही फ़ोल्डर में रख सकते हैं या उन्हें सबडायरेक्टरीज़ में सुव्यवस्थित कर सकते हैं।
छवि चयन दिशानिर्देश¶
गुणवत्ता आवश्यकताएँ: - JPEG artifacts या धुंधली छवियाँ नहीं - आधुनिक मॉडल इन्हें सीख लेते हैं - ग्रेनी CMOS sensor noise से बचें (यह सभी generated छवियों में दिखेगा) - watermark, badge, या signatures नहीं (ये सीख लिए जाएंगे) - movie frames सामान्यतः काम नहीं करते क्योंकि compression होता है (इसके बजाय production stills उपयोग करें)
तकनीकी विनिर्देश: - छवियाँ आदर्श रूप से 64 से विभाज्य हों (resize किए बिना reuse संभव होता है) - संतुलित क्षमताओं के लिए square और non‑square छवियों का मिश्रण रखें - सर्वोत्तम परिणामों के लिए विविध, उच्च‑गुणवत्ता डेटासेट का उपयोग करें
कैप्शनिंग¶
SimpleTuner में bulk‑renaming के लिए captioning scripts उपलब्ध हैं। समर्थित कैप्शन फ़ॉर्मैट:
- फ़ाइल‑नाम को कैप्शन के रूप में (डिफ़ॉल्ट)
- --caption_strategy=textfile के साथ text files
- JSONL, CSV, या advanced metadata files
अनुशंसित कैप्शनिंग टूल्स: - InternVL2: सर्वोत्तम गुणवत्ता लेकिन धीमा (छोटे डेटासेट) - BLIP3: अच्छा instruction following वाला हल्का विकल्प - Florence2: सबसे तेज़ लेकिन कुछ को आउटपुट पसंद नहीं आते
प्रशिक्षण बैच आकार¶
आपका अधिकतम बैच आकार VRAM और रेज़ोल्यूशन पर निर्भर करता है:
मुख्य सिद्धांत: - VRAM समस्याओं के बिना संभव हो तो सबसे बड़ा बैच आकार उपयोग करें - उच्च रेज़ोल्यूशन = अधिक VRAM = कम बैच आकार - यदि 128x128 पर बैच आकार 1 भी काम नहीं करता, तो हार्डवेयर अपर्याप्त है
मल्टी‑GPU डेटासेट आवश्यकताएँ¶
मल्टी‑GPU के साथ प्रशिक्षण करते समय, आपका डेटासेट effective batch size के लिए पर्याप्त बड़ा होना चाहिए:
उदाहरण: 4 GPUs और train_batch_size=4 के साथ, आपको प्रति aspect bucket कम से कम 16 सैंपल चाहिए।
छोटे डेटासेट के समाधान:
- repeats को auto‑adjust करने के लिए --allow_dataset_oversubscription का उपयोग करें
- अपने dataloader कॉन्फ़िग में repeats मैन्युअली सेट करें
- बैच आकार या GPU संख्या कम करें
पूरे विवरण के लिए DATALOADER.md देखें।
Hugging Face Hub पर प्रकाशित करना¶
ट्रेनिंग पूरी होने पर मॉडलों को Hub पर स्वतः push करने के लिए config/config.json में जोड़ें:
ट्रेनिंग से पहले लॉगिन करें:
डिबगिंग¶
config/config.env में विस्तृत लॉगिंग सक्षम करें:
प्रोजेक्ट रूट में debug.log फ़ाइल बनाई जाएगी जिसमें सभी लॉग एंट्रीज़ होंगी।