चुनें ऑन-डिमांड (निश्चित दर) या स्पॉट (बोली मूल्य)
अपना ऑर्डर कॉन्फ़िगर करें:
Docker इमेज चुनें
पोर्ट सेट करें (SSH के लिए TCP, वेब UI के लिए HTTP)
यदि आवश्यक हो तो एनवायरनमेंट वेरिएबल जोड़ें
स्टार्टअप कमांड दर्ज करें
भुगतान चुनें: CLORE, BTC, या USDT/USDC
ऑर्डर बनाएं और डिप्लॉयमेंट का इंतजार करें
अपने सर्वर तक पहुँचें
कनेक्शन विवरण ढूंढें मेरे ऑर्डर्स
वेब इंटरफेस: HTTP पोर्ट URL का उपयोग करें
SSH: ssh -p <port> root@<proxy-address>
LoRA/QLoRA क्या है?
LoRA (लो-रैंक अनुकूलन) - पूरे मॉडल के बजाय छोटे एडेप्टर लेयर ट्रेन करें
QLoRA - और भी कम VRAM के लिए क्वांटाइज़ेशन के साथ LoRA
सिंगल RTX 3090 पर 7B मॉडल ट्रेन करें
सिंगल A100 पर 70B मॉडल ट्रेन करें
आवश्यकताएँ
मॉडल
विधि
न्यूनतम VRAM
सिफारिश
7B
QLoRA
12GB
RTX 3090
13B
QLoRA
20GB
RTX 4090
70B
QLoRA
48GB
A100 80GB
7B
फुल LoRA
24GB
RTX 4090
क्विक डिप्लॉय
Docker इमेज:
पोर्ट्स:
कमान्ड:
आपकी सर्विस तक पहुँच
डिप्लॉयमेंट के बाद, अपना ढूंढें http_pub URL में मेरे ऑर्डर्स:
पर जाएँ मेरे ऑर्डर्स पृष्ठ
अपने ऑर्डर पर क्लिक करें
खोजें http_pub URL (उदा., abc123.clorecloud.net)
उपयोग करें https://YOUR_HTTP_PUB_URL की जगह localhost नीचे दिए गए उदाहरणों में।
डेटासेट तैयार करना
चैट फ़ॉर्मेट (अनुशंसित)
इंस्ट्रक्शन फ़ॉर्मेट
Alpaca फ़ॉर्मेट
समर्थित आधुनिक मॉडल (2025)
मॉडल
HF ID
न्यूनतम VRAM (QLoRA)
Llama 3.1 / 3.3 8B
meta-llama/Llama-3.1-8B-Instruct
12GB
Qwen 2.5 7B / 14B
Qwen/Qwen2.5-7B-Instruct
12GB / 20GB
DeepSeek-R1-Distill (7B/8B)
deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
12GB
Mistral 7B v0.3
mistralai/Mistral-7B-Instruct-v0.3
12GB
Gemma 2 9B
google/gemma-2-9b-it
14GB
Phi-4 14B
microsoft/phi-4
20GB
QLoRA फाइन-ट्यूनिंग स्क्रिप्ट
PEFT 0.14+, Flash Attention 2, DoRA समर्थन, और Qwen2.5 / DeepSeek-R1 अनुकूलता के साथ आधुनिक उदाहरण:
Flash Attention 2
Flash Attention 2 VRAM उपयोग को घटाता है और ट्रेनिंग को काफी तेज़ करता है। इसके लिए Ampere+ GPU (RTX 3090, RTX 4090, A100) आवश्यक है।
सेटिंग
VRAM (7B)
गति
मानक अटेंशन (fp16)
~22GB
बेसलाइन
Flash Attention 2 (bf16)
~16GB
+30%
Flash Attention 2 + QLoRA
~12GB
+30%
DoRA (Weight-Decomposed LoRA)
DoRA (PEFT >= 0.14) प्री-ट्रेन्ड वज़न को परिमाण और दिशा घटकों में विभाजित करता है। यह फाइन-ट्यूनिंग की गुणवत्ता में सुधार करता है, विशेष रूप से छोटे रैंक्स के लिए।
Qwen2.5 & DeepSeek-R1-Distill उदाहरण
Qwen2.5 फाइन-ट्यूनिंग
DeepSeek-R1-Distill फाइन-ट्यूनिंग
DeepSeek-R1-Distill मॉडल (Qwen-7B, Qwen-14B, Llama-8B, Llama-70B) तर्क-केन्द्रित हैं। उनके chain-of-thought स्टाइल को अपने डोमेन के लिए अनुकूलित करने के लिए फाइन-ट्यून करें।
Axolotl का उपयोग (आसान तरीका)
Axolotl YAML कॉन्फ़िग के साथ फाइन-ट्यूनिंग को सरल बनाता है:
Axolotl कॉन्फ़िग उदाहरण
चैट मॉडल
कोड मॉडल
LoRA वज़न मर्ज करना
ट्रेनिंग के बाद, LoRA को बेस मॉडल में मर्ज करें:
GGUF में कन्वर्ट करें
llama.cpp/Ollama के साथ उपयोग के लिए:
ट्रेनिंग की निगरानी
Weights & Biases
TensorBoard
सर्वोत्तम प्रथाएँ
हाइपरपैरामीٹر
पैरामीटर
7B मॉडल
13B मॉडल
70B मॉडल
batch_size
4
2
1
grad_accum
4
8
16
lr
2e-4
1e-4
5e-5
lora_r
64
32
16
epochs
3
2-3
1-2
डेटासेट आकार
न्यूनतम: 1,000 उदाहरण
अच्छा: 10,000+ उदाहरण
गुणवत्ता > मात्रा
ओवरफिटिंग से बचना
मल्टी-GPU ट्रेनिंग
DeepSpeed कॉन्फ़िग:
सहेजना और एक्सपोर्ट करना
ट्रबलशूटिंग
OOM त्रुटियाँ
बैच आकार घटाएँ
ग्रेडिएंट एक्यूम्यूलेशन बढ़ाएँ
उपयोग करें gradient_checkpointing=True
lora_r घटाएँ
ट्रेनिंग लॉस घट नहीं रहा है
डेटा प्रारूप की जांच करें
लर्निंग रेट बढ़ाएँ
डेटा समस्याओं की जाँच करें
NaN लॉस
लर्निंग रेट घटाएँ
fp16 के बजाय fp32 का उपयोग करें
करप्टेड डेटा के लिए जाँच करें
लागत अनुमान
सामान्य CLORE.AI मार्केटप्लेस दरें (2024 के अनुसार):
GPU
घंटा दर
दैनिक दर
4-घंटे सत्र
RTX 3060
~$0.03
~$0.70
~$0.12
RTX 3090
~$0.06
~$1.50
~$0.25
RTX 4090
~$0.10
~$2.30
~$0.40
A100 40GB
~$0.17
~$4.00
~$0.70
A100 80GB
~$0.25
~$6.00
~$1.00
कीमतें प्रदाता और मांग के अनुसार भिन्न होती हैं। जांचेंCLORE.AI मार्केटप्लेसवर्तमान दरों के लिए।
[
{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Python?"},
{"role": "assistant", "content": "Python is a programming language..."}
]
}
]
[
{
"instruction": "Translate to French",
"input": "Hello, how are you?",
"output": "Bonjour, comment allez-vous?"
}
]
[
{
"instruction": "Give three tips for staying healthy.",
"input": "",
"output": "1. Eat balanced meals..."
}
]
import torch
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig,
TrainingArguments,
)
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
# === कॉन्फ़िगरेशन ===
# इनमें से एक चुनें: Qwen2.5, DeepSeek-R1-Distill, Llama 3.1, Mistral, आदि।
MODEL_NAME = "Qwen/Qwen2.5-7B-Instruct"
# MODEL_NAME = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"
# MODEL_NAME = "meta-llama/Llama-3.1-8B-Instruct"
DATASET = "your_dataset.json" # या HuggingFace dataset नाम
OUTPUT_DIR = "./output"
MAX_SEQ_LENGTH = 4096 # Qwen2.5 32K तक का कॉनटेक्स्ट सपोर्ट करता है
USE_DORA = True # DoRA मानक LoRA की तुलना में गुणवत्ता सुधारता है
USE_FLASH_ATTN = True # Flash Attention 2 VRAM बचाता है और गति बढ़ाता है
# === 4-बिट क्वांटाइज़ेशन के साथ मॉडल लोड करें ===
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True, # Qwen2.5 और DeepSeek के लिए आवश्यक
# Flash Attention 2: Ampere+ GPU (RTX 30/40, A100) की आवश्यकता होती है
attn_implementation="flash_attention_2" if USE_FLASH_ATTN else "eager",
)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"
# === वैकल्पिक DoRA के साथ LoRA कॉन्फ़िगर करें ===
# DoRA (Weight-Decomposed Low-Rank Adaptation) — PEFT >= 0.14 आवश्यक
# use_dora=True वज़न को परिमाण + दिशा में विभाजित करता है जिससे गुणवत्ता बेहतर होती है
lora_config = LoraConfig(
r=64, # रैंक (उच्च = अधिक क्षमता, अधिक VRAM)
lora_alpha=16, # स्केलिंग फैक्टर (r के बराबर या आधा रखें)
target_modules=[
"q_proj", "k_proj", "v_proj", "o_proj", # अटेंशन लेयर
"gate_proj", "up_proj", "down_proj", # MLP लेयर
],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
use_dora=USE_DORA, # DoRA: बेहतर गुणवत्ता (PEFT 0.14+)
# use_rslora=True, # वैकल्पिक: रैंक-स्थिर LoRA
)
# QLoRA प्रशिक्षण के लिए मॉडल तैयार करें
model = prepare_model_for_kbit_training(
model,
use_gradient_checkpointing=True,
gradient_checkpointing_kwargs={"use_reentrant": False},
)
model = get_peft_model(model, lora_config)
# ट्रेन करने योग्य पैरामीटर सारांश प्रिंट करें
model.print_trainable_parameters()
# उदाहरण आउटपुट: trainable params: 42,991,616 || all params: 7,284,891,648 || trainable%: 0.59
# === डेटासेट लोड करें ===
dataset = load_dataset("json", data_files=DATASET)
# या सार्वजनिक डेटासेट का उपयोग करें:
# dataset = load_dataset("HuggingFaceH4/ultrachat_200k")
# === Qwen2.5 / ChatML फ़ॉर्मेट के लिए डेटासेट को फ़ॉर्मेट करें ===
def format_chat_qwen(example):
"""Qwen2.5 के लिए ChatML टेम्पलेट में फ़ॉर्मेट."""
messages = example.get("messages", [])
if not messages:
# alpaca-शैली डेटा को संभालें
text = f"<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n"
text += f"<|im_start|>user\n{example['instruction']}"
if example.get("input"):
text += f"\n{example['input']}"
text += f"<|im_end|>\n<|im_start|>assistant\n{example['output']}<|im_end|>"
else:
# संदेश फ़ॉर्मेट (ChatML) को संभालें
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=False,
)
return {"text": text}
dataset = dataset.map(format_chat_qwen, remove_columns=dataset["train"].column_names)
# === ट्रेनिंग आर्ग्युमेंट्स (PEFT 0.14+ / TRL 0.12+) ===
training_args = SFTConfig(
output_dir=OUTPUT_DIR,
num_train_epochs=3,
per_device_train_batch_size=2,
gradient_accumulation_steps=8, # प्रभावी बैच = 2 * 8 = 16
learning_rate=2e-4,
weight_decay=0.001,
warmup_ratio=0.03,
lr_scheduler_type="cosine",
logging_steps=10,
save_steps=100,
save_total_limit=3,
bf16=True, # आधुनिक GPUs (A100, RTX 30/40) के लिए bf16 का उपयोग करें
# fp16=True, # पुराने GPUs के लिए fp16 का उपयोग करें
optim="paged_adamw_8bit",
max_grad_norm=0.3,
group_by_length=True,
report_to="wandb", # या "tensorboard"
# SFTConfig-विशिष्ट:
max_seq_length=MAX_SEQ_LENGTH,
dataset_text_field="text",
packing=True, # दक्षता के लिए कई उदाहरण पैक करें
)
# === ट्रेन ===
trainer = SFTTrainer(
model=model,
train_dataset=dataset["train"],
tokenizer=tokenizer,
args=training_args,
)
trainer.train()
# === LoRA एडेप्टर सहेजें ===
trainer.save_model(f"{OUTPUT_DIR}/final")
tokenizer.save_pretrained(f"{OUTPUT_DIR}/final")
print(f"Model saved to {OUTPUT_DIR}/final")
# मॉडल लोडिंग में सक्षम करें:
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
attn_implementation="flash_attention_2", # <-- इसे जोड़ें
torch_dtype=torch.bfloat16, # FA2 को bf16 या fp16 चाहिए
device_map="auto",
)
from peft import LoraConfig
# मानक LoRA
lora_config = LoraConfig(r=64, lora_alpha=16, use_dora=False, ...)
# DoRA — वही पैरामीटर, बेहतर गुणवत्ता
lora_config = LoraConfig(r=64, lora_alpha=16, use_dora=True, ...)
# नोट: DoRA मानक LoRA की तुलना में ~5-10% VRAM ओवरहेड जोड़ता है
# नोट: सभी मामलों में क्वांटाइज़्ड (4-बिट/8-बिट) मॉडलों के साथ संगत नहीं है
MODEL_NAME = "Qwen/Qwen2.5-7B-Instruct"
# 14B के लिए: "Qwen/Qwen2.5-14B-Instruct" (QLoRA के साथ 20GB+ VRAM चाहिए)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True, # Qwen2.5 के लिए आवश्यक
attn_implementation="flash_attention_2",
)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
# Qwen2.5 ChatML फ़ॉर्मेट का उपयोग करता है — apply_chat_template का उपयोग करें
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hi there! How can I help?"},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=False)
# DeepSeek-R1-Distिल वेरिएंट्स
MODEL_NAME = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B" # Qwen2.5 बेस पर 7B
# MODEL_NAME = "deepseek-ai/DeepSeek-R1-Distill-Llama-8B" # Llama3 बेस पर 8B
# MODEL_NAME = "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B" # 14B (A100 चाहिए)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True,
attn_implementation="flash_attention_2",
)
# DeepSeek-R1 तर्क के लिए <think>...</think> टैग्स का उपयोग करता है
# प्रशिक्षण डेटा में इसे रखें ताकि chain-of-thought क्षमता बनी रहे
example_format = """<|im_start|>user
Solve: What is 15 * 23?<|im_end|>
<|im_start|>assistant
<think>
15 * 23 = 15 * 20 + 15 * 3 = 300 + 45 = 345
</think>
The answer is 345.<|im_end|>"""
# DeepSeek-R1-Distill (Qwen2.5 बेस) के लिए LoRA टार्गेट मॉड्यूल्स
lora_config = LoraConfig(
r=32,
lora_alpha=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
use_dora=True,
task_type="CAUSAL_LM",
)
# accelerate के साथ
accelerate launch --multi_gpu --num_processes 4 train.py
# DeepSpeed के साथ
accelerate launch --use_deepspeed --num_processes 4 train.py