चुनें ऑन-डिमांड (निश्चित दर) या स्पॉट (बिड प्राइस)
अपना ऑर्डर कॉन्फ़िगर करें:
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)
स्पीड
मानक attention (fp16)
~22GB
मूलभूत
Flash Attention 2 (bf16)
~16GB
+30%
Flash Attention 2 + QLoRA
~12GB
+30%
DoRA (वज़न-विघटित 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) तर्क-केंद्रित हैं। अपने डोमेन के लिए उनकी चेन-ऑफ-थॉट शैली अनुकूलित करने के लिए फाइन-ट्यून करें।
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 कम करें
ट्रेनिंग लॉस घट नहीं रहा
डेटा प्रारूप जाँचें
learning rate बढ़ाएँ
डेटा समस्याओं के लिए जाँच करें
NaN लॉस
learning rate घटाएँ
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 मार्केटप्लेसवर्तमान दरों के लिए।
पैसे बचाएँ:
उपयोग करें स्पॉट लचीले वर्कलोड के लिए मार्केट (अक्सर 30-50% सस्ता)
[
{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Python क्या है?"},
{"role": "assistant", "content": "Python एक प्रोग्रामिंग भाषा है..."}
]
}
]
[
{
"instruction": "French में अनुवाद करें",
"input": "Hello, how are you?",
"output": "Bonjour, comment allez-vous?"
}
]
[
{
"instruction": "स्वस्थ रहने के लिए तीन सुझाव दें.",
"input": "",
"output": "1. संतुलित भोजन खाएं..."
}
]
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 (वज़न-विघटित लो-रैंक अनुकूलन) — 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", # Attention लेयर्स
"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, # वैकल्पिक: Rank-Stabilized 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:
# messages प्रारूप (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-Distill वेरिएंट्स
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",
)
base_model: codellama/CodeLlama-7b-hf
load_in_4bit: true
adapter: qlora
datasets:
- path: code_data.json
type: alpaca
sequence_len: 8192 # कोड के लिए लंबा संदर्भ
# accelerate के साथ
accelerate launch --multi_gpu --num_processes 4 train.py
# DeepSpeed के साथ
accelerate launch --use_deepspeed --num_processes 4 train.py