Gemma'yı Sarılma Yüz Dönüştürücüleri ile çalıştırma

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

Metin oluşturma, özetleme ve içerik analiz etme, Gemma açık modelleriyle yapabileceğiniz görevlerden sadece birkaçıdır. Bu eğitimde, metin içeriği oluşturmak için hem metin hem de resim girişi kullanarak Hugging Face Transformers'ı kullanarak Gemma'yı nasıl çalıştıracağınız gösterilmektedir. Transformers Python kitaplığı, Gemma da dahil olmak üzere önceden eğitilmiş üretken yapay zeka modellerine erişmek için bir API sağlar. Daha fazla bilgi için Transformers belgelerini inceleyin.

Kurulum

Bu eğitime başlamadan önce aşağıdaki adımları tamamlayın:

  • Hugging Face'a giriş yapıp bir Gemma modeli için Lisansı kabul et'i seçerek Gemma'ya erişin.
  • Çalıştırmak istediğiniz Gemma modeli boyutunu çalıştıracak yeterli kaynağa sahip bir Colab çalışma zamanı seçin. Daha fazla bilgi edinin.
  • Sarılma Erişim Jetonu oluşturun ve Colab ortamınıza ekleyin.

Erişim jetonunu yapılandırma

Gemma modellerinin Hugging Face web sitesinden indirilmesini sağlamak için erişim jetonunuzu Colab'a ekleyin. Çalışma kodunuza eklemeden jetonunuzu güvenli bir şekilde kaydetmek için Colab Gizli Bilgiler özelliğini kullanın.

Hugging Face erişim jetonunuzu Gizli olarak eklemek için:

  1. Arayüzün sol tarafındaki anahtar simgesini seçerek veya Araçlar > Komut paleti'ni seçerek, secrets yazıp Enter tuşuna basarak Gizli sekmesini açın.
  2. Yeni bir gizli giriş eklemek için Yeni gizli anahtar ekle'yi seçin.
  3. Ad alanına HF_TOKEN girin.
  4. Değer alanına Hugging Face erişim jetonunuzun metnini girin.
  5. Not defteri erişimi alanında, erişimi etkinleştirmek için anahtarı seçin.

Erişim jetonunuzu HF_TOKEN ve değer olarak girdikten sonra aşağıdaki kodu kullanarak Colab not defteri ortamınızda bu jetona erişebilir ve ayarlayabilirsiniz:

from google.colab import userdata
from huggingface_hub import login

# Login into Hugging Face Hub
hf_token = userdata.get('HF_TOKEN') # If you are running inside a Google Colab
login(hf_token)

Python paketlerini yükleme

Gemma modelini çalıştırmak ve istek göndermek için gereken Hugging Face kitaplıklarını yükleyin.

# Install Pytorch & other libraries
%pip install "torch>=2.4.0"

# Install a transformers version that supports Gemma 3 (>= 4.51.3)
%pip install "transformers>=4.51.3"

Metinden metin oluşturma

Gemma modelinden metin yanıt almak için metin isteğinde bulunmak, Gemma'yı kullanmanın en basit yoludur ve neredeyse tüm Gemma varyantlarında çalışır. Bu bölümde, Hugging Face Transformers kitaplığının nasıl kullanılacağı ve metinden metne oluşturma için bir Gemma modelinin nasıl yapılandırılacağı gösterilmektedir.

Modeli yükleme

Gemma ile model yürütme pipeline sınıfının bir örneğini oluşturmak için torch ve transformers kitaplıklarını kullanın. Çıkış oluşturmak veya talimatları uygulamak için bir model kullanırken, genellikle model kimliği dizesinde it bulunan bir talimat ayarlı (IT) model seçin. pipeline nesnesini kullanarak, kullanmak istediğiniz Gemma varyantını, gerçekleştirmek istediğiniz görev türünü (özellikle metinden metne oluşturma için "text-generation") belirtirsiniz. Aşağıdaki kod örneğinde gösterildiği gibi:

import torch
from transformers import pipeline

pipeline = pipeline(
    task="text-generation",
    model="google/gemma-3-4b-it",
    device=0, # "cuda" for Colab, "msu" for iOS devices
    torch_dtype=torch.bfloat16
)

Gemma, oluşturma için yalnızca birkaç task ayarını destekler. Kullanılabilir task ayarları hakkında daha fazla bilgi için Hugging Face ardışık düzenlerinin task() belgelerine bakın. Modelin çıkış kalitesini önemli ölçüde etkilemeden modelin hassasiyetini ve gereken bilgi işlem kaynaklarını azaltmak için torch veri türünü torch.bfloat16 kullanın. device ayarı için Colab'da "cuda", iOS cihazlarda "msu" kullanabilir veya sisteminizdeki ilk GPU'yu belirtmek için bu ayarı 0 (sıfır) olarak ayarlayabilirsiniz. Pipeline sınıfını kullanma hakkında daha fazla bilgi için Hugging Face Pipelines belgelerine bakın.

Metin oluşturma işlemini çalıştırma

Gemma modelini bir pipeline nesnesine yükleyip yapılandırdıktan sonra modele istem gönderebilirsiniz. Aşağıdaki örnek kodda, text_inputs parametresinin kullanıldığı temel bir istek gösterilmektedir:

pipeline(text_inputs="roses are red")
[{'generated_text': 'roses are red, violets are blue, \ni love you more than you ever knew.\n\n**Explanation'}]

İstem şablonu kullanma

Daha karmaşık istemler içeren içerikler oluştururken isteğinizi yapılandırmak için istem şablonu kullanın. İstem şablonu, user veya model gibi belirli rollerden gelen girişleri belirtmenize olanak tanır ve Gemma modelleriyle çok turlu sohbet etkileşimlerini yönetmek için gerekli bir biçimdir. Aşağıdaki örnek kodda, Gemma için istem şablonunun nasıl oluşturulacağı gösterilmektedir:

messages = [
    [
        {
            "role": "system",
            "content": [{"type": "text", "text": "You are a helpful assistant."},]
        },
        {
            "role": "user",
            "content": [{"type": "text", "text": "Roses are red..."},]
        },
    ],
]

pipeline(messages, max_new_tokens=50)

Resim verilerinden metin oluşturma

Gemma 3'ten itibaren, 4B ve üzeri model boyutları için isteminizin bir parçası olarak görüntü verilerini kullanabilirsiniz. Bu bölümde, metin çıkışı oluşturmak için resim verilerini ve metin girişini kullanacak bir Gemma modelini yüklemek ve yapılandırmak üzere Transformers kitaplığının nasıl kullanılacağı gösterilmektedir.

Modeli yükleme

Gemma modelini resim verileriyle kullanmak için yüklerken Transformer pipeline örneğini özellikle resimlerle kullanım için yapılandırırsınız. Özellikle, aşağıdaki kod örneğinde gösterildiği gibi task parametresini "image-text-to-text" olarak ayarlayarak görsel verileri işleyebilecek bir ardışık düzen yapılandırması seçmeniz gerekir:

import torch
from transformers import pipeline

pipeline = pipeline(
    task="image-text-to-text", # required for image input
    model="google/gemma-3-4b-it",
    device=0,
    torch_dtype=torch.bfloat16
)

Metin oluşturma işlemini çalıştırma

Gemma modelini, pipeline örneğiyle görüntü girişini işleyecek şekilde yapılandırdıktan sonra modele resim içeren istemler gönderebilirsiniz. Resmi isteminizi metnine eklemek için <start_of_image> jetonunu kullanın. Aşağıdaki örnek kodda, pipeline parametresinin kullanıldığı temel bir istek gösterilmektedir:

pipeline(
    "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg",
    text="<start_of_image> What is shown in this image?"
)
[{'input_text': '<start_of_image> What is shown in this image?',
  'generated_text': '<start_of_image> What is shown in this image?\n\nThis image showcases a traditional Indian Thali. A Thali is a platter that contains a variety'}]

İstem şablonu kullanma

Daha karmaşık istemler içeren içerikler oluştururken isteğinizi yapılandırmak için istem şablonu kullanın. İstem şablonu, user veya model gibi belirli rollerden gelen girişleri belirtmenize olanak tanır ve Gemma modelleriyle çok turlu sohbet etkileşimlerini yönetmek için gerekli bir biçimdir. Aşağıdaki örnek kodda, Gemma için istem şablonunun nasıl oluşturulacağı gösterilmektedir:

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
            {"type": "text", "text": "What is shown in this image?"},
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "text", "text": "This image shows"},
        ],
    },
]

pipeline(text=messages, max_new_tokens=50, return_full_text=False)

content listesine ek "type": "image", girişleri ekleyerek isteminize birden fazla resim ekleyebilirsiniz.

Ses verilerinden metin oluşturma

Gemma 3n ile isteminizi ses verilerini kullanarak oluşturabilirsiniz. Bu bölümde, ses verilerini ve metin girişini kullanarak metin çıkışı oluşturmak üzere bir Gemma modelini yüklemek ve yapılandırmak için Transformers kitaplığının nasıl kullanılacağı gösterilmektedir.

Python paketlerini yükleme

Gemma ile ses girişini kullanmak için Transformers kitaplıklarının güncel bir sürümü gerekir. Gemma modelini çalıştırmak ve ses verileriyle istek yapmak için Hugging Face kitaplıklarını aşağıda gösterildiği gibi yükleyin.

# Install Pytorch & other libraries
%pip install "torch>=2.4.0"

# Install a transformers version that supports Gemma 3n (>= 4.53)
%pip install "transformers>=4.53.0"

Modeli yükleme

Ses verileriyle kullanılmak üzere bir Gemma modeli yüklerken Transformer örneğini özellikle ses verileriyle kullanılmak üzere yapılandırırsınız. Özellikle, aşağıdaki kod örneğinde gösterildiği gibi AutoProcessor ve AutoModelForImageTextToText sınıflarını kullanarak bir processor ve model nesnesi tanımlamanız gerekir:

import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"

processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
            GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")

İstem şablonu kullanma

Ses içeren içerik oluştururken isteğinizi yapılandırmak için istem şablonu kullanın. İstem şablonu, user veya model gibi belirli rollerden gelen girişleri belirtmenize olanak tanır ve Gemma modelleriyle çok turlu sohbet etkileşimlerini yönetmek için gerekli bir biçimdir. Aşağıdaki örnek kodda, ses verisi girişi olan Gemma için istem şablonunun nasıl oluşturulacağı gösterilmektedir:

messages = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
            {"type": "text", "text": "Transcribe this audio and complete the statement"},
        ]
    }
]

content listesine ek "type": "audio", girişleri ekleyerek isteminize birden fazla resim ekleyebilirsiniz. Ses verisi kullanarak istem gönderiyorsanız ancak şablon kullanmıyorsanız istem metninizde <audio_soft_token> söz dizimini kullanın.

Metin oluşturma işlemini çalıştırma

Gemma modelini bir processor ve model nesnesi ile yapılandırdıktan ve istem şablonu kullanarak ses verileri içeren bir istem oluşturduktan sonra, çıktı oluşturmak için istemi gönderebilirsiniz. Aşağıdaki örnek kodda, sohbet şablonu kullanan bir istek, çıkış oluşturma ve yanıtın kodunu çözme gösterilmektedir:

input_ids = processor.apply_chat_template(
        messages,
        add_generation_prompt=True,
        tokenize=True, return_dict=True,
        return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)

# Generate output from the model
outputs = model.generate(**input_ids, max_new_tokens=128)

# decode and print the output as text
text = processor.batch_decode(
    outputs,
    skip_special_tokens=False,
    clean_up_tokenization_spaces=False
)
print(text[0])

Sonraki adımlar

Gemma modelleriyle daha fazla içerik oluşturun ve keşfedin: