Axolotl यूनिवर्सल फाइन-ट्यूनिंग

Clore.ai पर Axolotl के साथ YAML-ड्रिवन LLM फाइन-ट्यूनिंग — LoRA, QLoRA, DPO, मल्टी-GPU

Axolotl HuggingFace Transformers, PEFT, TRL और DeepSpeed को एक ही YAML-चालित इंटरफ़ेस में समेटता है। आप अपने मॉडल, डेटासेट, प्रशिक्षण विधि, और हाइपरपैरामीटर एक कॉन्फ़िग फ़ाइल में परिभाषित करते हैं — फिर एक एकल कमांड के साथ लॉन्च करें। मानक वर्कफ़्लो के लिए Python स्क्रिप्टिंग की आवश्यकता नहीं।

circle-check

प्रमुख विशेषताएँ

  • सिर्फ YAML विन्यास — सब कुछ एक फ़ाइल में परिभाषित करें, Python की आवश्यकता नहीं

  • सभी प्रशिक्षण विधियाँ — LoRA, QLoRA, पूर्ण फाइन-ट्यून, DPO, ORPO, KTO, RLHF

  • बॉक्स से बहु-GPU समर्थन — एक फ्लैग के साथ DeepSpeed ZeRO 1/2/3 और FSDP

  • सैंपल पैकिंग — अनुक्रम लंबाई भरने के लिए छोटे उदाहरणों को जोड़ें, 3–5× थ्रूपुट वृद्धि

  • Flash Attention 2 — समर्थित हार्डवेयर पर स्वचालित VRAM बचत

  • व्यापक मॉडल समर्थन — Llama 3.x, Mistral, Qwen 2.5, Gemma 2, Phi-4, DeepSeek, Falcon

  • बिल्ट-इन डेटासेट फॉर्मैट — alpaca, sharegpt, chat_template, completion, और कस्टम

आवश्यकताएँ

घटक
न्यूनतम
अनुशंसित

GPU

RTX 3060 12 GB

RTX 4090 24 GB (×2+)

VRAM

12 GB

24+ GB

RAM

16 GB

64 GB

डिस्क

50 GB

100 GB

CUDA

11.8

12.1+

Python

3.10

3.11

Clore.ai मूल्य निर्धारण: RTX 4090 ≈ $0.5–2/दिन · RTX 3090 ≈ $0.3–1/दिन · RTX 3060 ≈ $0.15–0.3/दिन

त्वरित प्रारम्भ

1. Axolotl इंस्टॉल करें

या Docker इमेज का उपयोग करें (पुनरुत्पादकता के लिए अनुशंसित):

2. एक कॉन्फ़िग फ़ाइल बनाएं

इसे सहेजें जैसा कि config.yml:

3. प्रशिक्षण लॉन्च करें

प्रशिक्षण प्रगति stdout में लॉग होती है और वैकल्पिक रूप से Weights & Biases पर।

विन्यास गहरी जानकारी

डेटासेट फॉर्मैट

Axolotl मूल रूप से कई इनपुट फॉर्मैट्स का समर्थन करता है:

DeepSpeed के साथ बहु-GPU

बनाएँ deepspeed_zero2.json:

अपने कॉन्फ़िग में जोड़ें:

फिर लॉन्च करें:

DPO / ORPO संरेखण

पूर्ण फाइन-ट्यून (कोई LoRA नहीं)

उपयोग के उदाहरण

प्रशिक्षण के बाद इन्फरेंस

LoRA को बेस मॉडल में मर्ज करें

डेटासेट पूर्व-प्रोसेस करें (प्रशिक्षण से पहले मान्य करें)

यह डेटासेट को टोकनाइज़ और मान्य करता है। लंबी प्रशिक्षण रन से पहले फॉर्मेट त्रुटियों को पकड़ने के लिए उपयोगी।

VRAM उपयोग संदर्भ

मॉडल
विधि
GPUs
VRAM/GPU
कॉन्फ़िग

Llama 3.1 8B

QLoRA 4bit

1

~12 GB

r=32, seq_len=2048

Llama 3.1 8B

LoRA 16bit

1

~20 GB

r=16, seq_len=2048

Llama 3.1 8B

पूर्ण

2

~22 GB

DeepSpeed ZeRO-3

Qwen 2.5 14B

QLoRA 4bit

1

~16 GB

r=16, seq_len=2048

Llama 3.3 70B

QLoRA 4bit

2

~22 GB

r=16, seq_len=2048

Llama 3.3 70B

पूर्ण

4

~40 GB

DeepSpeed ZeRO-3+offload

टिप्स

  • हमेशा सक्षम करें sample_packing: true — एकल सबसे बड़ा थ्रूपुट सुधार (छोटे डेटासेट पर 3–5×)

  • उपयोग करें flash_attention: true Ampere+ GPUs पर 20–40% VRAM बचत के लिए

  • QLoRA से शुरू करें प्रयोगों के लिए, केवल तब पूर्ण फाइन-ट्यून पर स्विच करें जब LoRA गुणवत्ता स्थिर हो जाए

  • सेट करें val_set_size: 0.02 प्रशिक्षण के दौरान ओवरफ़िटिंग की निगरानी करने के लिए

  • पहले पूर्व-प्रोसेस करें — चलाएँ axolotl.cli.preprocess लंबी रन में कमिट करने से पहले डेटा फॉर्मैटिंग को मान्य करने के लिए

  • Docker इमेज का उपयोग करें पुनरुत्पादक वातावरण के लिए — निर्भरता संघर्ष से बचाता है

  • lora_target_linear: true LoRA को सभी लीनियर लेयर्स पर लागू करता है, आमतौर पर केवल attention को लक्षित करने से बेहतर

समस्याओं का निवारण

समस्या
समाधान

OutOfMemoryError

कम करें micro_batch_size को 1 पर, सक्षम करें gradient_checkpointing

डेटासेट फॉर्मैट त्रुटियाँ

चलाएँ python -m axolotl.cli.preprocess config.yml डिबग करने के लिए

sample_packing पहले एपोच पर धीमा

सामान्य — प्रारंभिक पैकिंग गणना एक बार होती है

बहु-GPU प्रशिक्षण अटका हुआ है

NCCL जांचें: export NCCL_DEBUG=INFO, सुनिश्चित करें सभी GPUs दिखाई दे रहे हैं

flash_attention इम्पोर्ट एरर

इंस्टॉल करें: pip install flash-attn --no-build-isolation

लॉस घट नहीं रहा

LR को 1e-4 पर कम करें, वार्मअप बढ़ाएँ, डेटासेट की गुणवत्ता जांचें

WandB कनेक्शन त्रुटि

चलाएँ wandb login या सेट करें wandb_project: खाली स्ट्रिंग पर

संसाधन

Last updated

Was this helpful?