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ğiticide, çıkarım yapmak ve metin oluşturmak için Gemma'nın KerasNLP ile nasıl kullanılacağı gösterilmektedir. 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.
- Gemma 2B modelini çalıştırmak için 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 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çmenize olanak tanır: 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("gemma_2b_en")
Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/1' to your Colab notebook... Attaching 'config.json' from model 'keras/gemma/keras/gemma_2b_en/1' to your Colab notebook... Attaching 'model.weights.h5' from model 'keras/gemma/keras/gemma_2b_en/1' to your Colab notebook... Attaching 'tokenizer.json' from model 'keras/gemma/keras/gemma_2b_en/1' to your Colab notebook... Attaching 'assets/tokenizer/vocabulary.spm' from model 'keras/gemma/keras/gemma_2b_en/1' to your Colab notebook...
GemmaCausalLM.from_preset()
işlevi, modeli önceden ayarlanmış mimariden ve ağırlıklardan örneklendirir. Yukarıdaki kodda "gemma_2b_en"
dizesi, 2 milyar parametreyle Gemma 2B modeli için hazır ayarı belirtir. 7B, 9B ve 27B parametrelerine sahip Gemma modelleri de mevcuttur. Gemma modellerinin kod dizelerini kaggle.com'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,5 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 the meaning of life?"
istemiyle deneyin.
gemma_lm.generate("What is the meaning of life?", max_length=64)
'What is the meaning of life?\n\nThe question is one of the most important questions in the world.\n\nIt’s the question that has been asked by philosophers, theologians, and scientists for centuries.\n\nAnd it’s the question that has been asked by people who are looking for answers to their own lives'
Farklı bir istemle generate
numaralı telefonu tekrar aramayı deneyin.
gemma_lm.generate("How does the brain work?", max_length=64)
'How does the brain work?\n\nThe brain is the most complex organ in the human body. It is responsible for controlling all of the body’s functions, including breathing, heart rate, digestion, and more. The brain is also responsible for thinking, feeling, and making decisions.\n\nThe brain is made up'
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 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 the meaning of life?",
"How does the brain work?"],
max_length=64)
['What is the meaning of life?\n\nThe question is one of the most important questions in the world.\n\nIt’s the question that has been asked by philosophers, theologians, and scientists for centuries.\n\nAnd it’s the question that has been asked by people who are looking for answers to their own lives', 'How does the brain work?\n\nThe brain is the most complex organ in the human body. It is responsible for controlling all of the body’s functions, including breathing, heart rate, digestion, and more. The brain is also responsible for thinking, feeling, and making decisions.\n\nThe brain is made up']
İ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("What is the meaning of life?", max_length=64)
'What is the meaning of life? That was a question I asked myself as I was driving home from work one night in 2012. I was driving through the city of San Bernardino, and all I could think was, “What the heck am I doing?”\n\nMy life was completely different. I'
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.