OpenAI के GPT-4 का फाइन-ट्यूनिंग: चरण-दर-चरण मार्गदर्शिका
यह चरण-दर-चरण ट्यूटोरियल GPT-4 की पूरी क्षमताओं का उपयोग करने की गहन पड़ताल प्रस्तुत करता है, फाइन-ट्यूनिंग के माध्यम से विशेष कार्यों के लिए इसके प्रदर्शन को बेहतर बनाता है。
OpenAI का अब तक का सबसे उन्नत मॉडल, Generative Pre-trained Transformer 4 (GPT-4), मार्च 2023 में लॉन्च हुआ, जो कृत्रिम बुद्धिमत्ता में एक बड़ी छलांग है और AI क्षमताओं के लिए नया मानदंड स्थापित करता है। ChatGPT Plus, OpenAI के API, और Microsoft Copilot के माध्यम से उपलब्ध, GPT-4 अपनी मल्टीमॉडल क्षमताओं के लिए खास है—खासकर GPT-4V के जरिए, जो इसे पाठ के साथ-साथ छवियों को भी प्रोसेस करने में सक्षम बनाता है और विभिन्न क्षेत्रों में नवाचारी अनुप्रयोगों का मार्ग प्रशस्त करता है।
GPT-4 की प्रगति के केंद्र में इसका ट्रांसफॉर्मर-आधारित ढांचा है, जिसे इंटरनेट और लाइसेंस प्राप्त स्रोतों से व्यापक डेटा पर व्यापक रूप से प्री-ट्रेन किया गया है और मानव फीडबैक तथा AI-चालित रिइनफोर्समेंट लर्निंग के मिश्रण से फाइन-ट्यून किया गया है। यह अनोखा दृष्टिकोण मॉडल को मानवीय नैतिक मानकों और नीतिगत अनुपालन के साथ बेहतर संरेखण की ओर ले जाने का लक्ष्य रखता है।
हालाँकि GPT-4 अपने पूर्ववर्ती GPT-3 पर सुधार है, यह उसके कुछ सीमित पहलुओं को भी विरासत में लेता है, जो बड़े भाषा मॉडलों और जनरेटिव AI में निहित जटिल चुनौतियों को रेखांकित करता है। इनमें से कुछ चुनौतियों का समाधान फाइन-ट्यूनिंग नामक प्रक्रिया से किया जा सकता है—जो इस ट्यूटोरियल का विषय है। इस ट्यूटोरियल के उद्देश्य हैं:
फाइन-ट्यूनिंग क्या है और इसे कब इस्तेमाल करना चाहिए, यह समझें
फाइन-ट्यूनिंग के सामान्य उपयोग मामलों को जानें
Python में OpenAI की फाइन-ट्यूनिंग API का चरण-दर-चरण कार्यान्वयन
हालाँकि, ध्यान देने योग्य है कि GPT-4 फाइन-ट्यूनिंग फिलहाल केवल प्रायोगिक एक्सेस में है, और पात्र डेवलपर्स फाइन-ट्यूनिंग UI के जरिए एक्सेस का अनुरोध कर सकते हैं। इसके बावजूद, यहाँ कवर की गई फाइन-ट्यूनिंग तकनीकें सभी GPT मॉडलों पर लागू होती हैं।
फाइन-ट्यूनिंग क्या है?
फाइन-ट्यूनिंग एक परिष्कृत प्रक्रिया है जो प्री-ट्रेन किए गए मॉडलों (जैसे GPT-4) को विशिष्ट कार्यों या डोमेनों के लिए निखारती है, प्रारंभिक प्रशिक्षण के दौरान विविध डेटासेट्स पर अर्जित मॉडल के व्यापक आधारभूत ज्ञान का लाभ उठाती है। इसमें कार्य-विशिष्ट डेटा के आधार पर मॉडल के पैरामीटर समायोजित करना शामिल है, जिससे इसके प्रदर्शन में सुधार होता है और यह विशिष्ट अनुप्रयोगों को अधिक सटीकता और दक्षता के साथ संभालने में सक्षम होता है।
फाइन-ट्यूनिंग के प्रभाव का एक सटीक उदाहरण है कि यह किसी मॉडल के विशेष प्रश्नों पर उत्तरों को बेहतर बनाता है। उदाहरण के लिए, एक प्री-ट्रेन मॉडल से “आकाश नीला क्यों है” पूछने पर वह एक साधारण व्याख्या दे सकता है। फाइन-ट्यूनिंग के माध्यम से, इस उत्तर को विस्तृत वैज्ञानिक संदर्भ के साथ समृद्ध किया जा सकता है, जिससे यह शैक्षिक प्लेटफॉर्म जैसी विशेष अनुप्रयोगों के लिए और उपयुक्त हो जाता है।
फाइन-ट्यूनिंग की विधियाँ निर्देश-आधारित फाइन-ट्यूनिंग से लेकर, जहाँ मॉडलों को वांछित प्रतिक्रियाओं का प्रदर्शन करने वाले विशिष्ट उदाहरणों से प्रशिक्षित किया जाता है, पैरामीटर-एफिशिएंट फाइन-ट्यूनिंग (PEFT) तक फैली हैं, जो कंप्यूटेशनल संसाधनों को बचाने और विनाशकारी भूल से बचने के लिए केवल कुछ पैरामीटरों को अपडेट करती है।
इसके विपरीत, Retrieval Augmented Generation (RAG) एक अलग दृष्टिकोण है। RAG, जनरेशन प्रक्रिया के दौरान बाहरी स्रोतों से प्राप्त जानकारी को शामिल करके, रिट्रीवल-आधारित और जनरेटिव मॉडलों के तत्वों को जोड़ता है ताकि जनरेटेड सामग्री की गुणवत्ता में सुधार हो सके।
जहाँ फाइन-ट्यूनिंग का ध्यान विशेष कार्यों के लिए पूर्व-विद्यमान मॉडलों को अनुकूलित करने पर है, वहीं RAG सामग्री जनरेशन प्रक्रिया को समृद्ध करने के लिए बाहरी ज्ञान का एकीकरण करता है।
फाइन-ट्यूनिंग और RAG के बीच चयन अनुप्रयोग की विशिष्ट आवश्यकताओं पर निर्भर करता है—जैसे अद्यतन जानकारी की आवश्यकता, उपलब्ध कंप्यूटेशनल संसाधन, और कार्य-विशेषीकरण का अपेक्षित स्तर। फाइन-ट्यूनिंग प्री-ट्रेन मॉडलों के व्यापक ज्ञान-आधार का विशिष्ट कार्यों के लिए लाभ उठाने का सीधा तरीका देती है, जबकि RAG यह सुनिश्चित करने के लिए एक गतिशील दृष्टिकोण प्रदान करता है कि मॉडल जिस जानकारी का उपयोग करता है वह प्रासंगिक और सटीक हो।
फाइन-ट्यूनिंग कब उपयोग करें?
फाइन-ट्यूनिंग OpenAI के टेक्स्ट जनरेशन मॉडलों को विशेष आवश्यकताओं के अनुसार ढालने का एक शक्तिशाली तरीका है, लेकिन इसमें पर्याप्त समय और संसाधन लगते हैं। फाइन-ट्यूनिंग में कूदने से पहले, यह सलाह दी जाती है कि आप प्रॉम्प्ट इंजीनियरिंग, प्रॉम्प्ट चेइनिंग (जटिल कार्यों को सरल, क्रमबद्ध प्रॉम्प्ट्स में बाँटना), और फंक्शनों का उपयोग करके मॉडल के प्रदर्शन को अधिकतम करने की कोशिश करें। यह दृष्टिकोण कई कारणों से अनुशंसित है:
शुरुआत में मॉडल कुछ कार्यों में संघर्ष कर सकता है, लेकिन सही प्रॉम्प्ट तैयार करना परिणामों में उल्लेखनीय सुधार ला सकता है, जिससे कई मामलों में फाइन-ट्यूनिंग की आवश्यकता नहीं रहती।
प्रॉम्प्ट्स को समायोजित करना और प्रॉम्प्ट चेइनिंग या फंक्शन कॉलिंग जैसी रणनीतियाँ अपनाना त्वरित फीडबैक देता है, जिससे तेज़ी से इटरेशन संभव होता है। इसके विपरीत, फाइन-ट्यूनिंग में डेटासेट बनाना और मॉडल ट्रेन करना शामिल होता है, जिसमें अधिक समय लगता है।
भले ही फाइन-ट्यूनिंग अंततः आवश्यक हो जाए, प्रॉम्प्ट इंजीनियरिंग में किया गया शुरुआती काम बेकार नहीं जाता। अच्छी तरह से डिज़ाइन किए गए प्रॉम्प्ट्स को फाइन-ट्यूनिंग प्रक्रिया में शामिल करना या उन्हें फाइन-ट्यूनिंग तकनीकों के साथ मिलाना अक्सर सर्वोत्तम परिणाम देता है।
फाइन-ट्यूनिंग के सामान्य उपयोग-मामले
निम्नलिखित परिदृश्यों में फाइन-ट्यूनिंग विशेष रूप से लाभकारी हो सकती है:
आउटपुट की विशेषताओं का अनुकूलन। जब आपको मॉडल से किसी विशेष शैली, टोन, फ़ॉर्मैट या अन्य गुणात्मक पहलुओं का पालन कराना हो, तो फाइन-ट्यूनिंग उसके उत्तरों को उसी के अनुसार ढालने में मदद कर सकती है।
विश्वसनीयता बढ़ाना। ऐसे अनुप्रयोगों में जहाँ यह अत्यंत महत्वपूर्ण है कि मॉडल लगातार इच्छित प्रकार का आउटपुट दे, फाइन-ट्यूनिंग उसकी भरोसेमंदता में सुधार कर सकती है।
जटिल प्रॉम्प्ट्स का समाधान। यदि मॉडल जटिल निर्देशों का पालन करने में विफल रहता है, तो फाइन-ट्यूनिंग उसे ऐसे प्रॉम्प्ट्स को अधिक प्रभावी ढंग से समझने और निष्पादित करने में मदद कर सकती है।
एज केसेज़ का प्रबंधन। फाइन-ट्यूनिंग मॉडल को अनेक एज केसेज़ को विशिष्ट, पूर्वनिर्धारित तरीकों से संभालने में सक्षम बना सकती है, जिससे उसकी बहुमुखी प्रतिभा बढ़ती है।
नई कौशल या कार्य सीखना। जब मॉडल को किसी नए कौशल या कार्य से परिचित कराना हो, जिसे केवल प्रॉम्प्ट में समेटना कठिन हो, फाइन-ट्यूनिंग उसे आवश्यक क्षमताओं से लैस कर सकती है।
Python का उपयोग करके OpenAI के GPT मॉडलों की फाइन-ट्यूनिंग: चरण-दर-चरण मार्गदर्शिका
OpenAI के मॉडलों की स्वामित्व प्रकृति के कारण, यदि आप किसी OpenAI मॉडल को फाइन-ट्यून करना चाहते हैं, तो आपको OpenAI की फाइन-ट्यूनिंग API का उपयोग करना होगा। इस प्रक्रिया में मॉडल को ट्रेन करने के लिए आपका डेटा OpenAI के सर्वरों पर अपलोड करना शामिल है।
वर्तमान में, API के माध्यम से फाइन-ट्यूनिंग के लिए केवल निम्नलिखित मॉडल समर्थित हैं:
gpt-3.5-turbo-0125,
gpt-3.5-turbo-1106,
gpt-3.5-turbo-0613,
babbage-002,
davinci-002
GPT-4 फाइन-ट्यूनिंग प्रायोगिक एक्सेस में है, और पात्र डेवलपर्स फाइन-ट्यूनिंग UI के जरिए एक्सेस का अनुरोध कर सकते हैं। उपयोग किए गए मॉडल की परवाह किए बिना, फाइन-ट्यूनिंग की प्रक्रिया और इस ट्यूटोरियल का कोड समान रहता है।
OpenAI GPT मॉडलों की फाइन-ट्यूनिंग के 6 चरण
1. प्रशिक्षण डेटा तैयार करें
यह सबसे महत्वपूर्ण चरण है। फाइन-ट्यून किए गए मॉडल की गुणवत्ता सीधे उस डेटा पर निर्भर करती है जिसका आप मॉडल को फाइन-ट्यून करने के लिए निर्माण करेंगे। OpenAI API के लिए, डेटा jsonl फ़ॉर्मैट में संग्रहीत होना चाहिए।
JSONL फ़ॉर्मैट एक टेक्स्ट फ़ॉर्मैट है जहाँ हर पंक्ति एक अलग JSON ऑब्जेक्ट होती है, जिससे बड़े डेटासेट्स को पंक्ति-दर-पंक्ति प्रोसेस करना सुविधाजनक हो जाता है। यह फ़ॉर्मैट विशेष रूप से उस डेटा को संभालने में उपयोगी है जिसे अपनी संरचना खोए बिना व्यक्तिगत रिकॉर्ड्स में आसानी से विभाजित किया जा सकता है।
इस ट्यूटोरियल के लिए, मैंने केवल पाँच उदाहरणों वाला सैंपल डेटा बनाया है। डेटा में मशीन लर्निंग के विभिन्न विषयों पर प्रश्न और Shakespeare की शैली में उत्तर शामिल हैं।
इस ट्यूटोरियल के लिए मैंने बनाया हुआ सैंपल डेटा:
{"messages":[{"role":"system","content":"You are teaching assistant for Machine Learning. You should help to user to answer on his question."},{"role":"user","content":"What is machine learning?"},{"role":"assistant","content":"'Tis but the art of teaching machines to think, to learn from data most fine, and decisions to link."}]}{"messages":[{"role":"system","content":"You are teaching assistant for Machine Learning. You should help to user to answer on his question."},{"role":"user","content":"How doth neural networks work?"},{"role":"assistant","content":"They're like the brains of yon digital beast, with layers many, and nodes that cease."}]}संचालित द्वारा
2. openai लाइब्रेरी स्थापित करना और API टोकन सेट करना
OpenAI API का उपयोग करके फाइन-ट्यूनिंग जॉब बनाने का पहला चरण फ़ाइल अपलोड करना है। इस API का उपयोग करने के लिए, आपके Python वातावरण में openai लाइब्रेरी इंस्टॉल होनी चाहिए।
अब अपने platform.openai.com खाते में लॉगिन करें और एक API टोकन जनरेट करें:
आप इसके बाद os लाइब्रेरी का उपयोग करके टोकन को एक environment variable के रूप में सेट कर सकते हैं।
import os
# Set the OPENAI_API_KEY environment variable
os.environ['OPENAI_API_KEY']='...'संचालित द्वारा
3. प्रशिक्षण फ़ाइल अपलोड करें
आपकी प्रशिक्षण फ़ाइल jsonl फ़ॉर्मैट में होनी चाहिए। फ़ाइल अपलोड होने के बाद, प्रोसेसिंग में कुछ समय लग सकता है। फ़ाइल अपलोड के लिए अधिकतम आकार 1 GB है। OpenAI सर्वर पर फ़ाइल अपलोड करने के लिए:
from openai import OpenAI
client = OpenAI()
client.files.create(file=open("train.jsonl","rb"),
purpose="fine-tune")संचालित द्वारा
आउटपुट:
FileObject(id='file-rIua39sJX1O64gzxTYfpvJx7',bytes=11165, created_at=1709499930, filename='train.jsonl',object='file', purpose='fine-tune', status='processed', status_details=None)संचालित द्वारा
4. एक फाइन-ट्यून किया हुआ मॉडल बनाएँ
फ़ाइल के सफलतापूर्वक अपलोड होने का आश्वासन मिलने के बाद, अगला चरण फाइन-ट्यूनिंग जॉब बनाना है। training_file वह फ़ाइल ID है जो प्रशिक्षण फ़ाइल OpenAI API पर अपलोड होने पर वापस मिली थी। फाइन-ट्यूनिंग जॉब शुरू करने के लिए:
from openai import OpenAI
client = OpenAI()
client.fine_tuning.jobs.create(
training_file="file-rIua39sJX1O64gzxTYfpvJx7",
model="gpt-3.5-turbo"#change to gpt-4-0613 if you have access)संचालित द्वारा
अतिरिक्त फाइन-ट्यूनिंग सेटिंग्स, जैसे validation_file या हाइपरपैरामीटर्स, कॉन्फ़िगर करने के लिए फाइन-ट्यूनिंग पर API दस्तावेज़ देखें।
फाइन-ट्यूनिंग जॉब्स के पूरा होने में लगने वाला समय मॉडल और डेटासेट के आकार पर निर्भर करता है—मिनटों से घंटों तक। उदाहरण के लिए, हमारे train.jsonl डेटासेट में केवल 50 उदाहरण होने और gpt-3.5-turbo मॉडल का उपयोग करने पर जॉब मात्र 7 मिनट में पूरा हो गया।
जॉब पूरा होने पर एक ईमेल पुष्टिकरण भी भेजा जाएगा।
फाइन-ट्यूनिंग जॉब सेटअप करने के अलावा, आपके पास वर्तमान जॉब्स की सूची देखने, किसी विशेष जॉब की स्थिति जाँचने, या किसी जॉब को रद्द करने का विकल्प भी है।
from openai import OpenAI
client = OpenAI()# List 10 fine-tuning jobs
client.fine_tuning.jobs.list(limit=10)# Retrieve the state of a fine-tune
client.fine_tuning.jobs.retrieve("...")# Cancel a job
client.fine_tuning.jobs.cancel("...")# List up to 10 events from a fine-tuning job
client.fine_tuning.jobs.list_events(fine_tuning_job_id="...", limit=10)# Delete a fine-tuned model (must be an owner of the org the model was created in)
client.models.delete("ft:gpt-3.5-turbo:xxx:xxx")\संचालित द्वारा
5. फाइन-ट्यून किए गए मॉडल का विश्लेषण करें
OpenAI प्रशिक्षण लॉस, प्रशिक्षण के लिए टोकन सटीकता, टेस्ट लॉस, और टेस्ट टोकन सटीकता जैसे प्रमुख प्रशिक्षण मेट्रिक्स प्रदान करता है। ये मेट्रिक्स यह सुनिश्चित करने में मदद करते हैं कि प्रशिक्षण अपेक्षा के अनुरूप आगे बढ़ रहा है—लॉस कम हो रहा है और टोकन सटीकता बढ़ रही है। सक्रिय फाइन-ट्यूनिंग जॉब के दौरान आप एक ईवेंट ऑब्जेक्ट में ये उपयोगी मेट्रिक्स देख सकते हैं।
{"object":"fine_tuning.job.event","id":"ftjob-Na7BnF5y91wwGJ4EgxtzVyDD","created_at":1693582679,"level":"info","message":"Step 100/100: training loss=0.00","data":{"step":100,"train_loss":1.805623287509661e-5,"train_mean_token_accuracy":1.0},"type":"metrics"}संचालित द्वारा
आप यह जानकारी UI पर भी देख सकते हैं।
6. फाइन-ट्यून किए गए मॉडल का उपयोग
जॉब के सफलतापूर्वक पूरा होने पर, जॉब विवरण में fine_tuned_model फ़ील्ड शामिल होगा, जिसमें मॉडल का नाम दिखेगा। आप इस मॉडल को API कॉल कर सकते हैं और उसी मॉडल से प्रतिक्रिया प्राप्त कर सकते हैं जिसे हमने अभी ट्यून किया है।
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="ft:gpt-3.5-turbo-0613:personal::8k01tfYd",
messages=[{"role":"system","content":"You are a teaching assistant for Machine Learning. You should help to user to answer on his question."},{"role":"user","content":"What is a loss function?"}])print(completion.choices[0].message)संचालित द्वारा
आउटपुट:
ChatCompletionMessage(content="To measure how far we falter, it guides our way, our hope's defaulter.", role='assistant', function_call=None, tool_calls=None)संचालित द्वारा
निष्कर्ष
इस ट्यूटोरियल ने आपको OpenAI के GPT मॉडल की फाइन-ट्यूनिंग की प्रक्रिया से अवगत कराया, जो LLM की व्यापक क्षमताओं का उपयोग विशिष्ट डोमेन अनुप्रयोगों के लिए करने का एक उन्नत कदम है। फाइन-ट्यूनिंग हमें भाषा मॉडल की प्रतिक्रियाओं को परिष्कृत करने देती है, जिससे वे विशेष कार्यों, शैलियों या डोमेनों को अधिक सटीकता और दक्षता के साथ संभालने में सक्षम होते हैं।
यह ट्यूटोरियल मॉडल को फाइन-ट्यून करने के लिए OpenAI Python API का उपयोग करता है। यदि आप बिना एक भी लाइन कोड लिखे UI के माध्यम से यही करना सीखना पसंद करते हैं, तो Datacamp पर How to Fine Tune GPT 3.5 ट्यूटोरियल देखें।
चूँकि GPT ओपन-सोर्स मॉडल नहीं है, इसलिए फाइन-ट्यूनिंग की प्रक्रिया अपेक्षाकृत सरल है और केवल एक API कॉल करना शामिल है। यह बात ओपन-सोर्स मॉडलों जैसे llama-2, Mistral, Stable Diffusion आदि की फाइन-ट्यूनिंग के मामले में अलग होती है। यदि आप विभिन्न ओपन-सोर्स मॉडलों की फाइन-ट्यूनिंग सीखने में रुचि रखते हैं, तो DataCamp पर ये ब्लॉग देखें:
OpenAI का अब तक का सबसे उन्नत मॉडल, Generative Pre-trained Transformer 4 (GPT-4), मार्च 2023 में लॉन्च हुआ, जो कृत्रिम बुद्धिमत्ता में एक बड़ी छलांग है और AI क्षमताओं के लिए नया मानदंड स्थापित करता है। ChatGPT Plus, OpenAI के API, और Microsoft Copilot के माध्यम से उपलब्ध, GPT-4 अपनी मल्टीमॉडल क्षमताओं के लिए खास है—खासकर GPT-4V के जरिए, जो इसे पाठ के साथ-साथ छवियों को भी प्रोसेस करने में सक्षम बनाता है और विभिन्न क्षेत्रों में नवाचारी अनुप्रयोगों का मार्ग प्रशस्त करता है।
GPT-4 की प्रगति के केंद्र में इसका ट्रांसफॉर्मर-आधारित ढांचा है, जिसे इंटरनेट और लाइसेंस प्राप्त स्रोतों से व्यापक डेटा पर व्यापक रूप से प्री-ट्रेन किया गया है और मानव फीडबैक तथा AI-चालित रिइनफोर्समेंट लर्निंग के मिश्रण से फाइन-ट्यून किया गया है। यह अनोखा दृष्टिकोण मॉडल को मानवीय नैतिक मानकों और नीतिगत अनुपालन के साथ बेहतर संरेखण की ओर ले जाने का लक्ष्य रखता है।
हालाँकि GPT-4 अपने पूर्ववर्ती GPT-3 पर सुधार है, यह उसके कुछ सीमित पहलुओं को भी विरासत में लेता है, जो बड़े भाषा मॉडलों और जनरेटिव AI में निहित जटिल चुनौतियों को रेखांकित करता है। इनमें से कुछ चुनौतियों का समाधान फाइन-ट्यूनिंग नामक प्रक्रिया से किया जा सकता है—जो इस ट्यूटोरियल का विषय है। इस ट्यूटोरियल के उद्देश्य हैं:
हालाँकि, ध्यान देने योग्य है कि GPT-4 फाइन-ट्यूनिंग फिलहाल केवल प्रायोगिक एक्सेस में है, और पात्र डेवलपर्स फाइन-ट्यूनिंग UI के जरिए एक्सेस का अनुरोध कर सकते हैं। इसके बावजूद, यहाँ कवर की गई फाइन-ट्यूनिंग तकनीकें सभी GPT मॉडलों पर लागू होती हैं।
फाइन-ट्यूनिंग क्या है?
फाइन-ट्यूनिंग एक परिष्कृत प्रक्रिया है जो प्री-ट्रेन किए गए मॉडलों (जैसे GPT-4) को विशिष्ट कार्यों या डोमेनों के लिए निखारती है, प्रारंभिक प्रशिक्षण के दौरान विविध डेटासेट्स पर अर्जित मॉडल के व्यापक आधारभूत ज्ञान का लाभ उठाती है। इसमें कार्य-विशिष्ट डेटा के आधार पर मॉडल के पैरामीटर समायोजित करना शामिल है, जिससे इसके प्रदर्शन में सुधार होता है और यह विशिष्ट अनुप्रयोगों को अधिक सटीकता और दक्षता के साथ संभालने में सक्षम होता है।
फाइन-ट्यूनिंग के प्रभाव का एक सटीक उदाहरण है कि यह किसी मॉडल के विशेष प्रश्नों पर उत्तरों को बेहतर बनाता है। उदाहरण के लिए, एक प्री-ट्रेन मॉडल से “आकाश नीला क्यों है” पूछने पर वह एक साधारण व्याख्या दे सकता है। फाइन-ट्यूनिंग के माध्यम से, इस उत्तर को विस्तृत वैज्ञानिक संदर्भ के साथ समृद्ध किया जा सकता है, जिससे यह शैक्षिक प्लेटफॉर्म जैसी विशेष अनुप्रयोगों के लिए और उपयुक्त हो जाता है।
फाइन-ट्यूनिंग की विधियाँ निर्देश-आधारित फाइन-ट्यूनिंग से लेकर, जहाँ मॉडलों को वांछित प्रतिक्रियाओं का प्रदर्शन करने वाले विशिष्ट उदाहरणों से प्रशिक्षित किया जाता है, पैरामीटर-एफिशिएंट फाइन-ट्यूनिंग (PEFT) तक फैली हैं, जो कंप्यूटेशनल संसाधनों को बचाने और विनाशकारी भूल से बचने के लिए केवल कुछ पैरामीटरों को अपडेट करती है।
इसके विपरीत, Retrieval Augmented Generation (RAG) एक अलग दृष्टिकोण है। RAG, जनरेशन प्रक्रिया के दौरान बाहरी स्रोतों से प्राप्त जानकारी को शामिल करके, रिट्रीवल-आधारित और जनरेटिव मॉडलों के तत्वों को जोड़ता है ताकि जनरेटेड सामग्री की गुणवत्ता में सुधार हो सके।
जहाँ फाइन-ट्यूनिंग का ध्यान विशेष कार्यों के लिए पूर्व-विद्यमान मॉडलों को अनुकूलित करने पर है, वहीं RAG सामग्री जनरेशन प्रक्रिया को समृद्ध करने के लिए बाहरी ज्ञान का एकीकरण करता है।
फाइन-ट्यूनिंग और RAG के बीच चयन अनुप्रयोग की विशिष्ट आवश्यकताओं पर निर्भर करता है—जैसे अद्यतन जानकारी की आवश्यकता, उपलब्ध कंप्यूटेशनल संसाधन, और कार्य-विशेषीकरण का अपेक्षित स्तर। फाइन-ट्यूनिंग प्री-ट्रेन मॉडलों के व्यापक ज्ञान-आधार का विशिष्ट कार्यों के लिए लाभ उठाने का सीधा तरीका देती है, जबकि RAG यह सुनिश्चित करने के लिए एक गतिशील दृष्टिकोण प्रदान करता है कि मॉडल जिस जानकारी का उपयोग करता है वह प्रासंगिक और सटीक हो।
फाइन-ट्यूनिंग कब उपयोग करें?
फाइन-ट्यूनिंग OpenAI के टेक्स्ट जनरेशन मॉडलों को विशेष आवश्यकताओं के अनुसार ढालने का एक शक्तिशाली तरीका है, लेकिन इसमें पर्याप्त समय और संसाधन लगते हैं। फाइन-ट्यूनिंग में कूदने से पहले, यह सलाह दी जाती है कि आप प्रॉम्प्ट इंजीनियरिंग, प्रॉम्प्ट चेइनिंग (जटिल कार्यों को सरल, क्रमबद्ध प्रॉम्प्ट्स में बाँटना), और फंक्शनों का उपयोग करके मॉडल के प्रदर्शन को अधिकतम करने की कोशिश करें। यह दृष्टिकोण कई कारणों से अनुशंसित है:
फाइन-ट्यूनिंग के सामान्य उपयोग-मामले
निम्नलिखित परिदृश्यों में फाइन-ट्यूनिंग विशेष रूप से लाभकारी हो सकती है:
Python का उपयोग करके OpenAI के GPT मॉडलों की फाइन-ट्यूनिंग: चरण-दर-चरण मार्गदर्शिका
OpenAI के मॉडलों की स्वामित्व प्रकृति के कारण, यदि आप किसी OpenAI मॉडल को फाइन-ट्यून करना चाहते हैं, तो आपको OpenAI की फाइन-ट्यूनिंग API का उपयोग करना होगा। इस प्रक्रिया में मॉडल को ट्रेन करने के लिए आपका डेटा OpenAI के सर्वरों पर अपलोड करना शामिल है।
वर्तमान में, API के माध्यम से फाइन-ट्यूनिंग के लिए केवल निम्नलिखित मॉडल समर्थित हैं:
GPT-4 फाइन-ट्यूनिंग प्रायोगिक एक्सेस में है, और पात्र डेवलपर्स फाइन-ट्यूनिंग UI के जरिए एक्सेस का अनुरोध कर सकते हैं। उपयोग किए गए मॉडल की परवाह किए बिना, फाइन-ट्यूनिंग की प्रक्रिया और इस ट्यूटोरियल का कोड समान रहता है।
OpenAI GPT मॉडलों की फाइन-ट्यूनिंग के 6 चरण
1. प्रशिक्षण डेटा तैयार करें
यह सबसे महत्वपूर्ण चरण है। फाइन-ट्यून किए गए मॉडल की गुणवत्ता सीधे उस डेटा पर निर्भर करती है जिसका आप मॉडल को फाइन-ट्यून करने के लिए निर्माण करेंगे। OpenAI API के लिए, डेटा
jsonlफ़ॉर्मैट में संग्रहीत होना चाहिए।JSONL फ़ॉर्मैट एक टेक्स्ट फ़ॉर्मैट है जहाँ हर पंक्ति एक अलग JSON ऑब्जेक्ट होती है, जिससे बड़े डेटासेट्स को पंक्ति-दर-पंक्ति प्रोसेस करना सुविधाजनक हो जाता है। यह फ़ॉर्मैट विशेष रूप से उस डेटा को संभालने में उपयोगी है जिसे अपनी संरचना खोए बिना व्यक्तिगत रिकॉर्ड्स में आसानी से विभाजित किया जा सकता है।
उदाहरण:
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}{"prompt": "<prompt text>", "completion": "<ideal generated text>"}{"prompt": "<prompt text>", "completion": "<ideal generated text>"}इस ट्यूटोरियल के लिए, मैंने केवल पाँच उदाहरणों वाला सैंपल डेटा बनाया है। डेटा में मशीन लर्निंग के विभिन्न विषयों पर प्रश्न और Shakespeare की शैली में उत्तर शामिल हैं।
इस ट्यूटोरियल के लिए मैंने बनाया हुआ सैंपल डेटा:
2. openai लाइब्रेरी स्थापित करना और API टोकन सेट करना
OpenAI API का उपयोग करके फाइन-ट्यूनिंग जॉब बनाने का पहला चरण फ़ाइल अपलोड करना है। इस API का उपयोग करने के लिए, आपके Python वातावरण में
openaiलाइब्रेरी इंस्टॉल होनी चाहिए।अब अपने platform.openai.com खाते में लॉगिन करें और एक API टोकन जनरेट करें:
आप इसके बाद
osलाइब्रेरी का उपयोग करके टोकन को एक environment variable के रूप में सेट कर सकते हैं।3. प्रशिक्षण फ़ाइल अपलोड करें
आपकी प्रशिक्षण फ़ाइल
jsonlफ़ॉर्मैट में होनी चाहिए। फ़ाइल अपलोड होने के बाद, प्रोसेसिंग में कुछ समय लग सकता है। फ़ाइल अपलोड के लिए अधिकतम आकार 1 GB है। OpenAI सर्वर पर फ़ाइल अपलोड करने के लिए:आउटपुट:
4. एक फाइन-ट्यून किया हुआ मॉडल बनाएँ
फ़ाइल के सफलतापूर्वक अपलोड होने का आश्वासन मिलने के बाद, अगला चरण फाइन-ट्यूनिंग जॉब बनाना है।
training_fileवह फ़ाइल ID है जो प्रशिक्षण फ़ाइल OpenAI API पर अपलोड होने पर वापस मिली थी। फाइन-ट्यूनिंग जॉब शुरू करने के लिए:अतिरिक्त फाइन-ट्यूनिंग सेटिंग्स, जैसे validation_file या हाइपरपैरामीटर्स, कॉन्फ़िगर करने के लिए फाइन-ट्यूनिंग पर API दस्तावेज़ देखें।
फाइन-ट्यूनिंग जॉब्स के पूरा होने में लगने वाला समय मॉडल और डेटासेट के आकार पर निर्भर करता है—मिनटों से घंटों तक। उदाहरण के लिए, हमारे train.jsonl डेटासेट में केवल 50 उदाहरण होने और gpt-3.5-turbo मॉडल का उपयोग करने पर जॉब मात्र 7 मिनट में पूरा हो गया।
जॉब पूरा होने पर एक ईमेल पुष्टिकरण भी भेजा जाएगा।
फाइन-ट्यूनिंग जॉब सेटअप करने के अलावा, आपके पास वर्तमान जॉब्स की सूची देखने, किसी विशेष जॉब की स्थिति जाँचने, या किसी जॉब को रद्द करने का विकल्प भी है।
5. फाइन-ट्यून किए गए मॉडल का विश्लेषण करें
OpenAI प्रशिक्षण लॉस, प्रशिक्षण के लिए टोकन सटीकता, टेस्ट लॉस, और टेस्ट टोकन सटीकता जैसे प्रमुख प्रशिक्षण मेट्रिक्स प्रदान करता है। ये मेट्रिक्स यह सुनिश्चित करने में मदद करते हैं कि प्रशिक्षण अपेक्षा के अनुरूप आगे बढ़ रहा है—लॉस कम हो रहा है और टोकन सटीकता बढ़ रही है। सक्रिय फाइन-ट्यूनिंग जॉब के दौरान आप एक ईवेंट ऑब्जेक्ट में ये उपयोगी मेट्रिक्स देख सकते हैं।
आप यह जानकारी UI पर भी देख सकते हैं।
6. फाइन-ट्यून किए गए मॉडल का उपयोग
जॉब के सफलतापूर्वक पूरा होने पर, जॉब विवरण में
fine_tuned_modelफ़ील्ड शामिल होगा, जिसमें मॉडल का नाम दिखेगा। आप इस मॉडल को API कॉल कर सकते हैं और उसी मॉडल से प्रतिक्रिया प्राप्त कर सकते हैं जिसे हमने अभी ट्यून किया है।आउटपुट:
निष्कर्ष
इस ट्यूटोरियल ने आपको OpenAI के GPT मॉडल की फाइन-ट्यूनिंग की प्रक्रिया से अवगत कराया, जो LLM की व्यापक क्षमताओं का उपयोग विशिष्ट डोमेन अनुप्रयोगों के लिए करने का एक उन्नत कदम है। फाइन-ट्यूनिंग हमें भाषा मॉडल की प्रतिक्रियाओं को परिष्कृत करने देती है, जिससे वे विशेष कार्यों, शैलियों या डोमेनों को अधिक सटीकता और दक्षता के साथ संभालने में सक्षम होते हैं।
यह ट्यूटोरियल मॉडल को फाइन-ट्यून करने के लिए OpenAI Python API का उपयोग करता है। यदि आप बिना एक भी लाइन कोड लिखे UI के माध्यम से यही करना सीखना पसंद करते हैं, तो Datacamp पर How to Fine Tune GPT 3.5 ट्यूटोरियल देखें।
चूँकि GPT ओपन-सोर्स मॉडल नहीं है, इसलिए फाइन-ट्यूनिंग की प्रक्रिया अपेक्षाकृत सरल है और केवल एक API कॉल करना शामिल है। यह बात ओपन-सोर्स मॉडलों जैसे llama-2, Mistral, Stable Diffusion आदि की फाइन-ट्यूनिंग के मामले में अलग होती है। यदि आप विभिन्न ओपन-सोर्स मॉडलों की फाइन-ट्यूनिंग सीखने में रुचि रखते हैं, तो DataCamp पर ये ब्लॉग देखें:
फाइन-ट्यूनिंग LLM पर अधिक शुरुआती संसाधनों के लिए, Datacamp पर An Introductory Guide to Fine-Tuning LLMs देखें।