एआई मॉडल और प्लेटफ़ॉर्म

जेम्मा 2 पर पूर्ण गाइड: गूगल का नया ओपन लार्ज लैंग्वेज मॉडल

mm
Unite.AI को Google पर अपने पसंदीदा स्रोतों में जोड़ें

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

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

गूगल ओपन सोर्स एलएलएम जेम्मा

गूगल ओपन सोर्स एलएलएम जेम्मा

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

जेम्मा 2 क्या है?

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

जेम्मा 2 9बी: 9 अरब पैरामीटर मॉडल
जेम्मा 2 27बी: 27 अरब पैरामीटर मॉडल

प्रत्येक आकार दो संस्करणों में उपलब्ध है:

बेस मॉडल: विशाल पाठ डेटा निगम पर पूर्व-प्रशिक्षित
निर्देश-ट्यून्ड (आईटी) मॉडल: विशिष्ट कार्यों पर बेहतर प्रदर्शन के लिए फाइन-ट्यून किया गया

मॉडल तक पहुंचें गूगल एआई स्टूडियो में: गूगल एआई स्टूडियो – जेम्मा 2

पेपर यहां पढ़ें: जेम्मा 2 तकनीकी रिपोर्ट

मुख्य विशेषताएं और सुधार

जेम्मा 2 अपने पूर्ववर्ती पर कई महत्वपूर्ण प्रगति करता है:

1. बढ़ा हुआ प्रशिक्षण डेटा

मॉडल को काफी अधिक डेटा पर प्रशिक्षित किया गया है:

जेम्मा 2 27बी: 13 ट्रिलियन टोकन पर प्रशिक्षित
जेम्मा 2 9बी: 8 ट्रिलियन टोकन पर प्रशिक्षित

यह विस्तारित डेटासेट, जो मुख्य रूप से वेब डेटा (मुख्य रूप से अंग्रेजी), कोड और गणित से बना है, मॉडल के प्रदर्शन और बहुमुखी प्रतिभा में योगदान करता है।

2. स्लाइडिंग विंडो अटेंशन

जेम्मा 2 एक नए ध्यान तंत्र को लागू करता है:

प्रत्येक दूसरी परत 4096 टोकन के स्थानीय संदर्भ के साथ स्लाइडिंग विंडो अटेंशन का उपयोग करती है
वैकल्पिक परतें पूरे 8192 टोकन संदर्भ में पूर्ण द्विपदीय वैश्विक अटेंशन का उपयोग करती हैं

यह हाइब्रिड दृष्टिकोण दक्षता के साथ लंबी दूरी की निर्भरताओं को पकड़ने की क्षमता के बीच संतुलन बनाने का लक्ष्य रखता है।

3. सॉफ्ट-कैपिंग

प्रशिक्षण स्थिरता और प्रदर्शन में सुधार के लिए, जेम्मा 2 एक सॉफ्ट-कैपिंग तंत्र पेश करता है:


<p>def soft_cap(x, cap):</p>
<p>return cap * torch.tanh(x / cap)</p>

<p># अटेंशन लॉगिट्स पर लागू किया गया</p>
<p>attention_logits = soft_cap(attention_logits, cap=50.0)</p>

<p># अंतिम परत लॉगिट्स पर लागू किया गया</p>
<p>final_logits = soft_cap(final_logits, cap=30.0)</p>

यह तकनीक लॉगिट्स को अत्यधिक बड़ा होने से रोकती है बिना कठोर ट्रंकेशन के, अधिक जानकारी बनाए रखते हुए प्रशिक्षण प्रक्रिया को स्थिर करती है।

  1. जेम्मा 2 9बी: 9 अरब पैरामीटर मॉडल
  2. जेम्मा 2 27बी: 27 अरब पैरामीटर मॉडल

प्रत्येक आकार दो संस्करणों में उपलब्ध है:

  • बेस मॉडल: विशाल पाठ डेटा निगम पर पूर्व-प्रशिक्षित
  • निर्देश-ट्यून्ड (आईटी) मॉडल: विशिष्ट कार्यों पर बेहतर प्रदर्शन के लिए फाइन-ट्यून किया गया

4. ज्ञान संचार

9बी मॉडल के लिए, जेम्मा 2 ज्ञान संचार तकनीकों का उपयोग करता है:

  • पूर्व-प्रशिक्षण: 9बी मॉडल प्रारंभिक प्रशिक्षण के दौरान एक बड़े शिक्षक मॉडल से सीखता है
  • पोस्ट-ट्रेनिंग: 9बी और 27बी दोनों मॉडल ऑन-पॉलिसी डिस्टिलेशन का उपयोग करके अपने प्रदर्शन को परिष्कृत करते हैं

यह प्रक्रिया छोटे मॉडल को बड़े मॉडलों की क्षमताओं को अधिक प्रभावी ढंग से पकड़ने में मदद करती है।

5. मॉडल मर्जिंग

जेम्मा 2 एक नए मॉडल मर्जिंग तकनीक का उपयोग करता है जिसे वार्प कहा जाता है, जो तीन चरणों में कई मॉडलों को मिलाता है:

  1. पुनरावृत्ति शिक्षण फाइन-ट्यूनिंग के दौरान एक्सपोनेंशियल मूविंग एवरेज (ईएमए)
  2. बहुत से नीतियों को फाइन-ट्यून करने के बाद स्फेरिकल लीनियर इंटरपोलेशन (एसएलईआरपी)
  3. प्रारंभिक चरण के रूप में रेखीय इंटरपोलेशन टूवर्ड्स इनिशियलाइजेशन (एलआईटीआई)

यह दृष्टिकोण एक अधिक मजबूत और सक्षम अंतिम मॉडल बनाने का लक्ष्य रखता है।

प्रदर्शन बेंचमार्क

जेम्मा 2 विभिन्न बेंचमार्क पर प्रभावशाली प्रदर्शन प्रदर्शित करता है:

जेम्मा 2 एक पुनः डिज़ाइन की गई वास्तुकला पर, असाधारण प्रदर्शन और अनुमान दक्षता के लिए इंजीनियर

जेम्मा 2 एक पुनः डिज़ाइन की गई वास्तुकला पर, असाधारण प्रदर्शन और अनुमान दक्षता के लिए इंजीनियर

 

जेम्मा 2 के साथ शुरुआत करना

जेम्मा 2 को अपनी परियोजनाओं में उपयोग करने के लिए, आपके पास कई विकल्प हैं:

1. गूगल एआई स्टूडियो

हार्डवेयर आवश्यकताओं के बिना त्वरित प्रयोग के लिए, आप गूगल एआई स्टूडियो के माध्यम से जेम्मा 2 तक पहुंच सकते हैं।

2. हगिंग फेस ट्रांसफॉर्मर

जेम्मा 2 हगिंग फेस ट्रांसफॉर्मर लाइब्रेरी के साथ एकीकृत है। यहां बताया गया है कि आप इसका उपयोग कैसे कर सकते हैं:

&lt;div class=&quot;relative flex flex-col rounded-lg&quot;&gt;
&lt;div class=&quot;text-text-300 absolute pl-3 pt-2.5 text-xs&quot;&gt;

<p>from transformers import AutoTokenizer, AutoModelForCausalLM</p>

<p># मॉडल और टोकनाइज़र लोड करें</p>
<p>model_name = &quot;google/gemma-2-27b-it&quot; # या &quot;google/gemma-2-9b-it&quot; छोटे संस्करण के लिए</p>
<p>tokenizer = AutoTokenizer.from_pretrained(model_name)</p>
<p>model = AutoModelForCausalLM.from_pretrained(model_name)</p>

<p># इनपुट तैयार करें</p>
<p>prompt = &quot;क्वांटम एंटैंगलमेंट की अवधारणा को सरल शब्दों में समझाएं।&quot;</p>
<p>inputs = tokenizer(prompt, return_tensors=&quot;pt&quot;)</p>

<p># टेक्स्ट जेनरेट करें</p>
<p>outputs = model.generate(**inputs, max_length=200)</p>
<p>response = tokenizer.decode(outputs[0], skip_special_tokens=True)</p>

print(response)

3. टेंसोरफ्लो/केरस

टेंसोरफ्लो उपयोगकर्ताओं के लिए, जेम्मा 2 केरस के माध्यम से उपलब्ध है:


<p>import tensorflow as tf</p>
<p>from keras_nlp.models import GemmaCausalLM</p>

<p># मॉडल लोड करें</p>
<p>model = GemmaCausalLM.from_preset(&quot;gemma_2b_en&quot;)</p>

<p># टेक्स्ट जेनरेट करें</p>
<p>prompt = &quot;क्वांटम एंटैंगलमेंट की अवधारणा को सरल शब्दों में समझाएं।&quot;</p>
<p>output = model.generate(prompt, max_length=200)</p>

print(output)

उन्नत उपयोग: जेम्मा 2 के साथ स्थानीय आरएजी सिस्टम बनाना

जेम्मा 2 का एक शक्तिशाली अनुप्रयोग एक रिट्रीवल ऑगमेंटेड जेनरेशन (आरएजी) सिस्टम बनाने में है। आइए जेम्मा 2 और नोमिक एम्बेडिंग का उपयोग करके एक सरल, पूरी तरह से स्थानीय आरएजी सिस्टम बनाएं।

चरण 1: पर्यावरण सेट अप करना

सबसे पहले, सुनिश्चित करें कि आपके पास आवश्यक लाइब्रेरी स्थापित हैं:


<p>pip install langchain ollama nomic chromadb</p>

चरण 2: दस्तावेज़ इंडेक्सिंग

एक इंडेक्सर बनाएं जो आपके दस्तावेजों को संसाधित करे:


<p>import os</p>
<p>from langchain.text_splitter import RecursiveCharacterTextSplitter</p>
<p>from langchain.document_loaders import DirectoryLoader</p>
<p>from langchain.vectorstores import Chroma</p>
<p>from langchain.embeddings import HuggingFaceEmbeddings</p>

<p>class Indexer:</p>
<p>def __init__(self, directory_path):</p>
<p>self.directory_path = directory_path</p>
<p>self.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)</p>
<p>self.embeddings = HuggingFaceEmbeddings(model_name=&quot;nomic-ai/nomic-embed-text-v1&quot;)</p>

<p>def load_and_split_documents(self):</p>
<p>loader = DirectoryLoader(self.directory_path, glob=&quot;**/*.txt&quot;)</p>
<p>documents = loader.load()</p>
<p>return self.text_splitter.split_documents(documents)</p>

<p>def create_vector_store(self, documents):</p>
<p>return Chroma.from_documents(documents, self.embeddings, persist_directory=&quot;./chroma_db&quot;)</p>

<p>def index(self):</p>
<p>documents = self.load_and_split_documents()</p>
<p>vector_store = self.create_vector_store(documents)</p>
<p>vector_store.persist()</p>
<p>return vector_store</p>

<p># उपयोग</p>
<p>indexer = Indexer(&quot;path/to/your/documents&quot;)</p>
<p>vector_store = indexer.index()</p>

चरण 3: आरएजी सिस्टम सेट अप करना

अब, जेम्मा 2 का उपयोग करके आरएजी सिस्टम बनाएं:


<p>from langchain.llms import Ollama</p>
<p>from langchain.chains import RetrievalQA</p>
<p>from langchain.prompts import PromptTemplate</p>

<p>class RAGSystem:</p>
<p>def __init__(self, vector_store):</p>
<p>self.vector_store = vector_store</p>
<p>self.llm = Ollama(model=&quot;gemma2:9b&quot;)</p>
<p>self.retriever = self.vector_store.as_retriever(search_kwargs={&quot;k&quot;: 3})</p>

<p>self.template = &quot;&quot;&quot;निम्नलिखित संदर्भ का उपयोग करके प्रश्न का उत्तर दें।</p>
<p>यदि आप उत्तर नहीं जानते हैं, तो बस कहें कि आप नहीं जानते हैं, कोई उत्तर न बनाएं।</p>

{context}

<p>प्रश्न: {question}</p>
<p>उत्तर: &quot;&quot;&quot;</p>

<p>self.qa_prompt = PromptTemplate(</p>
<p>template=self.template, input_variables=[&quot;context&quot;, &quot;question&quot;]</p>
<p>)</p>

<p>self.qa_chain = RetrievalQA.from_chain_type(</p>
<p>llm=self.llm,</p>
<p>chain_type=&quot;stuff&quot;,</p>
<p>retriever=self.retriever,</p>
<p>return_source_documents=True,</p>
<p>chain_type_kwargs={&quot;prompt&quot;: self.qa_prompt}</p>
<p>)</p>

<p>def query(self, question):</p>
<p>return self.qa_chain({&quot;query&quot;: question})</p>

<p># उपयोग</p>
<p>rag_system = RAGSystem(vector_store)</p>
<p>response = rag_system.query(&quot;फ्रांस की राजधानी क्या है?&quot;)</p>
<p>print(response[&quot;result&quot;])</p>

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

जेम्मा 2 को फाइन-ट्यून करना

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

<p>from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer</p>
<p>from datasets import load_dataset</p>

<p># मॉडल और टोकनाइज़र लोड करें</p>
<p>model_name = &quot;google/gemma-2-9b-it&quot;</p>
<p>tokenizer = AutoTokenizer.from_pretrained(model_name)</p>
<p>model = AutoModelForCausalLM.from_pretrained(model_name)</p>

<p># डेटासेट तैयार करें</p>
<p>dataset = load_dataset(&quot;your_dataset&quot;)</p>

<p>def tokenize_function(examples):</p>
<p>return tokenizer(examples[&quot;text&quot;], padding=&quot;max_length&quot;, truncation=True)</p>

<p>tokenized_datasets = dataset.map(tokenize_function, batched=True)</p>

<p># प्रशिक्षण तर्क तैयार करें</p>
<p>training_args = TrainingArguments(</p>
<p>output_dir=&quot;./results&quot;,</p>
<p>num_train_epochs=3,</p>
<p>per_device_train_batch_size=4,</p>
<p>per_device_eval_batch_size=4,</p>
<p>warmup_steps=500,</p>
<p>weight_decay=0.01,</p>
<p>logging_dir=&quot;./logs&quot;,</p>
<p>)</p>

<p># ट्रेनर को आरंभ करें</p>
<p>trainer = Trainer(</p>
<p>model=model,</p>
<p>args=training_args,</p>
<p>train_dataset=tokenized_datasets[&quot;train&quot;],</p>
<p>eval_dataset=tokenized_datasets[&quot;test&quot;],</p>
<p>)</p>

<p># फाइन-ट्यूनिंग शुरू करें</p>
<p>trainer.train()</p>

<p># फाइन-ट्यून किए गए मॉडल को सहेजें</p>
<p>model.save_pretrained(&quot;./fine_tuned_gemma2&quot;)</p>
<p>tokenizer.save_pretrained(&quot;./fine_tuned_gemma2&quot;)</p>

यह उदाहरण आपको जेम्मा 2 को विशिष्ट डेटासेट पर फाइन-ट्यून करने की प्रक्रिया दिखाता है। अपने विशिष्ट आवश्यकताओं और कम्प्यूटेशनल संसाधनों के अनुसार प्रशिक्षण पарамет्रों को समायोजित करना याद रखें।

नैतिक विचार और सीमाएं

जेम्मा 2 की प्रभावशाली क्षमताओं के बावजूद, इसकी सीमाओं और नैतिक विचारों के बारे में जागरूक रहना महत्वपूर्ण है:

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

निष्कर्ष

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

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

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