KerasNLP का इस्तेमाल करके Gemma का इस्तेमाल करना शुरू करें

इस ट्यूटोरियल में, KerasNLP का इस्तेमाल करके Gemma का इस्तेमाल शुरू करने का तरीका बताया गया है. Gemma एक लाइटवेट और बेहतरीन ओपन मॉडल है. इसे Gemini मॉडल में इस्तेमाल की गई रिसर्च और तकनीक का इस्तेमाल करके बनाया गया है. KerasNLP, Keras में लागू किए गए नैचुरल लैंग्वेज प्रोसेसिंग (एनएलपी) मॉडल का कलेक्शन है. इसे JAX, PyTorch, और TensorFlow पर चलाया जा सकता है.

इस ट्यूटोरियल में, आपको कई प्रॉम्प्ट के लिए टेक्स्ट जवाब जनरेट करने के लिए, Gemma का इस्तेमाल करना होगा. अगर आपने पहले कभी Keras का इस्तेमाल नहीं किया है, तो हो सकता है कि आप शुरू करने से पहले Keras का इस्तेमाल शुरू करना लेख पढ़ें. हालांकि, ऐसा करना ज़रूरी नहीं है. इस ट्यूटोरियल को पूरा करने पर, आपको Keras के बारे में ज़्यादा जानकारी मिलेगी.

सेटअप

Gemma सेटअप करना

यह ट्यूटोरियल पूरा करने के लिए, आपको पहले Gemma सेटअप पर जाकर, सेटअप करने के निर्देशों का पालन करना होगा. Gemma सेटअप करने के निर्देशों में, ये काम करने का तरीका बताया गया है:

  • kaggle.com पर जाकर, Gemma का ऐक्सेस पाएं.
  • Gemma 2B मॉडल को चलाने के लिए, ज़रूरत के मुताबिक संसाधनों वाला Colab रनटाइम चुनें.
  • Kaggle उपयोगकर्ता नाम और एपीआई पासकोड जनरेट और कॉन्फ़िगर करें.

Gemma का सेटअप पूरा करने के बाद, अगले सेक्शन पर जाएं. यहां आपको अपने Colab एनवायरमेंट के लिए एनवायरमेंट वैरिएबल सेट करने होंगे.

एनवायरमेंट वैरिएबल सेट करना

KAGGLE_USERNAME और KAGGLE_KEY के लिए एनवायरमेंट वैरिएबल सेट करें.

import os
from google.colab import userdata

# Note: `userdata.get` is a Colab API. If you're not using Colab, set the env
# vars as appropriate for your system.
os.environ["KAGGLE_USERNAME"] = userdata.get('KAGGLE_USERNAME')
os.environ["KAGGLE_KEY"] = userdata.get('KAGGLE_KEY')

डिपेंडेंसी इंस्टॉल करना

Keras और KerasNLP इंस्टॉल करें.

# Install Keras 3 last. See https://keras.io/getting_started/ for more details.
pip install -q -U keras-nlp
pip install -q -U "keras>=3"

कोई बैकएंड चुनना

Keras, एक हाई-लेवल, मल्टी-फ़्रेमवर्क डीप लर्निंग एपीआई है. इसे आसानी से इस्तेमाल करने के लिए डिज़ाइन किया गया है. Keras 3 में, बैकएंड के तौर पर TensorFlow, JAX या PyTorch को चुना जा सकता है. इस ट्यूटोरियल के लिए, तीनों विकल्प काम करेंगे.

import os

os.environ["KERAS_BACKEND"] = "jax"  # Or "tensorflow" or "torch".
os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.9"

पैकेज इंपोर्ट करना

Keras और KerasNLP इंपोर्ट करें.

import keras
import keras_nlp

मॉडल बनाना

KerasNLP, कई लोकप्रिय मॉडल आर्किटेक्चर लागू करता है. इस ट्यूटोरियल में, आपको GemmaCausalLM का इस्तेमाल करके एक मॉडल बनाना होगा. यह मॉडल, कैज़ल लैंग्वेज मॉडलिंग के लिए, एंड-टू-एंड Gemma मॉडल है. कैज़ल लैंग्वेज मॉडल, पिछले टोकन के आधार पर अगले टोकन का अनुमान लगाता है.

from_preset वाले तरीके का इस्तेमाल करके मॉडल बनाएं:

gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset("gemma2_2b_en")

GemmaCausalLM.from_preset() फ़ंक्शन, पहले से तय किए गए आर्किटेक्चर और वेट से मॉडल को इंस्टैंशिएट करता है. ऊपर दिए गए कोड में, स्ट्रिंग "gemma2_2b_en", दो अरब पैरामीटर वाले Gemma 2 2B मॉडल के प्रीसेट के बारे में बताती है. 7B, 9B, और 27B पैरामीटर वाले Gemma मॉडल भी उपलब्ध हैं. Kaggle पर, Gemma मॉडल के मॉडल वैरिएशन की लिस्टिंग में, कोड स्ट्रिंग देखी जा सकती हैं.

मॉडल के बारे में ज़्यादा जानकारी पाने के लिए, summary का इस्तेमाल करें:

gemma_lm.summary()

खास जानकारी से पता चलता है कि मॉडल में 2.6 अरब ऐसे पैरामीटर हैं जिन्हें ट्रेन किया जा सकता है.

टेक्स्ट जनरेट करना

अब कुछ टेक्स्ट जनरेट करने का समय आ गया है! मॉडल में generate का एक तरीका है, जो प्रॉम्प्ट के आधार पर टेक्स्ट जनरेट करता है. max_length आर्ग्युमेंट (ज़रूरी नहीं) से, जनरेट किए गए क्रम की ज़्यादा से ज़्यादा लंबाई तय होती है.

इसे प्रॉम्प्ट "what is keras in 3 bullet points?" के साथ आज़माएं.

gemma_lm.generate("what is keras in 3 bullet points?", max_length=64)
'what is keras in 3 bullet points?\n\n[Answer 1]\n\nKeras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, Theano, or PlaidML. It is designed to be user-friendly and easy to extend.\n\n'

किसी दूसरे प्रॉम्प्ट का इस्तेमाल करके, generate को फिर से कॉल करें.

gemma_lm.generate("The universe is", max_length=64)
'The universe is a vast and mysterious place, filled with countless stars, planets, and galaxies. But what if there was a way to see the universe in a whole new way? What if we could see the universe as it was when it was first created? What if we could see the universe as it is now'

अगर JAX या TensorFlow बैकएंड का इस्तेमाल किया जा रहा है, तो आपको पता चलेगा कि दूसरा generate कॉल तुरंत रिटर्न हो जाता है. इसकी वजह यह है कि किसी दिए गए बैच साइज़ और max_length के लिए, generate को हर कॉल XLA के साथ कंपाइल किया जाता है. पहली बार चलाने पर ज़्यादा समय लगता है, लेकिन बाद में इसे तेज़ी से चलाया जा सकता है.

इनपुट के तौर पर सूची का इस्तेमाल करके, एक साथ कई प्रॉम्प्ट भी दिए जा सकते हैं:

gemma_lm.generate(
    ["what is keras in 3 bullet points?",
     "The universe is"],
    max_length=64)
['what is keras in 3 bullet points?\n\n[Answer 1]\n\nKeras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, Theano, or PlaidML. It is designed to be user-friendly and easy to extend.\n\n',
 'The universe is a vast and mysterious place, filled with countless stars, planets, and galaxies. But what if there was a way to see the universe in a whole new way? What if we could see the universe as it was when it was first created? What if we could see the universe as it is now']

ज़रूरी नहीं: कोई दूसरा सैंपलर आज़माएं

compile() पर sampler आर्ग्युमेंट सेट करके, GemmaCausalLM के लिए जनरेशन की रणनीति को कंट्रोल किया जा सकता है. डिफ़ॉल्ट रूप से, "greedy" सैंपलिंग का इस्तेमाल किया जाएगा.

एक्सपेरिमेंट के तौर पर, "top_k" रणनीति सेट करने की कोशिश करें:

gemma_lm.compile(sampler="top_k")
gemma_lm.generate("The universe is", max_length=64)
'The universe is a big place, and there are so many things we do not know or understand about it.\n\nBut we can learn a lot about our world by studying what is known to us.\n\nFor example, if you look at the moon, it has many features that can be seen from the surface.'

डिफ़ॉल्ट 'लालची' एल्गोरिदम हमेशा सबसे ज़्यादा संभावना वाले टोकन को चुनता है, जबकि टॉप-K एल्गोरिदम, टॉप K संभावना वाले टोकन में से अगला टोकन चुनता है.

आपको सैंपलर की जानकारी देने की ज़रूरत नहीं है. साथ ही, अगर आखिरी कोड स्निपेट आपके इस्तेमाल के उदाहरण के लिए मददगार नहीं है, तो उसे अनदेखा किया जा सकता है. अगर आपको उपलब्ध सैंपलर के बारे में ज़्यादा जानना है, तो सैंपलर लेख पढ़ें.

आगे क्या करना है

इस ट्यूटोरियल में, आपको KerasNLP और Gemma का इस्तेमाल करके टेक्स्ट जनरेट करने का तरीका पता चला. यहां कुछ सुझाव दिए गए हैं कि आगे क्या सीखें: