![]() |
![]() |
![]() |
|
![]() |
Gemma açık modelleriyle metin oluşturma, özetleme ve içerik analizi gibi görevleri gerçekleştirebilirsiniz. Bu eğiticide, metin içeriği oluşturmak için hem metin hem de resim girişi kullanarak Hugging Face Transformers ile Gemma'yı çalıştırmaya nasıl başlayacağınız gösterilmektedir. Transformers Python kitaplığı, Gemma dahil olmak üzere önceden eğitilmiş üretken yapay zeka modellerine erişmek için bir API sağlar. Daha fazla bilgi için Transformers belgelerine bakın.
Kurulum
Bu eğitime başlamadan önce aşağıdaki adımları tamamlayın:
- Hugging Face'e giriş yapıp bir Gemma modeli için Lisansı onayla'yı seçerek Gemma'ya erişebilirsiniz.
- Çalıştırmak istediğiniz Gemma model boyutunu çalıştırmak için yeterli kaynaklara sahip bir Colab çalışma zamanı seçin. Daha fazla bilgi edinin.
- Hugging Face erişim jetonu oluşturun ve Colab ortamınıza ekleyin.
Erişim jetonunu yapılandırma
Hugging Face web sitesinden Gemma modellerinin indirilmesini etkinleştirmek için erişim jetonunuzu Colab'e ekleyin. Çalışma kodunuza eklemeden jetonunuzu güvenli bir şekilde kaydetmek için Colab'in Secrets özelliğini kullanın.
Hugging Face erişim jetonunuzu gizli olarak eklemek için:
- Arayüzün sol tarafındaki anahtar simgesini seçerek sır sekmesini açın veya Araçlar > Komut paleti'ni seçip
secrets
yazın ve Enter tuşuna basın. - Yeni bir gizli giriş eklemek için Yeni gizli anahtar ekle'yi seçin.
- Ad alanına
HF_TOKEN
girin. - Değer alanına Hugging Face erişim jetonunuzun metnini girin.
- 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 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 istekte bulunmak 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'yı kullanmanın en basit yolu, metin yanıtı almak için Gemma modeline metin istemi göndermektir. Bu yöntem, neredeyse tüm Gemma varyantlarıyla çalışır. Bu bölümde, metinden metne oluşturma için Gemma modelini yüklemek ve yapılandırmak üzere Hugging Face Transformers kitaplığının nasıl kullanılacağı gösterilmektedir.
Model yükle
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 talimatlara göre ayarlanmış (IT) bir model seçin. Bu modellerin model kimliği dizesinde genellikle it
bulunur. pipeline
nesnesini kullanarak, kullanmak istediğiniz Gemma varyantını ve yapmak istediğiniz görev türünü (özellikle metinden metne oluşturma için "text-generation"
) belirtirsiniz. Bu işlem, aşağıdaki kod örneğinde gösterilmiştir:
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, yalnızca birkaç task
oluşturma ayarını destekler. Kullanılabilir task
ayarları hakkında daha fazla bilgi için Hugging Face Pipelines 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'de "cuda"
, iOS cihazlarda "msu"
kullanabilir veya sisteminizdeki ilk GPU'yu belirtmek için bunu 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 istemlerle içerik oluştururken isteğinizi yapılandırmak için bir 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 nasıl istem şablonu 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ında isteminizin bir parçası olarak görüntü verilerini kullanabilirsiniz. Bu bölümde, Transformers kitaplığını kullanarak bir Gemma modelini yükleyip yapılandırarak resim verilerini ve metin girişini kullanarak metin çıkışı oluşturma işlemi gösterilmektedir.
Model yükle
Gemma modelini görsel verilerle kullanılmak üzere yüklerken Transformer pipeline
örneğini özellikle görsellerle kullanılacak şekilde 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şleyebilen bir kanal 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 görüntü içeren istemler gönderebilirsiniz. İsteminizin metnine resmi eklemek için <start_of_image>
simgesini 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 istemlerle içerik oluştururken isteğinizi yapılandırmak için bir 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 nasıl istem şablonu 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 dahil edebilirsiniz.
Ses verilerinden metin oluşturma
Gemma 3n ile isteminizin bir parçası olarak ses verilerini kullanabilirsiniz. Bu bölümde, Transformers kitaplığını kullanarak bir Gemma modelini yükleyip ses verilerini ve metin girişini kullanarak metin çıkışı oluşturacak şekilde nasıl yapılandıracağınız gösterilmektedir.
Python paketlerini yükleme
Gemma ile ses girişini kullanmak için Transformers kitaplıklarının yeni bir sürümü gerekir. Gemma modelini çalıştırmak ve ses verileriyle istekte bulunmak için Hugging Face kitaplıklarını aşağıdaki şekilde 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"
Model yükleme
Ses verileriyle kullanılmak üzere bir Gemma modeli yüklerken Transformer örneğini özellikle ses verileriyle kullanılacak şekilde 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 bir istem şablonu kullanın. İstem şablonu, user
veya model
gibi belirli rollerden giriş 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şiyle 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 ses dosyası dahil edebilirsiniz. Ses verileriyle istemde bulunuyorsanız ancak şablon kullanmıyorsanız isteminizin metninde <audio_soft_token>
söz dizimini kullanın.
Metin oluşturma işlemini çalıştırma
Gemma modelini processor
ve model
nesnesiyle yapılandırıp istem şablonunu kullanarak ses verileri içeren bir istem oluşturduktan sonra, istemi göndererek çıkış oluşturabilirsiniz. Aşağıdaki örnek kodda, sohbet şablonu kullanılarak yapılan bir istek, çıktı oluşturma ve yanıtın kodunu çözme işlemi 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 fazlasını oluşturun ve keşfedin:
- Hugging Face Transformers'ı kullanarak Gemma'yı metin görevleri için ince ayarlama
- Hugging Face Transformers'ı kullanarak Gemma'yı görme görevleri için ince ayar yapma
- Gemma modellerinde dağıtılmış ince ayar ve çıkarım gerçekleştirme
- Gemma açık modellerini Vertex AI ile kullanma
- Keras'ı kullanarak Gemma'yı ince ayarlama ve Vertex AI'da dağıtma