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:
- Gemma modelinde ince ayar yapmayı öğrenin.
- Gemma modelinde dağıtılmış ince ayar ve çıkarım gerçekleştirme hakkında bilgi edinin.
- Vertex AI ile Gemma entegrasyonu hakkında bilgi edinin
- Gemma modellerini Vertex AI ile nasıl kullanacağınızı öğrenin.