एक कप स्टारबक्स और दो घंटे के समय के साथ, आप अपने खुद के प्रशिक्षित ओपन-सोर्स बड़े पैमाने के मॉडल के मालिक हो सकते हैं। चिकित्सा, प्रोग्रामिंग , स्टॉक ट्रेडिंग और प्रेम सलाह जैसे विभिन्न कौशलों को बढ़ाने के लिए विभिन्न प्रशिक्षण डेटा दिशाओं के अनुसार मॉडल को ठीक-ठीक किया जा सकता है, जिससे आपका बड़े पैमाने का मॉडल आपके बारे में अधिक "समझ" बना सके। आइए ओपन-सोर्स डॉल्फिन शेड्यूलर द्वारा सशक्त ओपन-सोर्स बड़े पैमाने के मॉडल को प्रशिक्षित करने का प्रयास करें!
ChatGPT के जन्म ने निस्संदेह हमें AI के भविष्य के लिए प्रत्याशा से भर दिया है। इसकी परिष्कृत अभिव्यक्ति और शक्तिशाली भाषा समझने की क्षमता ने दुनिया को चकित कर दिया है। हालाँकि, क्योंकि ChatGPT एक सेवा (SaaS) के रूप में एक सॉफ़्टवेयर के रूप में प्रदान किया जाता है, व्यक्तिगत गोपनीयता लीक और कॉर्पोरेट डेटा सुरक्षा के मुद्दे प्रत्येक उपयोगकर्ता और कंपनी के लिए चिंता का विषय हैं। अधिक से अधिक खुले स्रोत वाले बड़े पैमाने के मॉडल उभर रहे हैं, जिससे व्यक्तियों और कंपनियों के लिए अपने स्वयं के मॉडल रखना संभव हो गया है। हालांकि, ओपन-सोर्स बड़े पैमाने के मॉडल के साथ आरंभ करना, अनुकूलन करना और उपयोग करना प्रवेश के लिए उच्च बाधाएं हैं, जिससे सभी के लिए आसानी से उनका उपयोग करना मुश्किल हो जाता है। इसे संबोधित करने के लिए, हम Apache DolphinScheduler का उपयोग करते हैं, जो ओपन-सोर्स बड़े पैमाने के मॉडल के प्रशिक्षण, ट्यूनिंग और तैनाती के लिए एक-क्लिक समर्थन प्रदान करता है। यह हर किसी को बहुत कम लागत पर और तकनीकी विशेषज्ञता के साथ अपने डेटा का उपयोग करके अपने बड़े पैमाने के मॉडल को प्रशिक्षित करने में सक्षम बनाता है।
हमारा लक्ष्य न केवल पेशेवर एआई इंजीनियरों के लिए है, बल्कि जीपीटी में रुचि रखने वाले किसी भी व्यक्ति के लिए एक मॉडल होने की खुशी का आनंद लेना है जो उन्हें बेहतर "समझता" है। हमारा मानना है कि हर किसी के पास अपने एआई सहायक को आकार देने का अधिकार और क्षमता है। Apache DolphinScheduler का सहज ज्ञान युक्त कार्यप्रवाह इसे संभव बनाता है। एक बोनस के रूप में, Apache DolphinScheduler एक बड़ा डेटा और AI शेड्यूलिंग टूल है, जिसके GitHub पर 10,000 से अधिक सितारे हैं। यह Apache Software Foundation के तहत एक शीर्ष-स्तरीय परियोजना है, जिसका अर्थ है कि आप इसे मुफ्त में उपयोग कर सकते हैं और बिना किसी व्यावसायिक मुद्दों की चिंता किए कोड को संशोधित कर सकते हैं।
चाहे आप एक उद्योग विशेषज्ञ हैं जो अपने स्वयं के डेटा के साथ एक मॉडल को प्रशिक्षित करना चाहते हैं, या एक एआई उत्साही हैं जो गहन शिक्षण मॉडल के प्रशिक्षण को समझना और तलाशना चाहते हैं, हमारा वर्कफ़्लो आपके लिए सुविधाजनक सेवाएं प्रदान करेगा। यह जटिल पूर्व-प्रसंस्करण, मॉडल प्रशिक्षण और अनुकूलन चरणों को हल करता है, और केवल 1-2 घंटे के सरल संचालन की आवश्यकता होती है, साथ ही 20 घंटे चलने का समय अधिक "समझ" चैटजीपीटी बड़े पैमाने पर मॉडल बनाने के लिए।
तो चलिए शुरू करते हैं ये जादुई सफर! आइए सभी के लिए एआई का भविष्य लेकर आएं।
सबसे पहले, आपको 3090 ग्राफिक्स कार्ड की आवश्यकता है। यदि आपके पास डेस्कटॉप कंप्यूटर है, तो आप इसे सीधे उपयोग कर सकते हैं। यदि नहीं, तो ऑनलाइन जीपीयू के साथ किराए के लिए कई होस्ट हैं। यहां हम आवेदन करने के लिए एक उदाहरण के रूप में AutoDL का उपयोग करते हैं। https://www.autodl.com/home खोलें, रजिस्टर करें और लॉग इन करें। उसके बाद, आप स्क्रीन पर दिखाए गए चरण 1, 2 और 3 के अनुसार कंप्यूटिंग पावर मार्केट में संबंधित सर्वर चुन सकते हैं।
यहां, RTX 3090 ग्राफिक्स कार्ड चुनने की सिफारिश की गई है, जो उच्च लागत-प्रदर्शन अनुपात प्रदान करता है। टेस्टिंग के बाद पता चला है कि RTX 3090 को एक से दो लोग ऑनलाइन टास्क के लिए इस्तेमाल कर सकते हैं। यदि आप तेज प्रशिक्षण और प्रतिक्रिया गति चाहते हैं, तो आप अधिक शक्तिशाली ग्राफिक्स कार्ड का विकल्प चुन सकते हैं। प्रशिक्षण में लगभग 20 घंटे लगते हैं, जबकि परीक्षण में लगभग 2-3 घंटे लगते हैं। 40 युआन के बजट के साथ, आप इसे आसानी से कर सकते हैं।
कम्युनिटी मिरर पर क्लिक करें, और फिर नीचे दिए लाल बॉक्स WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521
डालें। आप नीचे दिखाए अनुसार छवि का चयन कर सकते हैं। वर्तमान में, केवल V1 संस्करण उपलब्ध है। भविष्य में, जैसे ही नए संस्करण जारी होते हैं, आप नवीनतम संस्करण चुन सकते हैं।
यदि आपको मॉडल को कई बार प्रशिक्षित करने की आवश्यकता है, तो हार्ड डिस्क की क्षमता को लगभग 100GB तक विस्तारित करने की अनुशंसा की जाती है।
इसे बनाने के बाद, निम्न छवि में दिखाए गए प्रगति बार के पूर्ण होने की प्रतीक्षा करें।
इंटरफ़ेस पर अपने स्वयं के ओपन-सोर्स बड़े पैमाने के मॉडल को तैनात और डिबग करने के लिए, आपको डॉल्फ़िन शेड्यूलर सॉफ़्टवेयर शुरू करने की आवश्यकता है, और हमें निम्नलिखित कॉन्फ़िगरेशन कार्य करने की आवश्यकता है:
दो तरीके उपलब्ध हैं। आप वह चुन सकते हैं जो आपकी पसंद के अनुरूप हो:
नीचे दिखाए गए JupyterLab बटन पर क्लिक करें।
पेज ज्यूपिटरलैब पर रीडायरेक्ट करेगा; वहां से, आप प्रवेश करने के लिए "टर्मिनल" पर क्लिक कर सकते हैं।
2. टर्मिनल के माध्यम से लॉग इन करें (कोडर्स के लिए):
हम निम्नलिखित इमेज में दिखाए गए बटन से SSH कनेक्शन कमांड प्राप्त कर सकते हैं।
फिर, टर्मिनल के माध्यम से कनेक्शन स्थापित करें।
DolphinScheduler में, सभी मेटाडेटा को डेटाबेस में संग्रहीत किया जाता है, जिसमें वर्कफ़्लो परिभाषाएँ, पर्यावरण कॉन्फ़िगरेशन, किरायेदार जानकारी आदि शामिल हैं। जब DolphinScheduler लॉन्च किया जाता है, तो उपयोगकर्ताओं के लिए इन वर्कफ़्लोज़ को देखना सुविधाजनक बनाने के लिए, हम सीधे पूर्व-निर्धारित वर्कफ़्लो मेटाडेटा को कॉपी करके आयात कर सकते हैं। स्क्रीन से।
टर्मिनल का उपयोग करके, निम्न निर्देशिका पर नेविगेट करें:
cd apache-dolphinscheduler-3.1.5-bin
कमांड निष्पादित करें: vim import_ds_metadata.sh
import_ds_metadata.sh
फ़ाइल खोलने के लिए। फ़ाइल की सामग्री इस प्रकार है:
Set variables
Hostname
HOST="xxx.xxx.xxx.x"
UsernameUSERNAME="root"PasswordPASSWORD="xxxx"PortPORT=3306Database to import intoDATABASE="ds315_llm_test"SQL filenameSQL_FILE="ds315_llm.sql"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD -e "CREATE DATABASE $DATABASE;"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD $DATABASE < $SQL_FILE
अपने सार्वजनिक नेटवर्क पर एक MySQL डेटाबेस के प्रासंगिक कॉन्फ़िगरेशन मानों के साथ xxx.xxx.xxx.x और xxxx को बदलें (आप अलीबाबा क्लाउड, टेनसेंट क्लाउड पर एक के लिए आवेदन कर सकते हैं या खुद को स्थापित कर सकते हैं)। फिर निष्पादित करें:
bash import_ds_metadata.sh
निष्पादन के बाद, यदि रुचि हो, तो आप डेटाबेस में संबंधित मेटाडेटा की जांच कर सकते हैं (MySQL से कनेक्ट करें और देखें, यदि आप कोड से परिचित नहीं हैं तो इस चरण को छोड़ दें)।
सर्वर कमांड लाइन में, निम्न फ़ाइल खोलें और पहले से आयातित डेटाबेस के साथ डॉल्फिन शेड्यूलर को जोड़ने के लिए कॉन्फ़िगरेशन को संशोधित करें:
/root/apache-dolphinscheduler-3.1.5-bin/bin/env/dolphinscheduler_env.sh
डेटाबेस अनुभाग में संबंधित कॉन्फ़िगरेशन को संशोधित करें, और अन्य अनुभागों को अपरिवर्तित छोड़ दें। 'होस्ट' और 'पासवर्ड' के मानों को आयातित डेटाबेस के कॉन्फ़िगरेशन मानों में बदलें, यानी, xxx.xxx.xxx.x और xxxx:
export DATABASE=mysqlexport SPRING_PROFILES_ACTIVE=${DATABASE}export SPRING_DATASOURCE_URL="jdbc:mysql://HOST:3306/ds315_llm_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false"export SPRING_DATASOURCE_USERNAME="root"export SPRING_DATASOURCE_PASSWORD="xxxxxx"......
कॉन्फ़िगर करने के बाद, निष्पादित करें (इस निर्देशिका /root/apache-dolphinscheduler-3.1.5-bin में भी):
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
एक बार निष्पादित होने के बाद, हम tail -200f standalone-server/logs/dolphinscheduler-standalone.log
उपयोग करके लॉग की जांच कर सकते हैं। इस बिंदु पर, डॉल्फिन शेड्यूलर आधिकारिक तौर पर लॉन्च किया गया है!
सेवा शुरू करने के बाद, हम ऑटोडीएल कंसोल (लाल रंग में हाइलाइट किए गए) में "कस्टम सर्विसेज" पर क्लिक करके यूआरएल पर रीडायरेक्ट कर सकते हैं:
URL खोलने पर, यदि उसमें 404 त्रुटि दिखाई देती है, तो चिंता न करें। URL में बस प्रत्यय /dolphinscheduler/ui संलग्न करें:
AutoDL मॉड्यूल पोर्ट 6006 खोलता है। DolphinScheduler के पोर्ट को 6006 पर कॉन्फ़िगर करने के बाद, आप इसे प्रदान किए गए प्रवेश बिंदु के माध्यम से एक्सेस कर सकते हैं। हालाँकि, URL पुनर्निर्देशन के कारण, आपको 404 त्रुटि का सामना करना पड़ सकता है। ऐसे मामलों में, आपको मैन्युअल रूप से यूआरएल को पूरा करना होगा।
उपयोगकर्ता नाम: admin
पासवर्ड: dolphinscheduler123
लॉग इन करने के बाद, "विकुना" नामक पूर्वनिर्धारित परियोजना को देखने के लिए "परियोजना प्रबंधन" पर क्लिक करें। परियोजना में प्रवेश करने के लिए "विकुना" पर क्लिक करें।
विकुना परियोजना में प्रवेश करने पर, आपको तीन कार्यप्रवाह दिखाई देंगे: प्रशिक्षण, परिनियोजन और किल_सर्विस। आइए उनके उपयोगों और बड़े मॉडलों को कॉन्फ़िगर करने और अपने डेटा को प्रशिक्षित करने के बारे में जानें।
संबंधित कार्यप्रवाह निष्पादित करने के लिए आप नीचे दिए गए रन बटन पर क्लिक कर सकते हैं।
प्रशिक्षण कार्यप्रवाह पर क्लिक करने पर, आपको दो परिभाषाएँ दिखाई देंगी। एक लोरा के माध्यम से मॉडल को ठीक करने के लिए है (मुख्य रूप से अल्पाका-लोरा, https://github.com/tloen/alpaca-lora का उपयोग करके), और दूसरा अंतिम मॉडल प्राप्त करने के लिए प्रशिक्षित मॉडल को बेस मॉडल के साथ मर्ज करना है .
बड़े मॉडलों को तैनात करने के लिए वर्कफ़्लो (मुख्य रूप से FastChat, https://github.com/lm-sys/FastChat का उपयोग करके)। यह पहले तैनात किए गए मॉडल को मारने के लिए Kill_service का आह्वान करेगा, फिर क्रमिक रूप से नियंत्रक शुरू करेगा, मॉडल जोड़ देगा, और फिर ग्रैडियो वेब सेवा खोलेगा।
प्रारंभ पैरामीटर इस प्रकार हैं:
इस वर्कफ़्लो का उपयोग तैनात मॉडल को खत्म करने और GPU मेमोरी को रिलीज़ करने के लिए किया जाता है। इस वर्कफ़्लो का कोई पैरामीटर नहीं है, और आप इसे सीधे चला सकते हैं। यदि आपको तैनात सेवा को रोकने की आवश्यकता है (जैसे कि जब आपको मॉडल को फिर से प्रशिक्षित करने की आवश्यकता हो या जब अपर्याप्त जीपीयू मेमोरी हो), तो आप तैनात सेवा को मारने के लिए सीधे Kill_service कार्यप्रवाह निष्पादित कर सकते हैं।
कुछ उदाहरणों के माध्यम से जाने के बाद, आपका डिप्लॉयमेंट पूरा हो जाएगा। अब आइए एक नजर डालते हैं व्यावहारिक संचालन पर:
प्रशिक्षण कार्यप्रवाह निष्पादित करके और डिफ़ॉल्ट पैरामीटर का चयन करके सीधे कार्यप्रवाह प्रारंभ करें।
लॉग देखने के लिए संबंधित कार्य पर राइट-क्लिक करें, जैसा कि नीचे दिखाया गया है:
आप साइडबार के नीचे बाईं ओर टास्क इंस्टेंस पैनल में कार्य की स्थिति और लॉग भी देख सकते हैं। प्रशिक्षण प्रक्रिया के दौरान, आप वर्तमान प्रशिक्षण चरणों, हानि मैट्रिक्स, शेष समय आदि सहित लॉग की जाँच करके प्रगति की निगरानी कर सकते हैं। वर्तमान चरण को इंगित करने वाली एक प्रगति पट्टी है, जहाँ चरण = (डेटा आकार * युग) / बैच आकार।
हमारा डिफ़ॉल्ट डेटा /root/demo-data/llama_data.json
में है। वर्तमान डेटा स्रोत Huatuo है, जो चीनी चिकित्सा डेटा का उपयोग करके तैयार किया गया एक चिकित्सा मॉडल है। हाँ, हमारा उदाहरण एक पारिवारिक डॉक्टर को प्रशिक्षित कर रहा है:
यदि आपके पास किसी विशिष्ट क्षेत्र में डेटा है, तो आप अपने स्वयं के डेटा को इंगित कर सकते हैं, डेटा प्रारूप इस प्रकार है:
उदाहरण के लिए:
{"instruction": "calculation", "input": "1+1 equals?", "output": "2"}
कृपया ध्यान दें कि आप निर्देश और इनपुट फ़ील्ड को एक ही निर्देश फ़ील्ड में मर्ज कर सकते हैं। इनपुट फ़ील्ड को खाली भी छोड़ा जा सकता है।
प्रशिक्षण के दौरान, अपने स्वयं के डेटा को निष्पादित करने के लिए data_path पैरामीटर को संशोधित करें।
टिप्पणी:
पहले प्रशिक्षण निष्पादन के दौरान, बेस मॉडल को निर्दिष्ट स्थान से प्राप्त किया जाएगा, जैसे TheBlocke/vicuna-7B-1.1-HF। डाउनलोड करने की प्रक्रिया होगी, इसलिए कृपया डाउनलोड पूरा होने तक प्रतीक्षा करें। इस मॉडल की पसंद उपयोगकर्ता द्वारा निर्धारित की जाती है, और आप अन्य ओपन-सोर्स बड़े मॉडल डाउनलोड करना भी चुन सकते हैं (कृपया उनका उपयोग करते समय संबंधित लाइसेंस का पालन करें)।
नेटवर्क समस्याओं के कारण, बेस मॉडल डाउनलोड पहले प्रशिक्षण निष्पादन के आधे रास्ते में विफल हो सकता है। ऐसे मामलों में, आप असफल कार्य पर क्लिक कर सकते हैं और प्रशिक्षण जारी रखने के लिए इसे फिर से चलाना चुन सकते हैं। ऑपरेशन नीचे दिखाया गया है:
प्रशिक्षण को रोकने के लिए, आप स्टॉप बटन पर क्लिक कर सकते हैं, जो प्रशिक्षण के लिए उपयोग की जाने वाली GPU मेमोरी को रिलीज़ करेगा।
कार्यप्रवाह परिभाषा पृष्ठ पर, इसे चलाने के लिए परिनियोजित कार्यप्रवाह पर क्लिक करें और मॉडल को परिनियोजित करें।
यदि आपने अपने स्वयं के मॉडल को प्रशिक्षित नहीं किया है, तो आप vicuna-7b
मॉडल को तैनात करने के लिए डिफ़ॉल्ट पैरामीटर TheBloke/vicuna-7B-1.1-HF के साथ परिनियोजन कार्यप्रवाह निष्पादित कर सकते हैं, जैसा कि नीचे दी गई छवि में दिखाया गया है:
यदि आपने पिछले चरण में किसी मॉडल को प्रशिक्षित किया है, तो अब आप अपने मॉडल को परिनियोजित कर सकते हैं। परिनियोजन के बाद, आप अपने स्वयं के बड़े मॉडल का अनुभव कर सकते हैं। स्टार्टअप पैरामीटर इस प्रकार हैं, जहां आपको पिछले चरण से मॉडल के output_path
को भरने की आवश्यकता है:
अगला, परिनियोजित वर्कफ़्लो उदाहरण दर्ज करें। वर्कफ़्लो इंस्टेंस पर क्लिक करें, और फिर "तैनाती" उपसर्ग के साथ वर्कफ़्लो इंस्टेंस पर क्लिक करें।
कार्य लॉग देखने और हमारे बड़े मॉडल लिंक का स्थान खोजने के लिए राइट-क्लिक करें और "refresh_gradio_web_service" चुनें।
ऑपरेशन नीचे दिखाया गया है:
लॉग में, आपको एक लिंक मिलेगा जिसे सार्वजनिक रूप से एक्सेस किया जा सकता है, जैसे:
यहाँ दो लिंक हैं। लिंक 0.0.0.0:7860
तक पहुँचा नहीं जा सकता क्योंकि AutoDL केवल पोर्ट 6006 खोलता है, जो पहले से ही डॉल्फ़िन शेड्यूलर के लिए उपयोग किया जाता है। आप इसके नीचे दिए गए लिंक तक सीधे पहुंच सकते हैं, जैसे [https://81c9f6ce11eb3c37a4.gradio.live.](https://81c9f6ce11eb3c37a4.gradio.live.)
कृपया ध्यान दें कि यह लिंक आपके द्वारा तैनात किए जाने पर हर बार बदल सकता है, इसलिए आपको इसे लॉग से फिर से खोजने की आवश्यकता है।
एक बार जब आप लिंक दर्ज करते हैं, तो आप अपने स्वयं के चैटजीपीटी का वार्तालाप पृष्ठ देखेंगे!
हाँ! अब आपके पास अपना चैटजीपीटी है, और इसका डेटा केवल आपकी सेवा करता है!
और आपने केवल एक कप कॉफी ~~ की लागत से कम खर्च किया
आगे बढ़ें और अपने निजी चैटजीपीटी का अनुभव करें!
इस डेटा-संचालित और प्रौद्योगिकी-उन्मुख दुनिया में, एक समर्पित चैटजीपीटी मॉडल का अथाह मूल्य है। आर्टिफिशियल इंटेलिजेंस और डीप लर्निंग की प्रगति के साथ, हम एक ऐसे युग में हैं जहां व्यक्तिगत एआई सहायकों को आकार दिया जा सकता है। अपने स्वयं के चैटजीपीटी मॉडल का प्रशिक्षण और परिनियोजन हमें एआई को बेहतर ढंग से समझने और यह कैसे हमारी दुनिया को बदल रहा है, को समझने में मदद कर सकता है।
संक्षेप में, चैटजीपीटी मॉडल को अपने दम पर प्रशिक्षण और तैनात करने से आपको डेटा सुरक्षा और गोपनीयता की रक्षा करने, विशिष्ट व्यावसायिक आवश्यकताओं को पूरा करने, प्रौद्योगिकी लागतों को बचाने और डॉल्फिन शेड्यूलर जैसे वर्कफ़्लो टूल का उपयोग करके प्रशिक्षण प्रक्रिया को स्वचालित करने में मदद मिल सकती है। यह आपको स्थानीय कानूनों और विनियमों का पालन करने की भी अनुमति देता है। इसलिए, चैटजीपीटी मॉडल को अपने दम पर प्रशिक्षित करना और तैनात करना विचार करने के लिए एक उपयुक्त विकल्प है।
यहाँ भी प्रकाशित हुआ।