लर्निंग पाथ
Meta द्वारा LLaMA के पहले संस्करण के लॉन्च के बाद, ऐसे बेहतर बड़े भाषा मॉडल (LLMs) बनाने की नई होड़ शुरू हो गई जो GPT-3.5 (ChatGPT) जैसे मॉडलों टक्कर दे सकें। ओपन-सोर्स समुदाय ने तेजी से अधिक सक्षम मॉडल जारी किए। AI उत्साही लोगों के लिए यह जैसे क्रिसमस जैसा समय था, क्योंकि नए विकास अक्सर घोषित हो रहे थे।
हालाँकि, इन प्रगतियों के साथ कुछ कमियाँ भी रहीं। अधिकांश ओपन-सोर्स मॉडलों के लाइसेंस प्रतिबंधित होते हैं, यानी वे केवल शोध उद्देश्यों के लिए इस्तेमाल किए जा सकते हैं। दूसरा, केवल बड़ी कंपनियाँ या पर्याप्त बजट वाले शोध संस्थान ही मॉडलों को फाइन-ट्यून या ट्रेन करने का खर्च उठा सकते थे। अंततः, अत्याधुनिक बड़े मॉडलों को डिप्लॉय और मेंटेन करना महंगा था।
LLaMA मॉडलों का नया संस्करण इन मुद्दों को संबोधित करने का प्रयास करता है। इसमें वाणिज्यिक लाइसेंस है, जिससे यह अधिक संगठनों के लिए सुलभ हो जाता है। साथ ही, नई पद्धतियाँ अब सीमित मेमोरी वाले कंज़्यूमर GPU पर भी फाइन-ट्यूनिंग संभव बनाती हैं।
AI का यह लोकतंत्रीकरण व्यापक अपनाने के लिए महत्वपूर्ण है। प्रवेश बाधाओं को कम करके, छोटी कंपनियाँ भी अपनी आवश्यकताओं और बजट के अनुरूप कस्टम मॉडल बना सकती हैं।
इस ट्यूटोरियल में, हम Llama-2 का अन्वेषण करेंगे और दिखाएँगे कि Google Colab का उपयोग करके इसे एक नए डेटासेट पर कैसे फाइन-ट्यून किया जाए। इसके अतिरिक्त, हम ऐसी नई पद्धतियों और फाइन-ट्यूनिंग तकनीकों को कवर करेंगे जो मेमोरी उपयोग को कम करने और प्रशिक्षण प्रक्रिया को तेज करने में मदद करती हैं।

चित्र DALL-E 3 का उपयोग करके लेखक द्वारा जनित
संक्षेप में
- Llama 2, Meta का दूसरी पीढ़ी का ओपन-सोर्स LLM है जिसमें वाणिज्यिक लाइसेंस है, और यह 7B से 70B पैरामीटर आकारों में उपलब्ध है
- QLoRA, 4-बिट क्वांटाइज़ेशन को Low-Rank Adapters के साथ मिलाकर कंज़्यूमर GPU पर फाइन-ट्यूनिंग सक्षम करता है, जिससे VRAM आवश्यकता 60+ GB से घटकर 10 GB से कम हो जाती है
- यह ट्यूटोरियल Hugging Face ईकोसिस्टम (
transformers,peft,trl,bitsandbytes) का उपयोग करते हुए, Google Colab के मुफ्त T4 GPU पर Llama 2 7B को फाइन-ट्यून करता है - मुख्य तकनीक: बेस मॉडल को 4-बिट प्रिसीजन पर फ्रीज़ करें और केवल छोटे LoRA एडेप्टर लेयर्स को ट्रेन करें, जिससे प्रक्रिया मेमोरी-कुशल बनती है
- सिर्फ 1,000 निर्देश-अनुसरण नमूनों पर प्रशिक्षण के बाद फाइन-ट्यून किया गया मॉडल सुसंगत और संदर्भानुकूल प्रतिक्रियाएँ देता है
Llama 2 और मॉडल फाइन-ट्यूनिंग को समझना
Llama 2, Meta के दूसरी पीढ़ी के ओपन-सोर्स LLMs का संग्रह है जो वाणिज्यिक लाइसेंस के साथ आता है। यह 7 बिलियन से 70 बिलियन पैरामीटर्स तक के स्केल वाले मॉडलों के साथ, विभिन्न प्राकृतिक भाषा संसाधन कार्यों को संभालने के लिए डिज़ाइन किया गया है। LLaMA मॉडलों के बारे में और जानने के लिए हमारा लेख Introduction to Meta AI's LLaMA: Empowering AI Innovation पढ़ें।
संवाद के लिए अनुकूलित Llama-2-Chat ने ChatGPT और PaLM जैसे लोकप्रिय क्लोज़्ड-सोर्स मॉडलों के समान प्रदर्शन दिखाया है। हम उच्च-गुणवत्ता वाले वार्तालापीय डेटासेट पर इसे फाइन-ट्यून करके मॉडल के प्रदर्शन को और बेहतर कर सकते हैं।
मशीन लर्निंग में फाइन-ट्यूनिंग वह प्रक्रिया है जिसमें किसी प्री-ट्रेंड मॉडल के वेट्स और पैरामीटर्स को नए डेटा पर समायोजित किया जाता है ताकि किसी विशिष्ट कार्य पर उसका प्रदर्शन बेहतर हो। इसमें संबंधित कार्य-विशिष्ट नए डेटासेट पर मॉडल को प्रशिक्षित करना शामिल है, और नए डेटा के अनुरूप वेट्स को अपडेट किया जाता है। फाइन-ट्यूनिंग के बारे में अधिक पढ़ने के लिए हमारा GPT 3.5 को फाइन-ट्यून करने का गाइड देखें।
कंज़्यूमर हार्डवेयर पर LLMs को फाइन-ट्यून करना सीमित VRAM और कंप्यूटिंग पावर के कारण चुनौतीपूर्ण है। हालाँकि, इस ट्यूटोरियल में, हम इन मेमोरी और कंप्यूटिंग चुनौतियों को पार करेंगे और Google Colab Notebook के नि:शुल्क संस्करण का उपयोग करके अपना मॉडल ट्रेन करेंगे।
Llama 2 को फाइन-ट्यून कैसे करें: चरण-दर-चरण गाइड
इस भाग में, हम T4 GPU पर 7 अरब पैरामीटर वाले Llama 2 मॉडल को फाइन-ट्यून करने के लिए आवश्यक सभी चरणों के बारे में सीखेंगे। आपके पास Google Colab या Kaggle पर निःशुल्क GPU उपयोग करने का विकल्प है। कोड दोनों प्लेटफ़ॉर्म पर चलता है।
Colab का T4 GPU सीमित 16 GB VRAM के साथ आता है। यह Llama 2–7b के वेट्स स्टोर करने के लिए बस पर्याप्त है, जिसका अर्थ है कि पूर्ण फाइन-ट्यूनिंग संभव नहीं है, और हमें LoRA या QLoRA जैसी पैरामीटर-प्रभावी फाइन-ट्यूनिंग तकनीकों का उपयोग करना होगा।
हम QLoRA तकनीक का उपयोग करके मॉडल को 4-बिट प्रिसीजन में फाइन-ट्यून करेंगे और VRAM उपयोग को अनुकूलित करेंगे। इसके लिए हम Hugging Face के LLM लाइब्रेरी इकोसिस्टम का उपयोग करेंगे: transformers, accelerate, peft, trl, और bitsandbytes।
1. शुरुआत करना
हम आवश्यक लाइब्रेरीज़ इंस्टॉल करके शुरू करेंगे।
%%capture
%pip install accelerate peft bitsandbytes transformers trlइसके बाद, हम इन लाइब्रेरीज़ से आवश्यक मॉड्यूल लोड करेंगे।
import os
import torch
from datasets import load_dataset
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig,
TrainingArguments,
pipeline,
logging,
)
from peft import LoraConfig
from trl import SFTTrainer2. मॉडल कॉन्फ़िगरेशन
आप Hugging Face से Meta का आधिकारिक Llama-2 मॉडल एक्सेस कर सकते हैं, लेकिन इसके लिए अनुरोध करना होता है और पुष्टि में कुछ दिन लग सकते हैं। प्रतीक्षा करने के बजाय, हम NousResearch का Llama-2-7b-chat-hf अपने बेस मॉडल के रूप में उपयोग करेंगे। यह मूल जैसा ही है लेकिन आसानी से उपलब्ध है।

Hugging Face से छवि
हम एक छोटे डेटासेट mlabonne/guanaco-llama2-1k का उपयोग करके अपने बेस मॉडल को फाइन-ट्यून करेंगे और फाइन-ट्यून किए गए मॉडल का नाम लिखेंगे।
# Model from Hugging Face hub
base_model = "NousResearch/Llama-2-7b-chat-hf"
# New instruction dataset
guanaco_dataset = "mlabonne/guanaco-llama2-1k"
# Fine-tuned model
new_model = "llama-2-7b-chat-guanaco"
Hugging Face पर डेटासेट
3. डेटासेट, मॉडल, और टोकनाइज़र लोड करना
हम Hugging Face हब से “guanaco-llama2-1k” डेटासेट लोड करेंगे। इस डेटासेट में 1000 नमूने हैं और इसे Llama 2 के प्रॉम्प्ट फ़ॉर्मेट से मिलाने के लिए प्रोसेस किया गया है। यह उत्कृष्ट timdettmers/openassistant-guanaco डेटासेट का एक सबसेट है।
dataset = load_dataset(guanaco_dataset, split="train")Dataset parquet downloaded and prepared to /root/.cache/huggingface/datasets/parquet/mlabonne--guanaco-llama2-1k-f1f1134768f90029/0.0.0/0b6d5799bb726b24ad7fc7be720c170d8e497f575d02d47537de9a5bac074901. Subsequent calls will reuse this data.4. 4-बिट क्वांटाइज़ेशन कॉन्फ़िगरेशन
QLoRA के माध्यम से 4-बिट क्वांटाइज़ेशन उपभोक्ता हार्डवेयर पर बड़े LLM मॉडलों का कुशल फाइन-ट्यूनिंग संभव बनाता है, जबकि उच्च प्रदर्शन बनाए रखता है। यह वास्तविक दुनिया के अनुप्रयोगों के लिए पहुंच और उपयोगिता को नाटकीय रूप से बढ़ाता है।
QLoRA एक प्री-ट्रेन्ड भाषा मॉडल को 4 बिट में क्वांटाइज़ करता है और पैरामीटर फ़्रीज़ कर देता है। इसके बाद मॉडल में कम संख्या में ट्रेन होने योग्य लो-रैंक एडेप्टर लेयर जोड़ी जाती हैं।
फाइन-ट्यूनिंग के दौरान, ग्रेडिएंट्स जमे हुए 4-बिट क्वांटाइज़्ड मॉडल से केवल लो-रैंक एडेप्टर लेयर तक बैकप्रोपेगेट होते हैं। इस प्रकार, पूरा प्रीट्रेन्ड मॉडल 4 बिट पर स्थिर रहता है और केवल एडेप्टर अपडेट होते हैं। साथ ही, 4-बिट क्वांटाइज़ेशन से मॉडल के प्रदर्शन पर असर नहीं पड़ता।

QLoRA पेपर से छवि
इसे बेहतर समझने के लिए आप पेपर पढ़ सकते हैं।
फाइन-ट्यूनिंग तरीकों की तुलना
| विशेषता | पूर्ण फाइन-ट्यूनिंग | LoRA | QLoRA |
|---|---|---|---|
| अपडेट किए गए पैरामीटर | मॉडल के सभी पैरामीटर | छोटी एडेप्टर मैट्रिसेज़ (~0.1-1%) | छोटी एडेप्टर मैट्रिसेज़ (~0.1-1%) |
| बेस मॉडल प्रिसीजन | FP16 / BF16 | FP16 / BF16 | 4-बिट (NF4) |
| 7B मॉडल के लिए VRAM | ~60+ GB | ~16 GB | ~6-8 GB |
| कंज्यूमर GPU संगत | नहीं | सीमित | हाँ (T4, RTX 3060+) |
| पूर्ण फाइन-ट्यूनिंग के सापेक्ष गुणवत्ता | बेसलाइन | ~98-99% | ~96-98% |
| प्रशिक्षण गति | सबसे धीमी | तेज़ | तेज़ |
हमारे मामले में, हम BitsAndBytes का उपयोग करते हुए NF4 प्रकार की कॉन्फ़िगरेशन के साथ 4-बिट क्वांटाइज़ेशन बनाएंगे।
compute_dtype = getattr(torch, "float16")
quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=compute_dtype,
bnb_4bit_use_double_quant=False,
)5. Llama 2 मॉडल लोड करना
अब हम Hugging Face से "float16" compute dtype के साथ 4-बिट प्रिसीजन में मॉडल लोड करेंगे ताकि प्रशिक्षण तेज़ हो।
model = AutoModelForCausalLM.from_pretrained(
base_model,
quantization_config=quant_config,
device_map={"": 0}
)
model.config.use_cache = False
model.config.pretraining_tp = 16. टोकनाइज़र लोड करना
अगला, हम Hugging Face से टोकनाइज़र लोड करेंगे और fp16 से जुड़ी समस्या को ठीक करने के लिए padding_side को “right” पर सेट करेंगे।
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"7. PEFT पैरामीटर
प्री-ट्रेन्ड भाषा मॉडलों (PLMs) का पारंपरिक फाइन-ट्यूनिंग मॉडल के सभी पैरामीटर अपडेट करने की मांग करता है, जो संगणना की दृष्टि से महंगा है और बहुत अधिक डेटा की आवश्यकता होती है।
Parameter-Efficient Fine-Tuning (PEFT) केवल मॉडल के सबसे प्रभावशाली पैरामीटर्स के एक छोटे उपसमुच्चय को अपडेट करके काम करता है, जिससे यह कहीं अधिक कुशल बनता है। पैरामीटर्स के बारे में जानने के लिए PEFT का आधिकारिक डॉक्यूमेंटेशन पढ़ें।
peft_params = LoraConfig(
lora_alpha=16,
lora_dropout=0.1,
r=64,
bias="none",
task_type="CAUSAL_LM",
)8. प्रशिक्षण पैरामीटर
नीचे हाइपरपैरामीटर्स की सूची दी गई है जिनका उपयोग प्रशिक्षण प्रक्रिया को अनुकूलित करने के लिए किया जा सकता है:
- output_dir: आउटपुट डायरेक्टरी वह स्थान है जहाँ मॉडल की भविष्यवाणियाँ और चेकपॉइंट्स संग्रहीत होंगे।
- num_train_epochs: एक प्रशिक्षण ईपोच।
- fp16/bf16: fp16/bf16 प्रशिक्षण अक्षम करें।
- per_device_train_batch_size: प्रशिक्षण के लिए प्रति GPU बैच आकार।
- per_device_eval_batch_size: मूल्यांकन के लिए प्रति GPU बैच आकार।
- gradient_accumulation_steps: अपडेट प्रक्रिया के दौरान ग्रेडिएंट्स को एकत्र करने के लिए आवश्यक चरणों की संख्या।
- gradient_checkpointing: ग्रेडिएंट चेकपॉइंटिंग सक्षम करना।
- max_grad_norm: ग्रेडिएंट क्लिपिंग।
- learning_rate: प्रारंभिक लर्निंग रेट।
- weight_decay: बायस/LayerNorm वेट्स को छोड़कर सभी लेयर्स पर वेट डिके लागू होती है।
- Optim: मॉडल ऑप्टिमाइज़र (AdamW ऑप्टिमाइज़र)।
- lr_scheduler_type: लर्निंग रेट शेड्यूल।
- max_steps: प्रशिक्षण चरणों की संख्या।
- warmup_ratio: रैखिक वॉर्मअप के लिए चरणों का अनुपात।
- group_by_length: यह प्रदर्शन को काफी बेहतर कर सकता है और प्रशिक्षण को तेज कर सकता है।
- save_steps: हर 25 अपडेट स्टेप्स पर चेकपॉइंट सेव करें।
- logging_steps: हर 25 अपडेट स्टेप्स पर लॉग करें।
training_params = TrainingArguments(
output_dir="./results",
num_train_epochs=1,
per_device_train_batch_size=4,
gradient_accumulation_steps=1,
optim="paged_adamw_32bit",
save_steps=25,
logging_steps=25,
learning_rate=2e-4,
weight_decay=0.001,
fp16=False,
bf16=False,
max_grad_norm=0.3,
max_steps=-1,
warmup_ratio=0.03,
group_by_length=True,
lr_scheduler_type="constant",
report_to="tensorboard"
)9. मॉडल फाइन-ट्यूनिंग
सुपरवाइज़्ड फाइन-ट्यूनिंग (SFT) मानव फीडबैक से रिइनफोर्समेंट लर्निंग (RLHF) में एक प्रमुख चरण है। HuggingFace की TRL लाइब्रेरी SFT मॉडल बनाने और उन्हें आपके डेटासेट पर कुछ पंक्तियों के कोड से ट्रेन करने के लिए उपयोग में आसान API प्रदान करती है। यह रिइनफोर्समेंट लर्निंग का उपयोग करके भाषा मॉडल ट्रेन करने के टूल्स के साथ आती है—सुपरवाइज़्ड फाइन-ट्यूनिंग से शुरू होकर, फिर रिवार्ड मॉडलिंग और अंततः प्रॉक्सिमल पॉलिसी ऑप्टिमाइज़ेशन (PPO) तक।
हम SFT Trainer को मॉडल, डेटासेट, Lora कॉन्फ़िगरेशन, टोकनाइज़र और प्रशिक्षण पैरामीटर प्रदान करेंगे।
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
peft_config=peft_params,
dataset_text_field="text",
max_seq_length=None,
tokenizer=tokenizer,
args=training_params,
packing=False,
)हम .train() का उपयोग करके Llama 2 मॉडल को नए डेटासेट पर फाइन-ट्यून करेंगे। मॉडल को 1 ईपोच पूरा करने में डेढ़ घंटा लगा।

मॉडल को ट्रेन करने के बाद, हम मॉडल एडेप्टर और टोकनाइज़र को सेव करेंगे। आप समान API का उपयोग करके मॉडल को Hugging Face पर अपलोड भी कर सकते हैं।
trainer.model.save_pretrained(new_model)
trainer.tokenizer.save_pretrained(new_model)

10. मूल्यांकन
अब हम Tensorboard के इंटरैक्टिव सत्र में प्रशिक्षण के परिणामों की समीक्षा कर सकते हैं।
from tensorboard import notebook
log_dir = "results/runs"
notebook.start("--logdir {} --port 4000".format(log_dir))

अपने फाइन-ट्यून किए गए मॉडल का परीक्षण करने के लिए, हम transformers के टेक्स्ट जनरेशन पाइपलाइन का उपयोग करेंगे और “Leonardo Da Vinci कौन हैं?” जैसे सरल प्रश्न पूछेंगे।
logging.set_verbosity(logging.CRITICAL)
prompt = "Who is Leonardo Da Vinci?"
pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=200)
result = pipe(f"<s>[INST] {prompt} [/INST]")
print(result[0]['generated_text'])आउटपुट:
मॉडल एक सुसंगत और विस्तृत उत्तर जनरेट करता है।
<s>[INST] Who is Leonardo Da Vinci? [/INST] Leonardo da Vinci (1452-1519) was an Italian polymath, artist, inventor, and engineer.
Da Vinci is widely considered one of the greatest painters of all time, and his works include the famous Mona Lisa. He was also an accomplished engineer, inventor, and anatomist, and his designs for machines and flight were centuries ahead of his time.
Da Vinci was born in the town of Vinci, Italy, and he was the illegitimate son of a local notary. Despite his humble origins, he was able to study art and engineering in Florence, and he became a renowned artist and inventor.
Da Vinci's work had a profound impact on the Renaissance, and his legacy continues to inspire artists, engineers, and inventors to this day. He
आइए एक और प्रश्न पूछते हैं।
prompt = "What is DataCamp Career track?"
result = pipe(f"<s>[INST] {prompt} [/INST]")
print(result[0]['generated_text'])आउटपुट:
Guanaco एक उच्च-गुणवत्ता वाला डेटासेट है जिसका उपयोग पहले अत्याधुनिक LLMs को फाइन-ट्यून करने के लिए किया गया है। पूरा Guanaco डेटासेट Hugging Face पर उपलब्ध है और इसमें विभिन्न प्राकृतिक भाषा कार्यों पर और भी बेहतर प्रदर्शन हासिल करने की क्षमता है।
<s>[INST] What is Datacamp Career track? [/INST] DataCamp Career Track is a program that offers a comprehensive learning experience to help you build your skills and prepare for a career in data science.
The program includes a range of courses, projects, and assessments that are designed to help you build your skills in data science. You will learn how to work with data, create visualizations, and build predictive models.
In addition to the technical skills, you will also learn how to communicate your findings to stakeholders and how to work with a team to solve complex problems.
The program is designed to be flexible, so you can learn at your own pace and on your own schedule. You will also have access to a community of learners and mentors who can provide support and guidance throughout the program.
Overall, DataCamp Career Track is a great way to build your skills and prepare for a career inयहाँ Colab Notebook है जिसमें कोड और आउटपुट दिए गए हैं, जो आपकी कोडिंग यात्रा में सहायता करेंगे।
अगले चरण में, आप LlamaIndex का उपयोग करके अपनी नई ट्रेनिंग मॉडल के साथ अपना AI अनुप्रयोग बना सकते हैं—इसके लिए LlamaIndex: Adding Personal Data to LLMs ट्यूटोरियल का अनुसरण करें। अपने प्रोजेक्ट के लिए प्रेरणा पाने हेतु 5 Projects Built with Generative Models and Open Source Tools देखें।
Llama 2 के बाद क्या बदला है
जुलाई 2023 में Llama 2 के रिलीज़ के बाद से, Meta ने कई नए मॉडल जारी किए हैं जिनमें बड़े सुधार हैं। Llama 3 (अप्रैल 2024) ने 128K-टोकन की बड़ी शब्दावली और सभी मॉडल आकारों में grouped query attention (GQA) पेश की। Llama 3.1 (जुलाई 2024) ने कॉन्टेक्स्ट लंबाई को 128K टोकन तक बढ़ाया और 405B पैरामीटर वाला वैरिएंट जोड़ा। Llama 3.2 (सितंबर 2024) ने मल्टीमॉडल क्षमताएँ और एज डिवाइसेज़ के लिए अनुकूलित हल्के 1B/3B मॉडल पेश किए।
फाइन-ट्यूनिंग इकोसिस्टम भी काफ़ी विकसित हुआ है। Unsloth जैसे टूल मानक Hugging Face PEFT की तुलना में 2x तेज़ प्रशिक्षण और 60% कम मेमोरी उपयोग प्रदान करते हैं, और LLaMA-Factory जैसे GUI-आधारित टूल बिना कोड लिखे फाइन-ट्यूनिंग को सुलभ बनाते हैं। इस ट्यूटोरियल में कवर किए गए QLoRA और PEFT के मूल सिद्धांत अब भी नींव हैं — हम नवीनतम तरीकों के लिए Llama 3.1 के फाइन-ट्यूनिंग और Llama 3.2 के फाइन-ट्यूनिंग पर हमारे ट्यूटोरियल्स देखने की सलाह देते हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने QLoRA, PEFT, और SFT जैसी तकनीकों का उपयोग करके स्मृति और कंप्यूट सीमाओं को पार करते हुए LLaMA 2 मॉडल को फाइन-ट्यून करना सीखा। transformers, accelerate, peft, trl, और bitsandbytes जैसी Hugging Face लाइब्रेरीज़ का लाभ उठाकर, हम 7B पैरामीटर वाले LLaMA 2 मॉडल को एक कंज्यूमर GPU पर सफलतापूर्वक फाइन-ट्यून करने में सक्षम रहे।
कुल मिलाकर, इस ट्यूटोरियल ने दिखाया कि हालिया प्रगति ने बड़े भाषा मॉडलों का लोकतंत्रीकरण और पहुँच संभव बना दी है, जिससे सीमित संसाधनों के साथ शौक़ीन लोग भी अत्याधुनिक AI बना सकते हैं।
सीखना जारी रखने के लिए, नए मॉडलों पर व्यावहारिक अभ्यास हेतु Fine-Tuning with Llama 3 कोर्स करें, या इस ट्यूटोरियल में उपयोग किए गए इकोसिस्टम की समझ गहरी करने के लिए Working with Hugging Face कोर्स लें। बुनियादी जानकारी के लिए, Introduction to LLMs in Python या Large Language Models (LLMs) Concepts कोर्स से शुरुआत करें, और AI Fundamentals स्किल ट्रैक को एक्सप्लोर करें।
संदर्भ
- Fine-Tune Your Own Llama 2 Model in a Colab Notebook
- Supervised Fine-tuning Trainer
- TRL - Transformer Reinforcement Learning
- PEFT
- Making LLMs even more accessible with bitsandbytes, 4-bit quantization and QLoRA
- Llama 2: Open Foundation and Fine-Tuned Chat Models (Touvron et al., 2023)
- QLoRA: Efficient Finetuning of Quantized Language Models (Dettmers et al., 2023)
एक प्रमाणित डेटा साइंटिस्ट के रूप में, मैं अत्याधुनिक तकनीक का उपयोग करके नवाचारी मशीन लर्निंग अनुप्रयोग बनाने के लिए उत्साहित रहता/रहती हूँ। स्पीच रिकॉग्निशन, डेटा विश्लेषण और रिपोर्टिंग, MLOps, संवादात्मक AI और NLP में मजबूत पृष्ठभूमि के साथ, मैंने ऐसे बुद्धिमान सिस्टम विकसित करने में अपनी विशेषज्ञता निखारी है जो वास्तविक प्रभाव डाल सकें। तकनीकी दक्षता के अलावा, मैं जटिल अवधारणाओं को स्पष्ट और संक्षिप्त भाषा में प्रस्तुत करने में भी निपुण हूँ। परिणामस्वरूप, मैं डेटा साइंस पर एक मांग में रहने वाला/वाली ब्लॉगर बन गया/गई हूँ, और डेटा प्रोफेशनलों के बढ़ते समुदाय के साथ अपने अनुभव और विचार साझा करता/करती हूँ। वर्तमान में, मैं कंटेंट निर्माण और संपादन पर केंद्रित हूँ, बड़े भाषा मॉडलों के साथ काम करते हुए ऐसा प्रभावशाली और आकर्षक कंटेंट विकसित कर रहा/रही हूँ जो व्यवसायों और व्यक्तियों दोनों को अपने डेटा का अधिकतम लाभ उठाने में मदद कर सके।
Llama 2 QLoRA फाइन-ट्यूनिंग FAQs
QLoRA क्या है और यह LoRA से कैसे अलग है?
QLoRA (Quantized Low-Rank Adaptation) दो मेमोरी-बचत तकनीकों को जोड़ता है: यह बेस मॉडल को 4-बिट क्वांटाइज़्ड प्रिसिजन में लोड करता है और उसके ऊपर छोटे Low-Rank Adapter लेयर्स को प्रशिक्षित करता है। मानक LoRA बेस मॉडल को 16-बिट प्रिसिजन (FP16) में रखता है, जिसके लिए 7B मॉडल हेतु लगभग 16 GB VRAM की आवश्यकता होती है। QLoRA जमे हुए बेस मॉडल को 4 बिट में क्वांटाइज़ कर इसे 6–8 GB तक घटा देता है, जिससे T4 या RTX 3060 जैसे कंज्यूमर GPUs पर फाइन-ट्यून करना संभव हो जाता है। मानक बेंचमार्क्स पर LoRA और QLoRA के बीच गुणवत्ता का अंतर आमतौर पर 2% से कम रहता है।
क्या मैं बिना क्लाउड GPU के अपनी लोकल मशीन पर Llama 2 को फाइन-ट्यून कर सकता/सकती हूँ?
हाँ, यदि आपकी मशीन में कम से कम 8 GB VRAM और CUDA सपोर्ट वाला NVIDIA GPU है। RTX 3060 (12 GB), RTX 4060, या RTX 2080 Ti जैसे GPUs QLoRA के साथ अच्छी तरह काम करते हैं। M-सीरीज़ चिप्स वाले Apple Silicon उपयोगकर्ता भी Apple के MLX फ्रेमवर्क का उपयोग कर फाइन-ट्यून कर सकते हैं, यद्यपि प्रशिक्षण समकक्ष NVIDIA GPU की तुलना में धीमा होगा। उपयुक्त GPU रहित मशीनों के लिए, Google Colab (T4 GPU) या Kaggle जैसी मुफ्त क्लाउड विकल्प 7B मॉडल हेतु अच्छा काम करते हैं।
Llama 2 7B को फाइन-ट्यून करने में कितना समय लगता है?
प्रशिक्षण समय आपके GPU, डेटासेट आकार और कॉन्फ़िगरेशन पर निर्भर करता है। 1,000-सैंपल डेटासेट और 1 epoch के साथ मुफ्त Google Colab T4 GPU पर लगभग 1–2 घंटे लगते हैं। वही काम RTX 4090 पर 30–45 मिनट में पूरा हो सकता है। बड़े डेटासेट (10,000+ सैंपल) के लिए प्रशिक्षण रैखिक रूप से स्केल होता है — T4 पर 3–4 घंटे लग सकते हैं, जबकि RTX 4090 लगभग 1.5–2 घंटे में समाप्त कर सकता है।
Llama 2 फाइन-ट्यूनिंग के लिए किस डेटासेट फ़ॉर्मैट की आवश्यकता होती है?
Llama 2 वार्तालापीय डेटा को अपने चैट टेम्पलेट में स्वरूपित होने की अपेक्षा करता है: <s>[INST] user message [/INST] assistant response </s>। इस ट्यूटोरियल में उपयोग किया गया डेटासेट (mlabonne/guanaco-llama2-1k) पहले से इसी प्रकार फ़ॉर्मैट किया गया है। कस्टम डेटासेट्स के लिए, आप Hugging Face की datasets लाइब्रेरी का उपयोग करके JSON, CSV, या parquet फ़ाइलों से डेटा लोड कर सकते हैं और प्रीप्रोसेसिंग के दौरान Llama 2 प्रॉम्प्ट टेम्पलेट लागू कर सकते हैं।
क्या 2026 में Llama 2 को फाइन-ट्यून करना अब भी सार्थक है?
फाइन-ट्यूनिंग अवधारणाओं को समझने के लिए Llama 2 अब भी एक अच्छा लर्निंग संसाधन है, लेकिन प्रोडक्शन उपयोग मामलों के लिए Llama 3.1 और Llama 3.2 जैसे नए मॉडल प्रदर्शन, संदर्भ लंबाई और दक्षता में उल्लेखनीय सुधार प्रदान करते हैं। इस ट्यूटोरियल में कवर की गई QLoRA और PEFT तकनीकें सीधे नए मॉडलों पर लागू होती हैं। नवीनतम तरीकों के लिए हमारे Llama 3.1 के फाइन-ट्यूनिंग और Llama 3.2 के फाइन-ट्यूनिंग ट्यूटोरियल देखें।
