|
|
Google Colab में चलाएं
|
|
|
GitHub पर सोर्स देखें
|
Gemma के ओपन मॉडल की मदद से, टेक्स्ट जनरेट करने, खास जानकारी देने, और कॉन्टेंट का विश्लेषण करने जैसे कई काम किए जा सकते हैं. इस ट्यूटोरियल में, Hugging Face Transformers का इस्तेमाल करके Gemma को चलाने का तरीका बताया गया है. इसमें टेक्स्ट कॉन्टेंट जनरेट करने के लिए, टेक्स्ट और इमेज, दोनों तरह के इनपुट का इस्तेमाल किया गया है. Transformers Python लाइब्रेरी, पहले से ट्रेन किए गए जनरेटिव एआई मॉडल को ऐक्सेस करने के लिए एक एपीआई उपलब्ध कराती है. इसमें Gemma भी शामिल है. ज़्यादा जानकारी के लिए, Transformers का दस्तावेज़ देखें.
सेटअप
इस ट्यूटोरियल को शुरू करने से पहले, यह तरीका अपनाएं:
- Gemma का ऐक्सेस पाने के लिए, Hugging Face में लॉग इन करें. इसके बाद, Gemma मॉडल के लिए लाइसेंस स्वीकार करें को चुनें.
- ऐसा Colab रनटाइम चुनें जिसमें Gemma मॉडल के उस साइज़ को चलाने के लिए ज़रूरी संसाधन मौजूद हों जिसे आपको चलाना है. ज़्यादा जानें.
- Hugging Face का ऐक्सेस टोकन जनरेट करें और उसे Colab एनवायरमेंट में जोड़ें.
ऐक्सेस टोकन कॉन्फ़िगर करना
Hugging Face की वेबसाइट से Gemma मॉडल डाउनलोड करने के लिए, Colab में अपना ऐक्सेस टोकन जोड़ें. Colab की Secrets सुविधा का इस्तेमाल करके, अपने टोकन को सुरक्षित तरीके से सेव करें. इसके लिए, आपको इसे अपने वर्किंग कोड में जोड़ने की ज़रूरत नहीं है.
Hugging Face के ऐक्सेस टोकन को सीक्रेट के तौर पर जोड़ने के लिए:
- इंटरफ़ेस की बाईं ओर मौजूद, कुंजी वाले आइकॉन को चुनकर secrets टैब खोलें. इसके अलावा, Tools > Command pallete को चुनें,
secretsटाइप करें, और Enter दबाएं. - नई सीक्रेट एंट्री जोड़ने के लिए, नया सीक्रेट जोड़ें को चुनें.
- नाम फ़ील्ड में,
HF_TOKENडालें. - वैल्यू फ़ील्ड में, Hugging Face ऐक्सेस टोकन का टेक्स्ट डालें.
- नोटबुक का ऐक्सेस फ़ील्ड में, ऐक्सेस चालू करने के लिए स्विच को चुनें.
HF_TOKEN और वैल्यू के तौर पर ऐक्सेस टोकन डालने के बाद, Colab notebook एनवायरमेंट में इसे ऐक्सेस और सेट किया जा सकता है. इसके लिए, इस कोड का इस्तेमाल करें:
from google.colab import userdata
from huggingface_hub import login
# Login into Hugging Face Hub
hf_token = userdata.get('HF_TOKEN') # If you are running inside a Google Colab
login(hf_token)
Python पैकेज इंस्टॉल करना
Gemma मॉडल को चलाने और अनुरोध करने के लिए, Hugging Face की ज़रूरी लाइब्रेरी इंस्टॉल करें.
# Install Pytorch & other libraries
%pip install "torch>=2.4.0"
# Install a transformers version that supports Gemma 3 (>= 4.51.3)
%pip install "transformers>=4.51.3"
टेक्स्ट से टेक्स्ट जनरेट करना
Gemma मॉडल को टेक्स्ट प्रॉम्प्ट देकर, टेक्स्ट के रूप में जवाब पाना, Gemma का इस्तेमाल करने का सबसे आसान तरीका है. यह Gemma के लगभग सभी वर्शन के साथ काम करता है. इस सेक्शन में, टेक्स्ट से टेक्स्ट जनरेट करने के लिए, Hugging Face Transformers लाइब्रेरी को लोड करने और Gemma मॉडल को कॉन्फ़िगर करने का तरीका बताया गया है.
मॉडल लोड करें
Gemma के साथ मॉडल एक्ज़ीक्यूशन pipeline क्लास का इंस्टेंस बनाने के लिए, torch और transformers लाइब्रेरी का इस्तेमाल करें. आउटपुट जनरेट करने या निर्देशों का पालन करने के लिए किसी मॉडल का इस्तेमाल करते समय, निर्देश के मुताबिक काम करने वाला (आईटी) मॉडल चुनें. आम तौर पर, इस मॉडल के आईडी स्ट्रिंग में it होता है. pipeline ऑब्जेक्ट का इस्तेमाल करके, यह तय किया जाता है कि आपको Gemma के किस वर्शन का इस्तेमाल करना है और किस तरह का टास्क पूरा करना है. खास तौर पर, टेक्स्ट से टेक्स्ट जनरेट करने के लिए "text-generation" का इस्तेमाल किया जाता है. इस बारे में ज़्यादा जानकारी यहां दी गई है:
import torch
from transformers import pipeline
pipeline = pipeline(
task="text-generation",
model="google/gemma-3-4b-it",
device=0, # "cuda" for Colab, "msu" for iOS devices
torch_dtype=torch.bfloat16
)
Gemma, जनरेशन के लिए सिर्फ़ कुछ task सेटिंग के साथ काम करता है. उपलब्ध task सेटिंग के बारे में ज़्यादा जानने के लिए, Hugging Face Pipelines task() का दस्तावेज़ देखें. मॉडल की सटीक जानकारी को कम करने और ज़रूरी कंप्यूटिंग संसाधनों को कम करने के लिए, टॉर्च डेटा टाइप torch.bfloat16 का इस्तेमाल करें. इससे मॉडल की आउटपुट क्वालिटी पर ज़्यादा असर नहीं पड़ेगा. device सेटिंग के लिए, Colab के लिए "cuda" या iOS डिवाइसों के लिए "msu" का इस्तेमाल किया जा सकता है. इसके अलावा, अपने सिस्टम पर पहले जीपीयू को सेट करने के लिए, इसे सिर्फ़ 0 (शून्य) पर सेट किया जा सकता है. Pipeline क्लास का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Hugging Face का Pipelines दस्तावेज़ देखें.
टेक्स्ट जनरेट करने की सुविधा का इस्तेमाल करना
pipeline ऑब्जेक्ट में Gemma मॉडल लोड और कॉन्फ़िगर करने के बाद, मॉडल को प्रॉम्प्ट भेजे जा सकते हैं. यहां दिए गए कोड के उदाहरण में, text_inputs पैरामीटर का इस्तेमाल करके बुनियादी अनुरोध दिखाया गया है:
pipeline(text_inputs="roses are red")
[{'generated_text': 'roses are red, violets are blue, \ni love you more than you ever knew.\n\n**Explanation'}]
प्रॉम्प्ट टेंप्लेट का इस्तेमाल करना
ज़्यादा मुश्किल प्रॉम्प्ट का इस्तेमाल करके कॉन्टेंट जनरेट करते समय, अपने अनुरोध को स्ट्रक्चर करने के लिए प्रॉम्प्ट टेंप्लेट का इस्तेमाल करें. प्रॉम्प्ट टेंप्लेट की मदद से, user या model जैसी खास भूमिकाओं के लिए इनपुट तय किया जा सकता है. साथ ही, Gemma मॉडल के साथ कई बार चैट करने के लिए, यह ज़रूरी फ़ॉर्मैट है. नीचे दिए गए उदाहरण कोड में, Gemma के लिए प्रॉम्प्ट टेंप्लेट बनाने का तरीका बताया गया है:
messages = [
[
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."},]
},
{
"role": "user",
"content": [{"type": "text", "text": "Roses are red..."},]
},
],
]
pipeline(messages, max_new_tokens=50)
इमेज के डेटा से टेक्स्ट जनरेट करना
Gemma 3 से शुरू करके, 4B और इससे ज़्यादा साइज़ वाले मॉडल के लिए, इमेज डेटा का इस्तेमाल प्रॉम्प्ट के हिस्से के तौर पर किया जा सकता है. इस सेक्शन में, Transformers लाइब्रेरी का इस्तेमाल करके, Gemma मॉडल को लोड और कॉन्फ़िगर करने का तरीका बताया गया है. इससे इमेज डेटा और टेक्स्ट इनपुट का इस्तेमाल करके, टेक्स्ट आउटपुट जनरेट किया जा सकता है.
मॉडल लोड करें
इमेज डेटा के साथ इस्तेमाल करने के लिए Gemma मॉडल लोड करते समय, Transformer pipeline इंस्टेंस को खास तौर पर इमेज के साथ इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है. खास तौर पर, आपको ऐसा पाइपलाइन कॉन्फ़िगरेशन चुनना होगा जो विज़ुअल डेटा को हैंडल कर सके. इसके लिए, task पैरामीटर को "image-text-to-text" पर सेट करें. कोड के इस उदाहरण में दिखाया गया है:
import torch
from transformers import pipeline
pipeline = pipeline(
task="image-text-to-text", # required for image input
model="google/gemma-3-4b-it",
device=0,
torch_dtype=torch.bfloat16
)
टेक्स्ट जनरेट करने की सुविधा का इस्तेमाल करना
pipeline इंस्टेंस के साथ इमेज इनपुट को मैनेज करने के लिए, Gemma मॉडल को कॉन्फ़िगर करने के बाद, मॉडल को इमेज के साथ प्रॉम्प्ट भेजे जा सकते हैं. अपने प्रॉम्प्ट के टेक्स्ट में इमेज जोड़ने के लिए, <start_of_image> टोकन का इस्तेमाल करें. यहां दिए गए कोड के उदाहरण में, pipeline पैरामीटर का इस्तेमाल करके बुनियादी अनुरोध दिखाया गया है:
pipeline(
"https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg",
text="<start_of_image> What is shown in this image?"
)
[{'input_text': '<start_of_image> What is shown in this image?',
'generated_text': '<start_of_image> What is shown in this image?\n\nThis image showcases a traditional Indian Thali. A Thali is a platter that contains a variety'}]
प्रॉम्प्ट टेंप्लेट का इस्तेमाल करना
ज़्यादा मुश्किल प्रॉम्प्ट का इस्तेमाल करके कॉन्टेंट जनरेट करते समय, अपने अनुरोध को स्ट्रक्चर करने के लिए प्रॉम्प्ट टेंप्लेट का इस्तेमाल करें. प्रॉम्प्ट टेंप्लेट की मदद से, user या model जैसी खास भूमिकाओं के लिए इनपुट तय किया जा सकता है. साथ ही, Gemma मॉडल के साथ कई बार चैट करने के लिए, यह ज़रूरी फ़ॉर्मैट है. नीचे दिए गए उदाहरण कोड में, Gemma के लिए प्रॉम्प्ट टेंप्लेट बनाने का तरीका बताया गया है:
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
{"type": "text", "text": "What is shown in this image?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "This image shows"},
],
},
]
pipeline(text=messages, max_new_tokens=50, return_full_text=False)
content सूची में अतिरिक्त "type": "image", एंट्री शामिल करके, अपने प्रॉम्प्ट में कई इमेज शामिल की जा सकती हैं.
ऑडियो डेटा से टेक्स्ट जनरेट करना
Gemma 3n की मदद से, ऑडियो डेटा को प्रॉम्प्ट के तौर पर इस्तेमाल किया जा सकता है. इस सेक्शन में, ऑडियो डेटा और टेक्स्ट इनपुट का इस्तेमाल करके टेक्स्ट आउटपुट जनरेट करने के लिए, Gemma मॉडल को लोड और कॉन्फ़िगर करने के लिए, Transformers लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है.
Python पैकेज इंस्टॉल करना
Gemma के साथ ऑडियो इनपुट का इस्तेमाल करने के लिए, Transformers लाइब्रेरी का नया वर्शन ज़रूरी है. Gemma मॉडल को चलाने और ऑडियो डेटा के साथ अनुरोध करने के लिए, Hugging Face लाइब्रेरी इंस्टॉल करें. इसके लिए, यहां दिया गया तरीका अपनाएं.
# Install Pytorch & other libraries
%pip install "torch>=2.4.0"
# Install a transformers version that supports Gemma 3n (>= 4.53)
%pip install "transformers>=4.53.0"
मॉडल लोड करें
ऑडियो डेटा के साथ इस्तेमाल करने के लिए Gemma मॉडल लोड करते समय, Transformer इंस्टेंस को खास तौर पर ऑडियो डेटा के साथ इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है. खास तौर पर, आपको AutoProcessor और AutoModelForImageTextToText क्लास का इस्तेमाल करके, processor और model ऑब्जेक्ट तय करने होंगे. इसके लिए, यहां दिए गए कोड का उदाहरण देखें:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
प्रॉम्प्ट टेंप्लेट का इस्तेमाल करना
ऑडियो के साथ कॉन्टेंट जनरेट करते समय, अपने अनुरोध को व्यवस्थित करने के लिए प्रॉम्प्ट टेंप्लेट का इस्तेमाल करें. प्रॉम्प्ट टेंप्लेट की मदद से, user या model जैसी खास भूमिकाओं के लिए इनपुट तय किया जा सकता है. साथ ही, Gemma मॉडल के साथ कई बार चैट करने के लिए, यह ज़रूरी फ़ॉर्मैट है. यहां दिए गए उदाहरण कोड में, ऑडियो डेटा इनपुट के साथ Gemma के लिए प्रॉम्प्ट टेंप्लेट बनाने का तरीका बताया गया है:
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
{"type": "text", "text": "Transcribe this audio and complete the statement"},
]
}
]
content सूची में अतिरिक्त "type": "audio", एंट्री शामिल करके, अपने प्रॉम्प्ट में एक से ज़्यादा ऑडियो फ़ाइलें शामिल की जा सकती हैं. अगर आपको ऑडियो डेटा के साथ प्रॉम्प्ट देना है, लेकिन टेंप्लेट का इस्तेमाल नहीं करना है, तो अपने प्रॉम्प्ट के टेक्स्ट में <audio_soft_token> सिंटैक्स का इस्तेमाल करें.
<start_of_audio> के बजाय <audio_soft_token> का इस्तेमाल करती है, ताकि सभी मॉडल में एक जैसा फ़ॉर्मैट बना रहे.
टेक्स्ट जनरेट करने की सुविधा का इस्तेमाल करना
Gemma मॉडल को processor और model ऑब्जेक्ट के साथ कॉन्फ़िगर करने के बाद, प्रॉम्प्ट टेंप्लेट का इस्तेमाल करके ऑडियो डेटा के साथ प्रॉम्प्ट बनाया जा सकता है. इसके बाद, आउटपुट जनरेट करने के लिए प्रॉम्प्ट भेजा जा सकता है. यहां दिए गए उदाहरण कोड में, चैट टेंप्लेट का इस्तेमाल करके अनुरोध करने, आउटपुट जनरेट करने, और जवाब को डिकोड करने का तरीका दिखाया गया है:
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
# Generate output from the model
outputs = model.generate(**input_ids, max_new_tokens=128)
# decode and print the output as text
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
अगले चरण
Gemma मॉडल की मदद से, ऐप्लिकेशन बनाएं और ज़्यादा एक्सप्लोर करें:
- Hugging Face Transformers का इस्तेमाल करके, टेक्स्ट से जुड़े टास्क के लिए Gemma को फ़ाइन-ट्यून करना
- Hugging Face Transformers का इस्तेमाल करके, विज़न टास्क के लिए Gemma को फ़ाइन-ट्यून करना
- Gemma मॉडल पर डिस्ट्रिब्यूटेड फ़ाइन-ट्यूनिंग और अनुमान लगाने की सुविधा का इस्तेमाल करना
- Vertex AI के साथ Gemma के ओपन मॉडल इस्तेमाल करना
- Keras का इस्तेमाल करके Gemma को फ़ाइन-ट्यून करना और Vertex AI पर डिप्लॉय करना
Google Colab में चलाएं
GitHub पर सोर्स देखें