मुख्य सामग्री पर जाएँ

Ollama के साथ Gemma 3 को लोकली सेट अप और रन कैसे करें

जानें कि Ollama के साथ Gemma 3 को लोकली कैसे इंस्टॉल, सेट अप और रन करें, और अपने डिवाइस पर एक साधारण फाइल असिस्टेंट बनाएं।
· 12 मि॰ पढ़ें

AI के साथ खोजें

Google DeepMind ने अभी Gemma 3 जारी किया है, जो उनके ओपन-सोर्स मॉडलों का अगला संस्करण है। Gemma 3 को सीधे कम संसाधन वाले डिवाइस जैसे फोन और लैपटॉप पर चलाने के लिए डिज़ाइन किया गया है। ये मॉडल एकल GPU या TPU पर तेज़ प्रदर्शन के लिए अनुकूलित हैं और अलग-अलग हार्डवेयर ज़रूरतों के अनुसार विभिन्न आकारों में आते हैं।

इस ट्यूटोरियल में, मैं चरण-दर-चरण समझाऊंगा कि Ollama का उपयोग करके Gemma 3 को लोकली कैसे सेट अप और रन करें। इसके बाद, मैं दिखाऊंगा कि आप Gemma 3 और Python का उपयोग करके एक फाइल असिस्टेंट कैसे बना सकते हैं।

Gemma 3 को लोकली क्यों चलाएं?

Gemma 3 जैसे बड़े भाषा मॉडल (LLM) को लोकली चलाने के कई प्रमुख फायदे हैं:

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

Ollama के साथ Gemma 3 को लोकली सेट अप करें

Ollama इंस्टॉल करना

Ollama Windows, Mac और Linux के लिए उपलब्ध एक प्लेटफ़ॉर्म है जो AI मॉडलों को चलाने और वितरित करने का समर्थन करता है, जिससे डेवलपर्स के लिए इन्हें अपने प्रोजेक्ट्स में एकीकृत करना आसान हो जाता है। हम इसे Gemma 3 को लोकली डाउनलोड और रन करने के लिए उपयोग करेंगे।

पहला कदम है इसे आधिकारिक Ollama वेबसाइट से डाउनलोड और इंस्टॉल करना।

Gemma 3 को लोकली उपयोग करने के लिए Ollama डाउनलोड करना

इंस्टॉल करते समय, कमांड लाइन ज़रूर इंस्टॉल करें:

Ollama कमांड लाइन इंस्टॉल करें

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

Ollama इंस्टॉलेशन जाँच

Gemma 3 डाउनलोड करना

Ollama के साथ कोई मॉडल डाउनलोड करने के लिए, pull कमांड का उपयोग करें:

ollama pull <model_name>:<model_version>

उपलब्ध मॉडलों की सूची Ollama की लाइब्रेरी में मिल सकती है।

Gemma 3 में विशेष रूप से चार मॉडल उपलब्ध हैं: 1b, 4b, 12b, और 27b, जहाँ b का अर्थ बिलियन है, जो मॉडल में पैरामीटर्स की संख्या को दर्शाता है।

उदाहरण के लिए, 1b पैरामीटर्स वाला gemma3 डाउनलोड करने के लिए हम कमांड का उपयोग करते हैं:

ollama pull gemma3:1b

यदि हम मॉडल का संस्करण निर्दिष्ट नहीं करते, तो डिफ़ॉल्ट रूप से 4b मॉडल डाउनलोड होगा:

ollama pull gemma3

स्थानीय मॉडलों की सूची देखना

हम अपने पास लोकली मौजूद मॉडलों की सूची निम्न कमांड से देख सकते हैं:

ollama list

मेरे मामले में, आउटपुट दिखाता है कि मेरे पास दो मॉडल हैं: 

NAME             ID              SIZE      MODIFIED       
gemma3:1b        2d27a774bc62    815 MB    38 seconds ago    
gemma3:latest    c0494fe00251    3.3 GB    22 minutes ago 

टर्मिनल में चैट करना

हम run कमांड का उपयोग करके Ollama से किसी मॉडल के साथ चैट कर सकते हैं:

ollama run gemma3

टर्मिनल में Ollama और Gemma 3 के साथ चैट करना

ध्यान दें कि यदि हम ऐसे मॉडल के साथ run कमांड का उपयोग करते हैं जिसे हमने डाउनलोड नहीं किया है, तो यह pull के जरिए अपने आप डाउनलोड हो जाएगा।

पृष्ठभूमि में Gemma 3 चलाना

Python के साथ Gemma 3 का उपयोग करने के लिए हमें इसे बैकग्राउंड में चलाना होगा। हम यह serve कमांड से कर सकते हैं:

ollama serve

यदि कमांड चलाते समय आपको नीचे दिया गया एरर मिलता है, तो संभवतः Ollama पहले से चल रहा है:

Error: listen tcp 127.0.0.1:11434: bind: address already in use

यह त्रुटि तब हो सकती है जब Ollama बैकग्राउंड में पहले से चल रहा हो।

Python के साथ Gemma 3 को लोकली उपयोग करना

Python वातावरण सेट अप करें

Ollama हमारे कंप्यूटर पर चल रहे मॉडलों से आसानी से कनेक्ट होने के लिए एक Python पैकेज प्रदान करता है।

हम Anaconda का उपयोग Python वातावरण सेट अप करने और आवश्यक डिपेंडेंसियाँ जोड़ने के लिए करेंगे। इस तरह करने से अन्य मौजूदा Python पैकेजों के साथ संभावित समस्याओं से बचने में मदद मिलती है।

Anaconda इंस्टॉल होने के बाद, हम यह कमांड चलाकर वातावरण सेट कर सकते हैं:

conda create -n gemma3-demo -y python=3.9

यह कमांड 3.9 संस्करण वाले Python के साथ gemma3-demo नाम का एक वातावरण बनाती है। -y विकल्प यह सुनिश्चित करता है कि सेटअप के दौरान आने वाले सभी प्रश्नों का उत्तर अपने-आप हाँ में दिया जाए।

अब, हम वातावरण को एक्टिवेट करते हैं:

conda activate gemma3-demo

अंत में, हम ollama पैकेज इस कमांड से इंस्टॉल करते हैं:

pip install ollama

Python से Gemma 3 को संदेश भेजना

यहाँ Python का उपयोग करके Gemma 3 को संदेश भेजने का तरीका है:

from ollama import chat
response = chat(
    model="gemma3",
    messages=[
        {
            "role": "user",
            "content": "Why is the sky blue?",
        },
    ],
)
print(response.message.content)

आपके हार्डवेयर पर निर्भर करते हुए, मॉडल को उत्तर देने में समय लग सकता है, इसलिए स्क्रिप्ट चलाते समय धैर्य रखें।

हमने पहले देखा कि डिफ़ॉल्ट रूप से gemma3 का संदर्भ gemma3:4b से है। इसलिए जब हम मॉडल के रूप में model="gemma3" निर्दिष्ट करते हैं, तो वही मॉडल उपयोग होगा।

किसी और मॉडल—जैसे 1B मॉडल—का उपयोग करने के लिए, हमें इसके बजाय आर्गुमेंट model=”gemma3:1b” पास करना होगा (बशर्ते हमने पहले ollama pull gemma3:1b कमांड से उसे पुल किया हो)। उपलब्ध मॉडलों की सूची के लिए हम ollama list कमांड का उपयोग कर सकते हैं।

यदि हम उत्तर को शब्द-दर-शब्द स्ट्रीम करना चाहते हैं, तो हम stream=True का उपयोग कर सकते हैं और प्रतिक्रिया को टुकड़ों में प्रिंट कर सकते हैं:

from ollama import chat
stream = chat(
    model="gemma3",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    stream=True,
)
for chunk in stream:
    print(chunk["message"]["content"], end="", flush=True)

यह बेहतर उपयोगकर्ता अनुभव देता है क्योंकि उपयोगकर्ता को पूरा उत्तर बनने का इंतज़ार नहीं करना पड़ता।

ollama पैकेज के बारे में अधिक जानने के लिए उनका प्रलेखन देखें।

Gemma 3 का उपयोग करके एक फाइल असिस्टेंट बनाना

इस खंड में, हम एक ऐसा Python स्क्रिप्ट बनाना सीखेंगे जो हमें सीधे टर्मिनल से किसी टेक्स्ट फाइल की सामग्री के बारे में प्रश्न पूछने की सुविधा देता है। यह स्क्रिप्ट कोड फाइल में बग ढूँढने या किसी भी दस्तावेज़ से जानकारी क्वेरी करने जैसे कामों में सहायक होगी।

स्क्रिप्ट का अवलोकन

हमारा लक्ष्य Python का उपयोग करके एक कमांड-लाइन टूल बनाना है जो एक टेक्स्ट फाइल पढ़े और उसकी सामग्री से संबंधित प्रश्नों के उत्तर देने के लिए Gemma 3 का उपयोग करे। इसे हासिल करने के लिए चरण-दर-चरण मार्गदर्शिका यह है:

स्क्रिप्ट संरचना सेट करना

सबसे पहले, हमें आवश्यक इम्पोर्ट और बेसिक स्ट्रक्चर के साथ Python स्क्रिप्ट सेट करना होगा:

import sys
from ollama import chat
def ask_questions_from_file(file_path):
    # Read the content of the text file
    with open(file_path, "r") as file:
        content = file.read()
    # Loop to keep asking questions
    while True:
        question = input("> ")
        print()
        if question.lower() == "exit":
            break
        # Use Gemma 3 to get answers
        stream = chat(
            model="gemma3",
            messages=[
                {"role": "user", "content": content},
                {"role": "user", "content": question},
            ],
            stream=True,
        )
        for chunk in stream:
            print(chunk["message"]["content"], end="", flush=True)

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python ask_file.py <path_to_text_file>")
    else:
        file_path = sys.argv[1]
        ask_questions_from_file(file_path)

मुख्य कार्यक्षमता ask_questions_from_file() फ़ंक्शन में समाहित है। यह फ़ंक्शन एक फाइल पाथ को आर्गुमेंट के रूप में लेता है और निर्दिष्ट टेक्स्ट फाइल को खोलकर उसकी सामग्री पढ़ने से शुरू करता है। इसी सामग्री का उपयोग प्रश्नों के उत्तर देने के लिए पृष्ठभूमि जानकारी के रूप में किया जाएगा।

फाइल की सामग्री लोड होने के बाद, स्क्रिप्ट एक लूप में प्रवेश करती है जहाँ यह लगातार हमें प्रश्न दर्ज करने के लिए प्रेरित करती है। जब हम कोई प्रश्न टाइप करते हैं, तो स्क्रिप्ट फाइल की सामग्री को हमारे प्रश्न के साथ Gemma 3 मॉडल को भेजती है, जो इस जानकारी को प्रोसेस करके उत्तर जनरेट करता है।

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

स्क्रिप्ट के अंत में, एक जाँच है जो सुनिश्चित करती है कि स्क्रिप्ट एक कमांड-लाइन आर्गुमेंट के साथ सही से चलाई जा रही है, जो टेक्स्ट फाइल का पाथ होना चाहिए। यदि आर्गुमेंट प्रदान नहीं किया गया है, तो यह उपयोग संदेश दिखाती है ताकि स्क्रिप्ट को सही तरीके से चलाने में मार्गदर्शन मिल सके। यह सेटअप हमें कमांड लाइन से स्क्रिप्ट को प्रभावी ढंग से निर्देशित करने देता है।

स्क्रिप्ट चलाना

ऊपर दिया गया कोड उदाहरण के लिए ask.py नामक फाइल में सेव करें। स्क्रिप्ट का परीक्षण करने के लिए यह कमांड चलाएँ:

python ask.py ask.py

यह स्क्रिप्ट को स्वयं के बारे में प्रश्न पूछने के लिए चलाएगा (इसीलिए ऊपर दिए गए कमांड में ask.py दो बार आता है)। यहाँ स्क्रिप्ट से यह समझाने के लिए पूछने का एक उदाहरण है कि यह कैसे काम करती है:

स्क्रिप्ट का उपयोग करके Gemma 3 को लोकली एक फाइल असिस्टेंट की तरह उपयोग करना

निष्कर्ष

हमने सफलतापूर्वक सीखा और सेट अप किया कि Ollama और Python का उपयोग करके Gemma 3 को लोकली कैसे चलाया जाए। यह तरीका हमारे डेटा की गोपनीयता सुनिश्चित करता है, कम विलंबता देता है, अनुकूलन के विकल्प प्रदान करता है और लागत में बचत करा सकता है। जिन चरणों को हमने कवर किया है, वे केवल Gemma 3 तक सीमित नहीं हैं—इन्हें Ollama पर होस्ट किए गए अन्य मॉडलों पर भी लागू किया जा सकता है।

यदि हम अपनी स्क्रिप्ट की कार्यक्षमता को बेहतर बनाना चाहें, तो उदाहरण के लिए, इसे PDFs संभालने लायक बना सकते हैं। ऐसा करने का सबसे अच्छा तरीका Mistral OCR API का उपयोग करना होगा। हम PDF फाइलों को टेक्स्ट में बदल सकते हैं, जिससे हमारी स्क्रिप्ट PDFs के बारे में भी प्रश्नों का उत्तर दे सकेगी—इसे और भी बहुमुखी और शक्तिशाली बनाते हुए।

इन टूल्स के साथ, अब हम अपने ही डिवाइसेज़ से बड़े मॉडलों का अन्वेषण और उनसे इंटरैक्ट करने के लिए सक्षम हैं।

FAQs

Gemma 3 को लोकली चलाने के लिए हार्डवेयर आवश्यकताएँ क्या हैं?

Gemma 3 को लोकली चलाने की क्षमता इस बात पर निर्भर करती है कि आप कौन सा मॉडल आकार डाउनलोड करते हैं। छोटे मॉडल जैसे gemma3:1b दक्षता के लिए बनाए गए हैं और कम पावर वाले डिवाइस, जैसे एकल GPU वाले लैपटॉप या कुछ हाई-पावर्ड टैबलेट्स पर भी चल सकते हैं। बड़े मॉडल जैसे gemma3:27b को अधिक कंप्यूटेशनल संसाधनों की ज़रूरत होती है, जैसे हाई-एंड GPU वाले मल्टी-कोर वर्कस्टेशन। हमेशा अपने डिवाइस की स्पेसिफिकेशन्स को मॉडल की संसाधन आवश्यकताओं से मिलान कर लें ताकि अनुकूलता सुनिश्चित हो सके।

क्या मैं एक साथ Gemma 3 की कई इंस्टेंस चला सकता/सकती हूँ?

हाँ, यदि आपके हार्डवेयर संसाधन (CPU, GPU, और मेमोरी) अतिरिक्त कंप्यूटेशनल लोड को संभालने के लिए पर्याप्त हैं, तो आप एक साथ Gemma 3 की कई इंस्टेंस चला सकते हैं। बैकग्राउंड में चलने वाले मॉडल की हर इंस्टेंस अतिरिक्त सिस्टम संसाधन उपयोग करेगी, इसलिए सुनिश्चित करें कि आपका सिस्टम कई प्रक्रियाओं को बिना उल्लेखनीय प्रदर्शन गिरावट के संभाल सके।

क्या Python वातावरण सेट अप करने के लिए Anaconda का उपयोग करना ज़रूरी है?

हालाँकि Anaconda अलग-थलग वातावरण बनाने, डिपेंडेंसियाँ मैनेज करने, और अन्य Python पैकेजों से टकराव से बचने में आसान होने के कारण अत्यधिक अनुशंसित है, यह अनिवार्य नहीं है। आप venv या virtualenv जैसे अन्य वर्चुअल एनवायरनमेंट टूल भी इस्तेमाल कर सकते हैं।

François Aubry

लेखक

François Aubry

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

विषय