Connect with us

LLM рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди рдкрд░ рдкреВрд░реНрдг рдЧрд╛рдЗрдб

рдкреНрд░реЙрдореНрдкреНрдЯ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ

LLM рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди рдкрд░ рдкреВрд░реНрдг рдЧрд╛рдЗрдб

mm
Synthetic data generation using LLM

लार्ज लैंग्वेज मॉडल (LLMs) मानव-जैसे पाठ के निर्माण के लिए शक्तिशाली उपकरण नहीं हैं, बल्कि उच्च-गुणवत्ता वाले सिंथेटिक डेटा के निर्माण के लिए भी हैं। यह क्षमता हमें एआई विकास के तरीके को बदलने के लिए प्रेरित कर रही है, विशेष रूप से उन परिदृश्यों में जहां वास्तविक दुनिया के डेटा की कमी, महंगी या गोपनीयता-संवेदनशील है। इस व्यापक गाइड में, हम एलएलएम-चालित सिंथेटिक डेटा जेनरेशन का अन्वेषण करेंगे, इसके तरीकों, अनुप्रयोगों और सर्वोत्तम प्रथाओं में गहराई से जाने के लिए।

एलएलएम के साथ सिंथेटिक डेटा जेनरेशन का परिचय

सिंथेटिक डेटा जेनरेशन एलएलएम का उपयोग करके इन उन्नत एआई मॉडलों को वास्तविक दुनिया के डेटा की नकल करने वाले कृत्रिम डेटासेट बनाने के लिए किया जाता है। इस दृष्टिकोण के कई फायदे हैं:

  1. लागत-प्रभावशीलता: सिंथेटिक डेटा का निर्माण वास्तविक दुनिया के डेटा को इकट्ठा करने और एनोटेट करने की तुलना में अक्सर सस्ता होता है।
  2. गोपनीयता सुरक्षा: सिंथेटिक डेटा संवेदनशील जानकारी के संपर्क में आने के बिना बनाया जा सकता है।
  3. स्केलेबिलिटी: एलएलएम विभिन्न प्रकार के डेटा को तेजी से बड़ी मात्रा में उत्पन्न कर सकते हैं।
  4. अनुकूलन: डेटा को विशिष्ट उपयोग के मामलों या परिदृश्यों के लिए अनुकूलित किया जा सकता है।

आइए एलएलएम का उपयोग करके सिंथेटिक डेटा जेनरेशन की मूल प्रक्रिया को समझना शुरू करें:

from transformers import AutoTokenizer, AutoModelForCausalLM

# प्री-ट्रेन्ड एलएलएम लोड करें
model_name = "gpt2-large"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# सिंथेटिक डेटा जेनरेशन के लिए प्रॉम्प्ट परिभाषित करें
prompt = "एक स्मार्टफोन के लिए ग्राहक समीक्षा उत्पन्न करें:"

# सिंथेटिक डेटा जेनरेट करें
input_ids = tokenizer.encode(prompt, return_tensors="pt")
output = model.generate(input_ids, max_length=100, num_return_sequences=1)

# उत्पन्न पाठ को डिकोड और प्रिंट करें
synthetic_review = tokenizer.decode(output[0], skip_special_tokens=True)
print(synthetic_review)

यह सरल उदाहरण दिखाता है कि कैसे एलएलएम सिंथेटिक ग्राहक समीक्षा उत्पन्न कर सकता है। हालांकि, एलएलएम-चालित सिंथेटिक डेटा जेनरेशन की वास्तविक शक्ति अधिक परिष्कृत तकनीकों और अनुप्रयोगों में निहित है।

2. सिंथेटिक डेटा जेनरेशन के लिए उन्नत तकनीकें

2.1 प्रॉम्प्ट इंजीनियरिंग

प्रॉम्प्ट इंजीनियरिंग एलएलएम को उच्च-गुणवत्ता वाले सिंथेटिक डेटा उत्पन्न करने के लिए मार्गदर्शन करने के लिए महत्वपूर्ण है। प्रॉम्प्ट को सावधानी से तैयार करके, हम उत्पन्न डेटा के विभिन्न पहलुओं जैसे कि शैली, सामग्री, और प्रारूप को नियंत्रित कर सकते हैं।

एक अधिक परिष्कृत प्रॉम्प्ट का उदाहरण:

prompt = """
एक स्मार्टफोन के लिए विस्तृत ग्राहक समीक्षा उत्पन्न करें जिसमें निम्नलिखित विशेषताएं हों:
- ब्रांड: {brand}
- मॉडल: {model}
- मुख्य विशेषताएं: {features}
- रेटिंग: {rating}/5 स्टार

समीक्षा 50-100 शब्दों के बीच होनी चाहिए और इसमें सकारात्मक और नकारात्मक दोनों पहलुओं को शामिल किया जाना चाहिए।

समीक्षा:
"""
brands = ["एप्पल", "सैमसंग", "गूगल", "वनप्लस"]
models = ["आईफोन 13 प्रो", "गैलेक्सी एस21", "पिक्सल 6", "9 प्रो"]
features = ["5जी, ओएलईडी डिस्प्ले, ट्रिपल कैमरा", "120Hz रिफ्रेश रेट, 8K वीडियो", "एआई-पावर्ड कैमरा, 5जी", "फास्ट चार्जिंग, 120Hz डिस्प्ले"]
ratings = [4, 3, 5, 4]

# कई समीक्षाएं उत्पन्न करें
for brand, model, feature, rating in zip(brands, models, features, ratings):
filled_prompt = prompt.format(brand=brand, model=model, features=feature, rating=rating)
input_ids = tokenizer.encode(filled_prompt, return_tensors="pt")
output = model.generate(input_ids, max_length=200, num_return_sequences=1)
synthetic_review = tokenizer.decode(output[0], skip_special_tokens=True)
print(f"समीक्षा {brand} {model} के लिए:\n{synthetic_review}\n")

यह दृष्टिकोण अधिक नियंत्रित और विविध सिंथेटिक डेटा जेनरेशन की अनुमति देता है, जो विशिष्ट परिदृश्यों या उत्पाद प्रकारों के लिए तैयार किया जा सकता है।

2.2 फ्यू-शॉट लर्निंग

फ्यू-शॉट लर्निंग में एलएलएम को वांछित आउटपुट प्रारूप और शैली के कुछ उदाहरण प्रदान करना शामिल है। यह तकनीक उत्पन्न डेटा की गुणवत्ता और संगतता में काफी सुधार कर सकती है।

few_shot_prompt = """
एक ग्राहक सहायता बातचीत उत्पन्न करें जिसमें एक एजेंट (ए) और एक ग्राहक (सी) एक उत्पाद समस्या के बारे में बात कर रहे हैं। इस प्रारूप का पालन करें:

स: हैलो, मेरे नए हेडफ़ोन के साथ समस्या हो रही है। दायां ईयरबड़ काम नहीं कर रहा है।
ए: मुझे यह सुनकर खेद है। क्या आप मुझे बता सकते हैं कि आपके पास कौन सा हेडफ़ोन मॉडल है?
स: यह साउंडमैक्स प्रो 3000 है।
ए: धन्यवाद। क्या आपने हेडफ़ोन को रीसेट करने की कोशिश की है bằng उन्हें 10 सेकंड के लिए चार्जिंग केस में रखकर?
स: हाँ, मैंने यह कोशिश की, लेकिन इससे मदद नहीं मिली।
ए: मैं समझता हूँ। आइए फ़र्मवेयर अपडेट का प्रयास करें। क्या आप हमारी वेबसाइट पर जाकर नवीनतम फ़र्मवेयर डाउनलोड कर सकते हैं?

अब एक अलग उत्पाद समस्या के बारे में एक नई बातचीत उत्पन्न करें:

स: हाय, मुझे अभी मेरी नई स्मार्टवॉच मिली है, लेकिन यह चालू नहीं हो रही है।
"""
# बातचीत उत्पन्न करें
input_ids = tokenizer.encode(few_shot_prompt, return_tensors="pt")
output = model.generate(input_ids, max_length=500, num_return_sequences=1)
synthetic_conversation = tokenizer.decode(output[0], skip_special_tokens=True)
print(synthetic_conversation)

यह दृष्टिकोण एलएलएम को वांछित बातचीत संरचना और शैली को समझने में मदद करता है, जिससे अधिक वास्तविक सिंथेटिक ग्राहक सहायता बातचीत होती है।

2.3 कंडीशनल जेनरेशन

कंडीशनल जेनरेशन हमें उत्पन्न डेटा के विशिष्ट गुणों को नियंत्रित करने की अनुमति देता है। यह विशेष रूप से तब उपयोगी होता है जब हम विशिष्ट विशेषताओं वाले विविध डेटासेट बनाने की आवश्यकता होती है।

from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch

model = GPT2LMHeadModel.from_pretrained(“gpt2-medium”)
tokenizer = GPT2Tokenizer.from_pretrained(“gpt2-medium”)

def generate_conditional_text(prompt, condition, max_length=100):
input_ids = tokenizer.encode(prompt, return_tensors=”pt”)
attention_mask = torch.ones(input_ids.shape, dtype=torch.long, device=input_ids.device)

# स्थिति को एनकोड करें
condition_ids = tokenizer.encode(condition, add_special_tokens=False, return_tensors=”pt”)

# स्थिति को इनपुट_आईडी के साथ जोड़ें
input_ids = torch.cat([condition_ids, input_ids], dim=-1)
attention_mask = torch.cat([torch.ones(condition_ids.shape, dtype=torch.long, device=condition_ids.device), attention_mask], dim=-1)

output = model.generate(input_ids, attention_mask=attention_mask, max_length=max_length, num_return_sequences=1, no_repeat_ngram_size=2, do_sample=True, top_k=50, top_p=0.95, temperature=0.7)

return tokenizer.decode(output[0], skip_special_tokens=True)

# विभिन्न स्थितियों के साथ उत्पाद विवरण उत्पन्न करें
conditions = [“विलासिता”, “बजट-अनुकूल”, “पर्यावरण अनुकूल”, “उच्च-प्रौद्योगिकी”]
prompt = “एक बैकपैक का वर्णन करें:”

рдореИрдВ рдкрд┐рдЫрд▓реЗ рдкрд╛рдВрдЪ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдФрд░ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдХреА рдЖрдХрд░реНрд╖рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЦреБрдж рдХреЛ рдбреВрдмрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рдЬреБрдиреВрди рдФрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдиреЗ рдореБрдЭреЗ 50 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд┐рдз рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдЖрдИ/рдПрдордПрд▓ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реА рд▓рдЧрд╛рддрд╛рд░ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдиреЗ рдореБрдЭреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдЧреЗ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред