KerasNLP kullanarak Gemma'yı kullanmaya başlayın

ai.google.dev'de görüntüleyin Google Colab'de çalıştır Vertex AI'da aç Kaynağı GitHub'da görüntüle

Bu eğitim, KerasNLP kullanarak Gemma'yı nasıl kullanmaya başlayacağınızı gösterir. Gemma, Gemini modellerini oluşturmak için kullanılan araştırma ve teknolojiyle geliştirilmiş hafif, son teknoloji ürünü açık modeller ailesidir. KerasNLP, Keras'ta uygulanan ve JAX, PyTorch ve TensorFlow'da çalıştırılabilen bir doğal dil işleme (NLP) modelleri koleksiyonudur.

Bu eğiticide, çeşitli istemlere metin yanıtları oluşturmak için Gemma'yı kullanacaksınız. Keras'ı kullanmaya yeni başladıysanız başlamadan önce Keras'ı kullanmaya başlama başlıklı makaleyi okuyabilirsiniz ancak bu zorunlu değildir. Bu eğiticide ilerledikçe Keras hakkında daha fazla bilgi edineceksiniz.

Kurulum

Gemma kurulumu

Bu eğiticiyi tamamlamak için önce Gemma kurulumu bölümündeki kurulum talimatlarını tamamlamanız gerekir. Gemma kurulum talimatları, aşağıdakileri nasıl yapacağınızı gösterir:

  • kaggle.com adresinden Gemma'ya erişin.
  • Çalıştırmak için yeterli kaynağa sahip bir Colab çalışma zamanı seçin Gemma 2B modeli.
  • Kaggle kullanıcı adı ve API anahtarı oluşturup yapılandırın.

Gemma kurulumunu tamamladıktan sonra bir sonraki bölüme geçin. Burada, Colab ortamınız için ortam değişkenlerini ayarlayabilirsiniz.

Ortam değişkenlerini ayarlama

KAGGLE_USERNAME ve KAGGLE_KEY için ortam değişkenlerini ayarlayın.

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')

Bağımlıları yükleme

Keras ve KerasNLP'yi yükleyin.

# 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"

Arka uç seçin

Keras, basitlik ve kullanım kolaylığı için tasarlanmış üst düzey, çok çerçeveli bir derin öğrenme API'sidir. Keras 3 arka ucu seçmenizi sağlar: TensorFlow, JAX veya PyTorch. Bu eğitimde üçü de kullanılabilir.

import os

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

Paketleri içe aktarma

Keras ve KerasNLP'yi içe aktarın.

import keras
import keras_nlp

Model oluşturma

KerasNLP, birçok popüler model mimarisinin uygulanmasını sağlar. Bu eğiticide, nedensel dil modelleme için uçtan uca Gemma modeli olan GemmaCausalLM'i kullanarak bir model oluşturacaksınız. Nedensel dil modeli, önceki jetonlara dayanarak bir sonraki jetonu tahmin eder.

from_preset yöntemini kullanarak modeli oluşturun:

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

GemmaCausalLM.from_preset() işlevi, modeli önceden ayarlanmış mimariden ve ağırlıklardan örneklendirir. Yukarıdaki kodda "gemma2_2b_en" dizesi, 2 milyar parametreyle Gemma 2 2B modelini içeren hazır ayarı belirtir. 7B, 9B ve 27B parametrelerine sahip Gemma modelleri de mevcuttur. Gemma modellerinin kod dizelerini, Kaggle'daki Model Varyasyonu girişlerinde bulabilirsiniz.

Model hakkında daha fazla bilgi edinmek için summary kullanın:

gemma_lm.summary()

Özetten görebileceğiniz gibi, modelin 2,6 milyar eğitilebilir parametresi vardır.

Metin oluşturun

Şimdi biraz metin oluşturmaya geldi. Modelde, isteme göre metin oluşturan bir generate yöntemi bulunuyor. İsteğe bağlı max_length bağımsız değişkeni, oluşturulan adım sırasının maksimum uzunluğunu belirtir.

"what is keras in 3 bullet points?" istemiyle deneyin.

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'

Farklı bir istemle generate numaralı telefonu tekrar aramayı deneyin.

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 veya TensorFlow arka uçlarında çalışıyorsanız ikinci generate çağrısının neredeyse anında döndüğünü fark edeceksiniz. Bunun nedeni, belirli bir toplu boyut ve max_length için yapılan her generate çağrısının XLA ile derlenmesidir. İlk çalıştırma pahalı olsa da sonraki çalıştırmalar çok daha hızlıdır.

Giriş olarak bir liste kullanarak toplu istemler de sağlayabilirsiniz:

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']

İsteğe bağlı: Farklı bir tanıtım deneyin

compile() üzerinde sampler bağımsız değişkenini ayarlayarak GemmaCausalLM için oluşturma stratejisini kontrol edebilirsiniz. Varsayılan olarak, "greedy" örnekleme kullanılır.

Deneme olarak bir "top_k" stratejisi oluşturmayı deneyin:

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.'

Varsayılan, açgözlü algoritma her zaman en yüksek olasılığa sahip jetonu seçerken ilk K algoritması, en yüksek K olasılığına ait jetonlardan bir sonraki jetonu rastgele seçer.

Örnekleyici belirtmeniz gerekmez. Kullanım alanınız için faydalı değilse son kod snippet'ini göz ardı edebilirsiniz. Kullanılabilir örnekler hakkında daha fazla bilgi edinmek için Örnekleyiciler sayfasına bakın.

Sırada ne var?

Bu eğiticide KerasNLP ve Gemma'yı kullanarak nasıl metin oluşturacağınızı öğrendiniz. Aşağıda, neler öğrenebileceğinize dair birkaç öneri verilmiştir: