![]() |
![]() |
![]() |
|
![]() |
Gemma के ओपन मॉडल की मदद से, टेक्स्ट जनरेट करना, कॉन्टेंट की खास जानकारी देना, और उसका विश्लेषण करना जैसे कई काम किए जा सकते हैं. इस ट्यूटोरियल में, Hugging Face Transformers का इस्तेमाल करके Gemma को चलाने का तरीका बताया गया है. इसमें टेक्स्ट और इमेज, दोनों तरह के इनपुट का इस्तेमाल करके टेक्स्ट कॉन्टेंट जनरेट करने के बारे में बताया गया है. Transformers Python लाइब्रेरी, पहले से ट्रेन किए गए जनरेटिव एआई मॉडल को ऐक्सेस करने के लिए एपीआई उपलब्ध कराती है. इनमें Gemma भी शामिल है. ज़्यादा जानकारी के लिए, Transformers का दस्तावेज़ देखें.
सेटअप
यह ट्यूटोरियल शुरू करने से पहले, यह तरीका अपनाएं:
- Hugging Face में लॉग इन करके, Gemma का ऐक्सेस पाएं. इसके बाद, Gemma मॉडल के लिए लाइसेंस स्वीकार करें को चुनें.
- Gemma मॉडल के जिस साइज़ को चलाना है उसके लिए ज़रूरी संसाधनों वाला Colab रनटाइम चुनें. ज़्यादा जानें.
- Hugging Face का ऐक्सेस टोकन जनरेट करें और उसे अपने Colab एनवायरमेंट में जोड़ें.
ऐक्सेस टोकन कॉन्फ़िगर करना
Hugging Face की वेबसाइट से Gemma मॉडल डाउनलोड करने की सुविधा चालू करने के लिए, Colab में अपना ऐक्सेस टोकन जोड़ें. अपने टोकन को काम करने वाले कोड में जोड़े बिना, उसे सुरक्षित तरीके से सेव करने के लिए, Colab की सुरक्षित जानकारी सुविधा का इस्तेमाल करें.
Hugging Face का ऐक्सेस टोकन, सीक्रेट के तौर पर जोड़ने के लिए:
- इंटरफ़ेस की बाईं ओर मौजूद कुंजी आइकॉन को चुनकर, 'सुरक्षित जानकारी' टैब खोलें या टूल > कमांड पैलेट को चुनें. इसके बाद,
secrets
टाइप करें और Enter दबाएं. - कोई नई सीक्रेट एंट्री जोड़ने के लिए, नया सीक्रेट जोड़ें को चुनें.
- नाम फ़ील्ड में,
HF_TOKEN
डालें. - वैल्यू फ़ील्ड में, Hugging Face का ऐक्सेस टोकन डालें.
- नोटबुक का ऐक्सेस फ़ील्ड में, ऐक्सेस चालू करने के लिए स्विच चुनें.
HF_TOKEN
और वैल्यू के तौर पर अपना ऐक्सेस टोकन डालने के बाद, नीचे दिए गए कोड का इस्तेमाल करके, उसे Colab की नोटबुक के एनवायरमेंट में ऐक्सेस और सेट किया जा सकता है:
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 डेटा टाइप torch.bfloat16
का इस्तेमाल करें. इससे मॉडल के आउटपुट की क्वालिटी पर काफ़ी असर नहीं पड़ेगा. device
सेटिंग के लिए, Colab के लिए "cuda"
या iOS डिवाइसों के लिए "msu"
का इस्तेमाल किया जा सकता है. इसके अलावा, अपने सिस्टम पर पहले जीपीयू की जानकारी देने के लिए, इसे 0
(शून्य) पर सेट किया जा सकता है. Pipeline क्लास का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Hugging Face Pipelines दस्तावेज़ देखें.
टेक्स्ट जनरेशन की सुविधा चलाना
Gemma मॉडल को pipeline
ऑब्जेक्ट में लोड और कॉन्फ़िगर करने के बाद, मॉडल को प्रॉम्प्ट भेजे जा सकते हैं. यहां दिए गए कोड के उदाहरण में, 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 और उससे ज़्यादा के लिए, प्रॉम्प्ट के हिस्से के तौर पर इमेज डेटा का इस्तेमाल किया जा सकता है. इस सेक्शन में, Gemma मॉडल को लोड और कॉन्फ़िगर करने के लिए, Transformers लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है. इससे, टेक्स्ट आउटपुट जनरेट करने के लिए, इमेज डेटा और टेक्स्ट इनपुट का इस्तेमाल किया जा सकता है.
मॉडल लोड करना
इमेज डेटा के साथ इस्तेमाल करने के लिए 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
)
टेक्स्ट जनरेट करने की सुविधा चलाना
Gemma मॉडल को pipeline
इंस्टेंस के साथ इमेज इनपुट को हैंडल करने के लिए कॉन्फ़िगर करने के बाद, मॉडल को इमेज के साथ प्रॉम्प्ट भेजे जा सकते हैं. अपने प्रॉम्प्ट के टेक्स्ट में इमेज जोड़ने के लिए, <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>
सिंटैक्स का इस्तेमाल करें.
टेक्स्ट जनरेट करने की सुविधा चलाना
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 पर डिप्लॉय करना