paint-brush
कोड की कुछ पंक्तियों में किसी भी एलएलएम को और अधिक सटीक कैसे बनाएंद्वारा@FrederikBussler
7,015 रीडिंग
7,015 रीडिंग

कोड की कुछ पंक्तियों में किसी भी एलएलएम को और अधिक सटीक कैसे बनाएं

द्वारा Frederik Bussler5m2023/08/14
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

चैटजीपीटी जैसे बड़े भाषा मॉडल (एलएलएम) के उद्भव के साथ एआई क्रांति बदल गई है, जो डेटा जटिलता पर जीत का संकेत देता है। इन एलएलएम को विशाल डेटासेट (एक पेटाबाइट तक) और मानव भाषा की जटिल प्रकृति के कारण चुनौतियों का सामना करना पड़ता है। क्लीनलैब जैसे डेटा-केंद्रित टूल ने एआई डेटा हैंडलिंग, डेटा सुधार प्रक्रियाओं को स्वचालित करने और प्रगति को लोकतांत्रिक बनाने में क्रांति ला दी है। वास्तविक दुनिया के डेटासेट में एनोटेशन त्रुटियों (7-50%) के कारण प्रशिक्षण में बाधा उत्पन्न होने के कारण डेटा-केंद्रित एआई आवश्यक है। ओपनएआई और क्लीनलैब जैसे उपकरण डेटा गुणवत्ता को प्राथमिकता देते हैं, जिससे मॉडल सटीकता में महत्वपूर्ण सुधार होता है। पायथन डेमो दिखाता है कि कैसे क्लीनलैब लेबल समस्याओं का पता लगाता है, डेटा को फ़िल्टर करता है और मॉडल को फिर से प्रशिक्षित करता है, जिसके परिणामस्वरूप 63% से 66% से अधिक की उल्लेखनीय सटीकता वृद्धि होती है। यह डेटा-केंद्रित दृष्टिकोण GPT-5 जैसे भविष्य के एलएलएम के लिए आशाजनक है।
featured image - कोड की कुछ पंक्तियों में किसी भी एलएलएम को और अधिक सटीक कैसे बनाएं
Frederik Bussler HackerNoon profile picture
0-item
1-item
2-item

एआई क्रांति को बनने में कई दशक लग गए थे। यह उत्साह से भरा क्षेत्र था, फिर भी अक्सर निराशाओं और " एआई विंटर्स " से घिरा रहता था। लेकिन हाल ही में, कुछ बदलाव आया। चैटजीपीटी, क्लाउड और बार्ड जैसे बड़े भाषा मॉडल (एलएलएम) ने एआई को प्रयोगशाला जिज्ञासा से मुख्यधारा तक पहुंचाया।


यह बदलाव न केवल एआई की जीत थी, बल्कि बड़े और अव्यवस्थित डेटा की जटिलताओं पर भी जीत थी। जैसा कि कहा जाता है, "कचरा अंदर, कचरा बाहर।" नए उपकरण उभर रहे हैं जो अंतर्निहित डेटा को बेहतर बनाने पर ध्यान केंद्रित करते हैं, इसलिए एलएलएम में सुधार करते हैं।


एलएलएम की दोहरी चुनौती

"बड़े भाषा मॉडल" शब्द में दो बड़ी चुनौतियाँ हैं। सबसे पहले, डेटा की विशाल मात्रा। हम GPT-4 के लिए एक पेटाबाइट (दस लाख गीगाबाइट) डेटा के बारे में बात कर रहे हैं, जिसमें लाखों किताबें, ब्लॉग, सोशल मीडिया पोस्ट, वीडियो ट्रांसक्रिप्ट और बहुत कुछ शामिल है। यह विशाल पैमाना विशाल क्षमता प्रदान करता है लेकिन महत्वपूर्ण तार्किक विचार भी प्रस्तुत करता है।


दूसरा, प्राकृतिक भाषा की जटिलता. संदर्भ-निर्भर, अस्पष्ट और विविध, भाषा डेटा एक जंगली जानवर है जिसे वश में करने के लिए सबसे अच्छे एल्गोरिदम भी संघर्ष करते हैं। इस सभी डेटा को सटीक रूप से लेबल करना असंभव है, जिसका अनिवार्य रूप से मतलब है कि अत्याधुनिक एलएलएम को भी गलत तरीके से लेबल किए गए ढेर सारे डेटा पर प्रशिक्षित किया जाता है।


इन चुनौतियों का सामना करने में, नए डेटा-केंद्रित उपकरण और पद्धतियाँ सामने आईं, जिससे एआई जो करने में सक्षम है उसमें सच्ची छलांग लगाई जा सके। क्लीनलैब और अन्य जैसे समाधानों ने विविध डेटा एकत्र करने, गुणवत्ता नियंत्रण को स्वचालित करने और भाषा को एआई मॉडल के लिए उपयुक्त रूप में संसाधित करने के तरीके पेश करना शुरू कर दिया।


ये उपकरण केवल वृद्धिशील सुधार ही प्रदान नहीं करते; उन्होंने एआई डेटा प्रबंधन के दृष्टिकोण को मौलिक रूप से नया आकार दिया। उन्होंने बड़े पैमाने पर भाषा डेटा को संभालने के कार्य को मैन्युअल, त्रुटि-प्रवण प्रक्रिया से स्वचालित, सटीक प्रक्रिया में बदल दिया, क्षेत्र को लोकतांत्रिक बनाया और अभूतपूर्व गति से प्रगति को सक्षम किया।


डेटा-केंद्रित AI की आवश्यकता क्यों है (पायथन डेमो के साथ)

एआई में, वास्तविक दुनिया के डेटासेट में 7-50% तक एनोटेशन त्रुटियां होती हैं। ये खामियाँ प्रशिक्षण और मूल्यांकन में काफी बाधा डालती हैं। डेटा-केंद्रित AI डेटासेट की गुणवत्ता में सुधार पर जोर देता है।


उदाहरण के लिए, ओपनएआई की रणनीति इस जोर को दर्शाती है: “हमने सभी अच्छे डेटा को छोड़ने के बजाय सभी खराब डेटा को फ़िल्टर करने को प्राथमिकता दी। ऐसा इसलिए है क्योंकि हम अपने मॉडल को बाद में अधिक डेटा के साथ नई चीजें सिखाने के लिए हमेशा बेहतर बना सकते हैं, लेकिन मॉडल को वह चीज़ भूलाना बहुत कठिन है जो उसने पहले ही सीखी है।


हालाँकि, डेटा को मैन्युअल रूप से फ़िल्टर करने का तरीका समय लेने वाला और महंगा है। क्लीनलैब पैकेज एक ओपन-सोर्स फ्रेमवर्क है जो आज डेटा-केंद्रित एआई का अभ्यास करने के लिए लोकप्रिय है। यह आपको लेबल त्रुटियों, आउटलेयर, बहाव और अधिक जैसे सामान्य डेटासेट मुद्दों का पता लगाने के लिए अपने प्रशिक्षित एमएल मॉडल के आउटपुट पर डेटा गुणवत्ता एल्गोरिदम चलाने की अनुमति देता है।


कोड की केवल कुछ पंक्तियों के साथ, आप छवि, पाठ, सारणीबद्ध और ऑडियो जैसे विभिन्न प्रकार के डेटा में समस्याओं को स्वचालित रूप से ढूंढ और पहचान सकते हैं। क्लीनलैब पैकेज का उपयोग करके, आप यह तय कर सकते हैं कि अपने डेटासेट और मॉडल को कैसे सुधारें, अपने एमएल मॉडल को फिर से प्रशिक्षित करें और अपने मौजूदा कोड में कोई बदलाव किए बिना इसके प्रदर्शन में सुधार देखें।


दूसरी ओर, क्लीनलैब स्टूडियो, क्लीनलैब पैकेज के विस्तार से कहीं अधिक है; यह एक नो-कोड प्लेटफ़ॉर्म है जिसे वास्तविक दुनिया के डेटासेट में समस्याओं को खोजने और ठीक करने के लिए डिज़ाइन किया गया है। यह केवल समस्याओं का पता लगाने तक ही सीमित नहीं है, बल्कि डेटा क्यूरेशन और सुधार को संभालने में भी आगे बढ़ता है, और यहां तक कि कच्चे डेटा को विश्वसनीय एमएल या एनालिटिक्स में बदलने के लगभग सभी कठिन हिस्सों को स्वचालित करता है।


आइए डेटा-केंद्रित एआई की शक्ति को प्रदर्शित करने के लिए क्लीनलैब पैकेज का उपयोग करें।


1. डेटा तैयार करना और फाइन-ट्यूनिंग करना

हम स्टैनफोर्ड पॉलिटेनेस डेटासेट से शुरुआत करते हैं। सुनिश्चित करें कि आपके पास ट्रेन और परीक्षण सेट लोड हैं। इस डेमो में, हम डेविंसी एलएलएम को 3-वर्ग वर्गीकरण के लिए पहले क्लीनलैब के बिना ठीक करेंगे, और फिर देखेंगे कि हम डेटा-केंद्रितता के साथ सटीकता में सुधार कैसे कर सकते हैं। हम किसी मॉडल को प्रशिक्षित करने के लिए एक सरल बैश कमांड चला सकते हैं।


!openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline"


जब यह हो जाता है, तो हम परीक्षण की सटीकता देखने के लिए fine_tunes.results एंडपॉइंट को क्वेरी कर सकते हैं।


!openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv

`डीएफ = पीडी.रीड_सीएसवी('बेसलाइन.सीएसवी')

बेसलाइन_एसीसी = df.iloc[-1]['वर्गीकरण/सटीकता']`


हमें 63% सटीकता का परिणाम मिलता है। आइए देखें कि क्या हम इसमें सुधार कर सकते हैं।


2. अनुमानित वर्ग संभावनाएँ प्राप्त करें

अब, आइए एम्बेडिंग की गणना करने और आउट-ऑफ-सैंपल अनुमानित वर्ग संभावनाओं को प्राप्त करने के लिए एक लॉजिस्टिक रिग्रेशन मॉडल को फिट करने के लिए ओपनएआई के एपीआई का उपयोग करें।


# Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding

embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values

# Get out-of-sample predicted class probabilities via cross-validation.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba")


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


from cleanlab.filter import find_label_issues

अब हम लेबल संबंधी समस्याओं वाले अनुमानित उदाहरणों के सूचकांक प्राप्त कर सकते हैं:


issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error


3. लेबल संबंधी समस्याओं को फ़िल्टर करें और पुनः प्रशिक्षित करें

अब, हमने संभावित रूप से गलत लेबल किए गए उदाहरणों के सूचकांक स्वचालित रूप से निकाल लिए हैं, ताकि हम उन्हें हटा सकें और एक नया क्लासिफायरियर प्रशिक्षित कर सकें।


# Remove the label errors

train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl")


आइए अब बेहतर डेटा के साथ अधिक मजबूत क्लासिफायरियर को प्रशिक्षित करें।


!openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped"


# Evaluate model on test data

!openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy']


हम 66% से अधिक की सटीकता प्राप्त करते हैं, एक अत्याधुनिक फाइन-ट्यून करने योग्य मॉडल (जीपीटी-3, जैसा कि आप जीपीटी-4 को फाइन-ट्यून नहीं कर सकते) में सुधार करते हुए, बिना किसी बदलाव के, केवल डेटासेट में स्वचालित रूप से सुधार करके। मॉडल को.


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


टेकअवे

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


इस गाइड में उल्लिखित दृष्टिकोण जीपीटी-5 जैसे भविष्य के उन्नत एलएलएम के साथ भी एआई मॉडल में और भी अधिक सटीकता और मजबूती को अनलॉक करने की कुंजी हो सकता है।