मेरे ब्लॉग पोस्ट में आपका स्वागत है जहां मैं LLama2 मॉडल के साथ काम करने की अपनी यात्रा और अंतर्दृष्टि साझा करूंगा। LLama2 मेटा द्वारा विकसित एक शानदार AI मॉडल है, और इसकी क्षमताओं का पता लगाना रोमांचक है जो GPT-3 की याद दिलाती हैं। इस पोस्ट में, हम LLama2 के विभिन्न पहलुओं पर प्रकाश डालेंगे, जिसमें इसका सेटअप, पूर्वापेक्षाएँ, अनुप्रयोग, महत्व और यहां तक कि हम इसे स्वयं कैसे प्रशिक्षित कर सकते हैं, इसकी एक झलक भी शामिल है। मैं आपको LLama2 के साथ अपने सीखने के अनुभव से रूबरू कराने के लिए रोमांचित हूं, जो कि मेरे हैकबॉट प्रोजेक्ट पर काम करने के दौरान प्राप्त हुआ।
LLama2 मेटा द्वारा बनाई गई एक अत्याधुनिक तकनीक है जिसे मूल रूप से AI मॉडल के रूप में वर्गीकृत किया गया है। इसे एक बहुत ही बुद्धिमान सहायक के रूप में सोचें जो मानव भाषा को समझ सकता है और लगभग मानव-जैसी सार्थक प्रतिक्रियाएँ दे सकता है। LLama2 का लक्ष्य लोगों और कंप्यूटरों के बीच बातचीत की सहजता और स्वाभाविकता में सुधार करना है।
इस बात पर विचार करें कि जब आप दोस्तों से बात करते हैं या ईमेल लिखते हैं तो आप खुद को मौखिक रूप से कैसे व्यक्त करते हैं; जिन लोगों से आप संवाद कर रहे हैं वे समझते हैं और प्रतिक्रिया देते हैं। संचालन में समान, LLama2 भारी मात्रा में टेक्स्ट डेटा को संसाधित कर सकता है और उससे सीख सकता है। इससे LLama2 के लिए विभिन्न कार्यों में सहायता करना संभव हो जाता है, जैसे जानकारी प्रदान करना और प्रश्नों का उत्तर देना, साथ ही सामग्री लिखना और समस्या-समाधान में सहायता करना।
LLama2 की अनूठी विशेषता यह है कि इसे सुगम्यता को ध्यान में रखकर बनाया गया था। यह एक लचीले उपकरण की तरह है जिसका उपयोग विभिन्न स्तरों की तकनीकी क्षमता वाला कोई भी व्यक्ति कर सकता है। LLama2 कृत्रिम बुद्धिमत्ता की क्षमता तक पहुँचने के लिए एक सरल दृष्टिकोण प्रदान करता है, चाहे आप डेवलपर हों, लेखक हों, छात्र हों, या इसमें रुचि रखने वाले कोई व्यक्ति हों।
संक्षेप में, LLama2 संभावनाओं का एक क्षेत्र बनाता है जहां कंप्यूटर मानव भाषा के साथ अधिक आसानी से और प्रभावी ढंग से बातचीत कर सकते हैं। प्रौद्योगिकी के साथ आपकी बातचीत अधिक उत्पादक और कुशल हो जाती है क्योंकि यह एक आभासी मित्र की तरह है जो पाठ और भाषा से जुड़ी गतिविधियों में आपकी मदद करने के लिए लगातार मौजूद रहता है।
आइए आपको आगे बढ़ने के लिए पहले कदमों से शुरुआत करें। कोड को कार्यान्वित करने के लिए आपको निम्नलिखित कार्यों पर विचार करना चाहिए।
अपनी भाषा चुनना:
एक विश्वसनीय यात्रा साथी के रूप में पायथन मेरी पहली पसंद थी। प्रोग्रामिंग समुदाय में इसकी अनुकूलनशीलता और व्यापक उपयोग के कारण LLama2 के साथ बातचीत करने के लिए यह एक बढ़िया विकल्प है। यदि आप पहले से ही पायथन से परिचित हैं तो आप अच्छी स्थिति में हैं।
आवश्यक चीज़ें स्थापित करना:
हगिंगफेस अकाउंट और लामा रिपॉजिटरी एक्सेस:
आरंभ करने के लिए आपको HuggingFace पर एक खाता बनाना होगा, जो एक ऐसा प्लेटफ़ॉर्म है जिसमें कई AI मॉडल और टूल मौजूद हैं। सुनिश्चित करें कि आपका खाता तैयार है. इसके अतिरिक्त, आप मेटा के लामा भंडार तक पहुंच प्राप्त करके LLama2 के लिए घटक पा सकते हैं।
C/C++ और Cmake इंस्टालेशन: LLama2 में LLama-cpp नामक एक घटक है, जिसके लिए आपके सिस्टम पर C/C++ और Cmake इंस्टालेशन की आवश्यकता होती है। ये उपकरण एलएलएएमए-सीपीपी के निर्माण के लिए आवश्यक हैं, इसलिए सुनिश्चित करें कि वे स्थापित हैं और उपयोग के लिए तैयार हैं।
लॉग इन करना और तैयार होना:
हगिंगफेस-सीएलआई लॉगिन: अपने हगिंगफेस खाते के विवरण को हाथ में लेकर, लॉग इन करने के लिए हगिंगफेस कमांड-लाइन इंटरफ़ेस का उपयोग करें। यह चरण आपको आपके खाते के टोकन का उपयोग करके हगिंगफेस प्लेटफॉर्म से जोड़ता है, जिससे आपको आवश्यक एआई संसाधनों तक पहुंच मिलती है। यदि आपको कोई टोकन नहीं मिल रहा है तो इस यूआरएल का उपयोग करके टोकन पाया जा सकता है।
आदेश हैं:
$ huggingface-cli login Token: Your_Token
एलएलएएमए-सीपीपी स्थापित करना: लामा-सीपीपी लामा और पायथन के लिए एक साथ काम करने के लिए एक निम्न-स्तरीय एक्सेस बाइंडर है और हमें अधिक लचीलापन प्रदान करता है।
स्थापना 2 तरीकों से की जा सकती है:
प्रत्यक्ष पायथन स्थापना:
pip install llama-cpp-python
संकलन विकल्प: इसके लिए, आपको मॉड्यूल को समझाने के लिए रीडमी की जांच करनी होगी: README.md
लैंगचैन स्थापित करना : लैंगचैन एक खुला ढांचा है जिसका उद्देश्य एलएलएम मॉडल अनुप्रयोग विकास को आसान बनाना है। हम इस कार्य के लिए विशेष रूप से LLamaCpp , PrompTemplate , CallbackManager और StreamingStdOutCallbackHandler मॉड्यूल का उपयोग करेंगे।
स्थापना के लिए आदेश है:
pip install langchain pip install langchainplus-sdk
इसका उपयोग Python कोड में कैसे किया जाता है?
अब मुख्य प्रश्न यह है कि इसका उपयोग कैसे किया जाता है?
इसका उत्तर देने के लिए एकीकरण भाग को चरणों में विभाजित किया जा सकता है।
मॉडल डाउनलोड और परिभाषा:
इसके लिए, मैं हैकबॉट के कोड का उल्लेख करूंगा।
सभी आवश्यक मॉड्यूल को कॉल करने के बाद हमें मॉडल का नाम और रेपो तय करना होगा जिससे हम इसे डाउनलोड करना चाहते हैं।
model_name_or_path = "localmodels/Llama-2-7B-Chat-ggml" model_basename = "llama-2-7b-chat.ggmlv3.q4_0.bin" model_path = hf_hub_download(repo_id=model_name_or_path, filename=model_basename)
उपरोक्त कोड में, उपयोग किया गया लामा मॉड्यूल एक 7बी या 7 बिलियन पैरामीटर मॉडल और लोकलमॉडल संस्करण लामा2 है।
फिर मॉडल_पथ को हगिंगफेस डाउनलोडर द्वारा मॉडल के डाउनलोड पथ द्वारा संदर्भित किया जाता है जो सिस्टम में रेपो से llama-2-7b-chat.ggmlv3.q4_0.bin डाउनलोड करता है।
पथ महत्वपूर्ण है क्योंकि LlamaCpp इसका उपयोग करने के लिए मॉडल स्थान को संदर्भित करेगा।
एक व्यक्तित्व और एक शीघ्र टेम्पलेट परिभाषित करें:
from langchain import PromptTemplate from langchain.callbacks.manager import CallbackManager from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler template = """ persona: {persona} You are a helpful, respectful, and honest cybersecurity analyst. Being a security analyst, you must scrutinize the details provided to ensure they are usable for penetration testing. Please ensure that your responses are socially unbiased and positive. If a question does not make any sense or is not factually coherent. If you don't know the answer to a question, please don't share false information. Keep your answers in English and do not divert from the question. If the answer to the asked question or query is complete, end your answer. Keep the answer accurate and do not skip details related to the query. Give your output in markdown format. """ prompt = PromptTemplate(template=template, input_variables=["persona"]) callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
हमें लामा को उसके व्यक्तित्व के रूप में उपयोग करने के लिए एक आधार टेम्पलेट देना होगा जैसे कि उसे निजी सहायक या साइबर सुरक्षा विश्लेषक के रूप में परिभाषित करना।
टेम्प्लेट परिभाषित करता है कि मॉडल किस प्रकार काम करेगा और अंतिम आउटपुट क्या होगा, इस पर इसका बहुत प्रभाव पड़ सकता है, इसलिए इसे अत्यधिक सावधानी से लिखा जाना चाहिए।
फिर टेम्प्लेट पर्सोना और पर्सोना का उपयोग करके प्रॉम्प्टटेम्पलेट मॉड्यूल का उपयोग करके प्रॉम्प्ट तैयार किया जाता है।
कॉलबैक मैनेजर का उपयोग एआई के आउटपुट को प्रदर्शित करने और इनपुट और आउटपुट लिंक को प्रबंधित करने के लिए किया जाता है।
LlamaCpp मॉड्यूल को परिभाषित करें:
llm = LlamaCpp( model_path=model_path, input={"temperature": 0.75, "max_length": 3500, "top_p": 1}, callback_manager=callback_manager, max_tokens=3500, n_batch=3500, n_gpu_layers=60, verbose=False, n_ctx=3500, streaming=False, )
अब इसे लागू करके, हमने एक चैटबॉट बैकबोन या एक कनेक्टर बनाया है और इसका उपयोग करके हम एआई मॉडल के साथ सक्रिय बातचीत शुरू कर सकते हैं।
हैकबॉट एक साइबर सुरक्षा-विशिष्ट चैट बॉट बनाने का मेरा प्रयास था और इस टूल में स्कैन डेटा, लॉग डेटा विश्लेषण टूल और कोड विश्लेषण क्षमताओं जैसी सुविधाएं हैं।
चैट इंटरेक्शन लूप:
while True: try: prompt_in = Prompt.ask('> ') # ... except KeyboardInterrupt: pass
यह लूप एक इंटरैक्टिव वातावरण बनाता है जहां उपयोगकर्ता कमांड या प्रॉम्प्ट इनपुट कर सकता है। कोड Prompt.ask('> ')
का उपयोग करके उपयोगकर्ता इनपुट की प्रतीक्षा करता है और प्रोग्राम को क्रैश किए बिना कीबोर्डइंटरप्ट (Ctrl+C) जैसे अपवादों को संभालता है। यह लूप सुनिश्चित करता है कि चैटबॉट उत्तरदायी बना रहे और उपयोगकर्ता के साथ लगातार बातचीत कर सके।
उपयोगकर्ता आदेशों को संसाधित करना:
if prompt_in == 'quit_bot': quit() elif prompt_in == 'clear_screen': clearscr() pass elif prompt_in == 'bot_banner': # ... elif prompt_in == 'save_chat': # ... elif prompt_in == 'static_code_analysis': # ... elif prompt_in == 'vuln_analysis': # ... elif prompt_in == 'contact_dev': # ... elif prompt_in == 'help_menu': # ... else: # ...
लूप के भीतर, उपयोगकर्ता इनपुट को विभिन्न कमांड कीवर्ड के विरुद्ध जांचा जाता है। इनपुट के आधार पर, कोड संबंधित क्रियाएं निष्पादित करता है। उदाहरण के लिए, यदि उपयोगकर्ता 'quit_bot' इनपुट करता है, तो प्रोग्राम से बाहर निकलने के लिए quit()
फ़ंक्शन को कॉल किया जाता है। यदि उपयोगकर्ता 'clear_screen' इनपुट करता है, तो clearscr()
फ़ंक्शन कंसोल स्क्रीन को साफ़ कर देता है। इसी तरह का तर्क अन्य आदेशों पर भी लागू होता है।
AI प्रतिक्रियाएँ उत्पन्न करना:
else: prompt = prompt_in print(Print_AI_out(prompt)) pass
यदि उपयोगकर्ता इनपुट किसी भी पूर्वनिर्धारित कमांड से मेल नहीं खाता है, तो इसे एआई के लिए एक संकेत के रूप में माना जाता है। इनपुट को prompt
वेरिएबल को सौंपा गया है और Print_AI_out(prompt)
फ़ंक्शन को दिए गए प्रॉम्प्ट के आधार पर एआई प्रतिक्रिया उत्पन्न करने के लिए कहा जाता है। फिर AI-जनित प्रतिक्रिया कंसोल पर मुद्रित होती है।
चैट इतिहास सहेजा जा रहा है:
def save_chat(chat_history: list[Any, Any]) -> None: f = open('chat_history.json', 'w+') f.write(json.dumps(chat_history)) f.close
save_chat
फ़ंक्शन वार्तालाप इतिहास को सहेजने के लिए ज़िम्मेदार है, जिसमें 'chat_history.json' नामक JSON फ़ाइल में उपयोगकर्ता संकेत और AI-जनरेटेड प्रतिक्रियाएँ दोनों शामिल हैं। यह फ़ंक्शन chat_history
सूची में डेटा को JSON प्रारूप में क्रमबद्ध करता है और इसे फ़ाइल में लिखता है।
भेद्यता विश्लेषण और स्थैतिक कोड विश्लेषण:
elif prompt_in == 'static_code_analysis': print(Markdown('----------')) language_used = Prompt.ask('Language Used> ') file_path = Prompt.ask('File Path> ') print(Markdown('----------')) print(static_analysis(language_used, file_path)) pass elif prompt_in == 'vuln_analysis': print(Markdown('----------')) scan_type = Prompt.ask('Scan Type > ') file_path = Prompt.ask('File Path > ') print(Markdown('----------')) print(vuln_analysis(scan_type, file_path)) pass
ये अनुभाग स्थैतिक कोड विश्लेषण और भेद्यता विश्लेषण करने के लिए उपयोगकर्ता आदेशों को संभालते हैं। उपयोगकर्ता को उपयोग की गई भाषा या स्कैन के प्रकार और फ़ाइल पथ जैसी जानकारी प्रदान करने के लिए कहा जाता है। फिर दिए गए डेटा के साथ संबंधित विश्लेषण फ़ंक्शन ( static_analysis
या vuln_analysis
) को कॉल किया जाता है, और एआई प्रतिक्रियाएं उत्पन्न करता है जिसमें विश्लेषण परिणाम शामिल होते हैं।
भेद्यता विश्लेषण: vuln_analysis
अनुभाग में, निम्नलिखित कोड उपयोगकर्ता को इनपुट के लिए संकेत देता है:
scan_type = Prompt.ask('Scan Type > ') file_path = Prompt.ask('File Path > ')
यहां, Prompt.ask
फ़ंक्शन का उपयोग उपयोगकर्ता से जानकारी के लिए इंटरैक्टिव तरीके से पूछने के लिए किया जाता है। उपयोगकर्ता को विश्लेषण किए जाने वाले डेटा के लिए स्कैन के प्रकार और फ़ाइल पथ को इनपुट करने के लिए कहा जाता है। ये इनपुट भेद्यता विश्लेषण के लिए आवश्यक हैं। एक बार जब उपयोगकर्ता ये इनपुट प्रदान करता है, तो एक प्रॉम्प्ट का उपयोग करके विश्लेषण शुरू किया जाता है जिसमें उपयोगकर्ता का इनपुट शामिल होता है:
prompt = f""" **Objective:** You are a Universal Vulnerability Analyzer powered by the Llama2 model. Your main objective is to analyze any provided scan data or log data to identify potential vulnerabilities in the target system or network. You can use the scan type or the scanner type to prepare a better report. **Instructions:** # ... (rest of the instructions) **Input Data:** You will receive the scan file data or log file data in the required format as input. Ensure the data is correctly parsed and interpreted for analysis. **Output Format:** The vulnerability analysis report should be organized as mentioned in the "Comprehensive Report" section. Please perform the vulnerability analysis efficiently, considering the security implications and accuracy, and generate a detailed report that helps users understand the potential risks and take appropriate actions. --- Provide the scan type: {scan_type} Provide the scan data or log data that needs to be analyzed: {file_data} """
इस प्रॉम्प्ट में, {scan_type}
और {file_data}
प्लेसहोल्डर्स को उपयोगकर्ता द्वारा इनपुट किए गए वास्तविक मानों से बदल दिया जाता है। यह डायनामिक प्रॉम्प्ट AI प्रतिक्रिया उत्पन्न करने के लिए LLama2 मॉडल को भेजा जाता है जो प्रदान किए गए स्कैन प्रकार और फ़ाइल डेटा के आधार पर विश्लेषण परिणाम प्रदान करता है।
स्टेटिक कोड विश्लेषण: इसी तरह, static_code_analysis
अनुभाग में, कोड उपयोगकर्ता को इनपुट के लिए संकेत देता है:
language_used = Prompt.ask('Language Used> ') file_path = Prompt.ask('File Path> ')
उपयोगकर्ता को उपयोग की गई प्रोग्रामिंग भाषा और उस कोड के लिए फ़ाइल पथ प्रदान करने के लिए कहा जाता है जिसका विश्लेषण करने की आवश्यकता है। ये इनपुट स्थैतिक कोड विश्लेषण करने के लिए महत्वपूर्ण हैं। भेद्यता विश्लेषण अनुभाग की तरह, LLama2 मॉडल के लिए उपयोगकर्ता के इनपुट को शामिल करने वाला एक प्रॉम्प्ट बनाया गया है:
prompt = f""" **Objective:** Analyze the given programming file details to identify and report bugs, vulnerabilities, and syntax errors. Additionally, search for potential exposure of sensitive information such as API keys, passwords, and usernames. **File Details:** - Programming Language: {language_used} - File Name: {file_path} - File Data: {file_data} """
यहां, {language_used}
और {file_path}
प्लेसहोल्डर्स को उपयोगकर्ता द्वारा प्रदान किए गए वास्तविक मानों से बदल दिया जाता है। इस गतिशील संकेत का उपयोग एआई प्रतिक्रिया उत्पन्न करने के लिए किया जाता है जो उपयोगकर्ता द्वारा प्रोग्रामिंग भाषा और फ़ाइल डेटा इनपुट के आधार पर विश्लेषण परिणाम प्रस्तुत करता है।
दोनों ही मामलों में, गतिशील संकेतों का उपयोग यह सुनिश्चित करता है कि LLama2-जनित प्रतिक्रियाएँ प्रासंगिक रूप से प्रासंगिक हैं और उपयोगकर्ता द्वारा अनुरोधित विशिष्ट विश्लेषण के अनुरूप हैं।
संपर्क जानकारी और सहायता मेनू:
elif prompt_in == 'contact_dev': console.print(Panel( Align.center( Group(Align.center(Markdown(contact_dev))), vertical="middle", ), title= "Dev Contact", border_style="red" ), style="bold green" ) pass elif prompt_in == 'help_menu': console.print(Panel( Align.center( Group(Align.center(Markdown(help_menu))), vertical="middle", ), title= "Help Menu", border_style="red" ), style="bold green" ) pass
ये अनुभाग डेवलपर के लिए संपर्क जानकारी ( contact_dev
) और सहायता मेनू सूची उपलब्ध कमांड ( help_menu
) प्रदर्शित करने के लिए कमांड को संभालते हैं। जब उपयोगकर्ता इन आदेशों को इनपुट करते हैं, तो संबंधित जानकारी रिच लाइब्रेरी का उपयोग करके एक अच्छे स्वरूपित पैनल में प्रदर्शित होती है।
मुख्य कार्य निष्पादन:
if __name__ == "__main__": main()
main
फ़ंक्शन, जिसमें संपूर्ण चैट इंटरैक्शन और हैंडलिंग लॉजिक शामिल है, केवल तभी निष्पादित किया जाता है जब स्क्रिप्ट सीधे चल रही हो (मॉड्यूल के रूप में आयातित नहीं)। यह लाइन सुनिश्चित करती है कि स्क्रिप्ट चलने पर चैटबॉट की मुख्य कार्यक्षमता निष्पादित हो।
आप मेरे Github रेपो: लिंक से संपूर्ण चैटबॉट देख और आज़मा सकते हैं
एआई मॉडल का प्रशिक्षण एक परिवर्तनकारी प्रक्रिया है जिसके लिए योजना और सटीकता की आवश्यकता होती है। यहां प्रक्रिया को पूरा करने के लिए चरण-दर-चरण मार्गदर्शिका दी गई है।
पूर्वावश्यकताएँ :
टेन्सर पावर: बड़ी टेन्सर प्रसंस्करण क्षमता वाला एक मजबूत सिस्टम सफलता के लिए मंच तैयार करेगा। सुनिश्चित करें कि आपका गियर एआई मॉडल प्रशिक्षण के लिए आवश्यक प्रसंस्करण शक्ति को संभाल सकता है।
डेटासेट: एक डेटासेट जो एआई प्रशिक्षण प्रारूप से मेल खाता है, आपके मॉडल के सीखने की अवस्था को गति देगा। प्रभावी प्रशिक्षण उच्च-गुणवत्ता वाले डेटा पर निर्भर करता है, जो मॉडल की सटीकता और क्षमता को प्रभावित करता है।
ऑटोट्रेन एडवांस्ड : कृत्रिम बुद्धिमत्ता के लिए इस आवश्यक प्रशिक्षण संसाधन तक स्वयं को पहुंच प्रदान करें। इस कार्यक्रम द्वारा प्रशिक्षण प्रक्रिया को सुव्यवस्थित किया जाता है, जो महत्वपूर्ण प्रक्रियाओं को स्वचालित करता है और उत्पादकता बढ़ाता है।
प्रशिक्षण की प्रक्रिया:
डेटा तैयारी: सटीकता और एकरूपता सुनिश्चित करने के लिए, अपने डेटासेट को व्यवस्थित और प्रीप्रोसेस करें। सर्वोत्तम प्रशिक्षण परिणाम प्राप्त करने के लिए स्वच्छ, व्यवस्थित डेटा का होना महत्वपूर्ण है।
मॉडल आरंभीकरण: अपने शुरुआती बिंदु के रूप में उपयोग करने के लिए सर्वोत्तम पूर्व-प्रशिक्षित मॉडल चुनें। अभिसरण तेज हो गया है और प्रशिक्षण प्रक्रिया तेजी से शुरू हो गई है।
फाइन ट्यून: पैरामीटर्स को फाइन-ट्यून करने के लिए सीखने की दर, बैच आकार और ऑप्टिमाइज़र सेटिंग्स जैसे हाइपरपैरामीटर को समायोजित करें। मॉडल प्रदर्शन और अभिसरण गति को संतुलित करने के लिए, इन मापदंडों को समायोजित करें।
प्रशिक्षण पुनरावृत्तियाँ: प्रशिक्षण शुरू करने के लिए डेटासेट को मॉडल के माध्यम से कई बार (युगों) चलाएँ। मॉडल प्रत्येक पुनरावृत्ति के साथ अपनी समझ में सुधार करता है, भविष्यवाणी के लिए अपनी प्रवृत्ति में सुधार करता है।
सत्यापन और परीक्षण: अपने मॉडल के विकास को लगातार मान्य करने के लिए एक विशिष्ट सत्यापन डेटासेट का उपयोग करें। नए डेटा के विरुद्ध परीक्षण के माध्यम से मॉडल की सामान्यीकरण करने की क्षमता का मूल्यांकन किया जाता है।
विश्लेषण और निगरानी: प्रशिक्षण मेट्रिक्स पर पूरा ध्यान दें। हानि वक्र, सटीकता रुझान और अन्य मेट्रिक्स जैसे संकेतक मॉडल के विकास के बारे में जानकारी प्रदान करते हैं।
अनुकूलन और फाइन-ट्यूनिंग: निगरानी निष्कर्षों के आधार पर हाइपरपैरामीटर को रणनीतिक रूप से समायोजित करें। वांछित प्रदर्शन प्राप्त करने के लिए, मॉडल को पुनरावृत्तीय रूप से परिष्कृत करें।
मूल्यांकन और परिनियोजन: अंतिम मॉडल का संपूर्ण परीक्षण डेटासेट मूल्यांकन करें। यदि आप परिणामों से खुश हैं, तो व्यावहारिक अनुप्रयोगों में प्रशिक्षित मॉडल का उपयोग करें।
डेटासेट:
डेटासेट दोनों एक हो सकते हैं जो पहले से निर्मित होते हैं जैसे कि उपलब्ध टेक्स्ट जनरेशन विशिष्ट डेटासेट के तहत हगिंगफेस डेटासेट में उपलब्ध होते हैं। कस्टम डेटासेट के लिए सुनिश्चित करें कि आप इन चरणों का पालन करें:
यहां एक नमूना डेटासेट प्रारूप है जिसका आप उपयोग कर सकते हैं: data.csv
नाम | विवरण | तत्पर |
---|---|---|
अभिवादन | बुनियादी अभिवादन और प्रतिक्रियाएँ | ###मानव: नमस्ते |
मौसम | मौसम के बारे में पूछना | ###मानव: आज मौसम कैसा है |
रेस्टोरेंट | किसी रेस्तरां की सिफ़ारिश के बारे में पूछताछ करना | ###मानव: क्या आप कोई अच्छा रेस्टोरेंट सुझा सकते हैं |
तकनीकी | नवीनतम तकनीकी रुझानों पर चर्चा | ###मानव: इस वर्ष तकनीकी रुझान क्या हैं |
यात्रा | यात्रा संबंधी सलाह और सुझाव मांग रहा हूं | ###मानव: पेरिस जाने के लिए कोई यात्रा सुझाव |
ये सिर्फ 1 प्रकार है.
एक बार जब आपके पास अपना डेटासेट हो जाता है, तो आपके पास कितनी GPU शक्ति है और आपका डेटासेट कितना बड़ा है, इसके आधार पर अपने AI को प्रशिक्षित करने का समय आता है, समय भी उसी के अनुरूप होता है। अब हम एआई को प्रशिक्षित करने के लिए हगिंगफेस से ऑटोट्रेन उन्नत मॉड्यूल का उपयोग कर सकते हैं।
हम इस कमांड का उपयोग करके ऑटोट्रेन-एडवांस्ड इंस्टॉल कर सकते हैं:
pip install autotrain-advanced
और एआई को प्रशिक्षित करने के लिए यह आदेश:
autotrain llm --train --project_name your_project_name --model TinyPixel/Llama-2-7B-bf16-sharded --data_path your_data_set --use_peft --use_int4 --learning_rate 2e-4 --train_batch_size 2 --num_train_epochs 3 --trainer sft --model_max_length 2048 --push_to_hub --repo_id your_repo_id -
आप प्रोजेक्ट_नाम को your_project_name
से अपने वास्तविक प्रोजेक्ट नाम में बदल सकते हैं, मॉडल को TinyPixel/Llama-2-7B-bf16-sharded
से उस लामा मॉडल में बदल सकते हैं जिसे आप प्रशिक्षित करना चाहते हैं और डेटा_पथ को .
यदि यह एक कस्टम डेटासेट या huggingface/dataset
है तो डेटासेट की रेपो आईडी यदि यह हगिंगफेस से है।
मेरा लक्ष्य एक लामा मॉडल या किसी भी एलएलएम मॉडल को प्रशिक्षित करना है, जिससे मैं हैकर्स के रूप में हमारे अधिकांश कार्यों को स्वचालित करने के लिए एक पूर्ण साइबर सुरक्षा सहायक बन सकूं, जो एक आशीर्वाद होगा।
तो क्षमताओं के बारे में बात करते हुए मेटा ने कई बेंचमार्क के साथ लामा के लिए शोध पत्र जारी किए हैं। कागजात के अनुसार, लामा मॉडल 7बी से 65बी पैरामीटर तक होते हैं और अन्य बड़े भाषा मॉडल की तुलना में प्रतिस्पर्धी प्रदर्शन करते हैं। उदाहरण के लिए, लामा-13बी 10 गुना छोटा होने के बावजूद अधिकांश बेंचमार्क पर जीपीटी-3 से बेहतर प्रदर्शन करता है। लामा का 65बी-पैरामीटर मॉडल अन्य बड़े भाषा मॉडल जैसे चिनचिला या PaLM-540B के साथ भी प्रतिस्पर्धी है। कागजात में यह भी उल्लेख किया गया है कि लंबे समय तक प्रशिक्षित एक छोटा मॉडल अंततः सस्ता हो सकता है। इसमें कहा गया है कि 1T टोकन के बाद भी 7B मॉडल के प्रदर्शन में सुधार जारी है। हालाँकि, दस्तावेज़ लामा मॉडल के बीच प्रदर्शन अंतर के लिए विशिष्ट संख्यात्मक मान प्रदान नहीं करता है।
अन्य स्रोतों का दावा है कि Llama मॉडल GPT मॉडल और PaLM मॉडल की तुलना में अधिक बहुमुखी और तेज़ हैं, जो इसे उपयोग करने के लिए सबसे अच्छे AI मॉडल में से एक बनाते हैं। लेकिन हैकिंग या किसी सुरक्षा-विशिष्ट कार्य के लिए, इसके लिए बहुत सारे प्रशिक्षण या व्यक्तिगत इनपुट की आवश्यकता होती है। इसके लिए एक प्रशिक्षण मॉडल तैयार करना आसान नहीं है, लेकिन एक बार प्रशिक्षित होने के बाद यह गेम चेंजर हो सकता है।
कृत्रिम बुद्धिमत्ता की दुनिया में यात्रा अविश्वसनीय रूप से रोशन रही है, जो स्वचालन और एकीकरण के अद्भुत प्रभाव को प्रदर्शित करती है। विभिन्न उद्योगों में इसकी क्षमताओं को देखने के बाद एआई हमारे काम करने और बातचीत करने के तरीके को कैसे बदल रहा है, इसकी मेरी गहरी सराहना है। नियमित संचालन के निर्बाध स्वचालन को देखने से लेकर दैनिक जीवन में एआई को शामिल करने का अनुभव करने तक, मेरा सीखने का अनुभव एक रहस्योद्घाटन रहा है। जैसे-जैसे मैं एआई की जटिलताओं के बारे में और अधिक सीखता हूं, मैंने सीखा है कि स्वचालन और एकीकरण सिर्फ तकनीकी विचारों से कहीं अधिक हैं; बल्कि, वे नवाचार के लिए उत्प्रेरक के रूप में कार्य करते हैं। इस नई अंतर्दृष्टि के साथ, मैं अब एक ऐसी दुनिया देख सकता हूं जिसमें दक्षता और सहयोग में सुधार करने के लिए एआई की क्षमता असीमित है।
आप लिंक्डइन पर मुझसे संपर्क कर सकते हैं। यदि आपकी कोई चिंता है तो आप नीचे टिप्पणी कर सकते हैं।
पढ़ने के लिए धन्यवाद।