![]() |
![]() |
|
![]() |
Bu eğitimde, KerasNLP'yi kullanarak Gemma'yı nasıl kullanmaya başlayacağınız gösterilmektedir. Gemma, Gemini modellerini oluşturmak için kullanılan aynı araştırma ve teknolojiden oluşturulmuş, hafif ve son teknoloji açık modellerden oluşan bir ailedir. KerasNLP, Keras'ta uygulanan ve JAX, PyTorch ve TensorFlow'da çalıştırılabilen doğal dil işleme (NLP) modelleri koleksiyonudur.
Bu eğitimde, ç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 okumanız önerilir ancak bu şart değildir. Bu eğitimde ilerlerken Keras hakkında daha fazla bilgi edineceksiniz.
Kurulum
Gemma kurulumu
Bu eğitimde yer alan adımları tamamlamak için önce Gemma kurulumu başlıklı makaledeki kurulum talimatlarını tamamlamanız gerekir. Gemma kurulum talimatlarında aşağıdakilerin nasıl yapılacağı gösterilmektedir:
- kaggle.com adresinden Gemma'ya erişin.
- Gemma 2B modelini çalıştıracak yeterli kaynağa sahip bir Colab çalışma zamanı seçin.
- Kaggle kullanıcı adı ve API anahtarı oluşturup yapılandırın.
Gemma kurulumunu tamamladıktan sonra, Colab ortamınız için ortam değişkenlerini ayarlayacağınız sonraki bölüme geçin.
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ış yüksek düzeyli, çok çerçeveli bir derin öğrenme API'sidir. Keras 3, arka uç olarak TensorFlow, JAX veya PyTorch'u seçmenize olanak tanır. Bu eğitim için üçünü de kullanabilirsiniz.
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 uygulamalarını sağlar. Bu eğitimde, nedensel dil modelleme için uçtan uca bir Gemma modeli olan GemmaCausalLM
'ü kullanarak bir model oluşturacaksınız. Nedensel dil modeli, sonraki jetonu önceki jetonlara göre 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ış bir mimariden ve ağırlıklardan örneklendirir. Yukarıdaki kodda "gemma2_2b_en"
dizesi, 2 milyar parametre içeren Gemma 2 2B modelinin hazır ayarını belirtir. 7B, 9B ve 27B parametrelerine sahip Gemma modelleri de mevcuttur. Gemma modellerinin kod dizelerini Kaggle'daki Model Varyasyonu listelemelerinde bulabilirsiniz.
Model hakkında daha fazla bilgi edinmek için summary
simgesini kullanın:
gemma_lm.summary()
Özet bölümünde göreceğiniz gibi, model 2,6 milyar eğitilebilir parametreye sahiptir.
Metin oluşturun
Artık metin oluşturmanın zamanı geldi. Modelde, bir istem temel alınarak metin oluşturan bir generate
yöntemi vardır. İsteğe bağlı max_length
bağımsız değişkeni, oluşturulan dizinin 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'
generate
'ü farklı bir istemle 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ürüldüğünü fark edersiniz. Bunun nedeni, belirli bir toplu boyut ve max_length
için generate
çağrısının her birinin XLA ile derlenmesidir. İlk çalıştırma pahalıdır ancak 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 örnekleyici 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 ayarlamanızı öneririz:
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, en yüksek K olasılığına sahip jetonlar arasından sonraki jetonu rastgele seçer.
Örnekleyici belirtmeniz gerekmez ve kullanım alanınız için yararlı değilse son kod snippet'ini yoksayabilirsiniz. Mevcut örnekleyiciler hakkında daha fazla bilgi edinmek istiyorsanız Örnekleyiciler başlıklı makaleyi inceleyin.
Sırada ne var?
Bu eğitimde, KerasNLP ve Gemma'yı kullanarak nasıl metin oluşturacağınızı öğrendiniz. Aşağıda, öğrenebileceğiniz diğer konularla ilgili birkaç öneri verilmiştir:
- Gemma modelinde ince ayar yapmayı öğrenin.
- Gemma modelinde dağıtılmış hassas ayarlama ve çıkarım yapmayı öğrenin.
- Gemma'nın Vertex AI ile entegrasyonu hakkında bilgi edinin.
- Gemma modellerini Vertex AI ile kullanmayı öğrenin.