![]() |
![]() |
![]() |
|
![]() |
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:
- 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. - 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 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:
- Hugging Face Transformers'ı kullanarak Gemma'da metin görevleri için ince ayar yapma
- Hugging Face Transformers'ı kullanarak Gemma'da görüntü görevleri için ince ayar yapma
- Gemma modellerinde dağıtılmış hassas ayarlama ve çıkarım yapma
- Gemma açık modellerini Vertex AI ile kullanma
- Keras'ı kullanarak Gemma'da ince ayar yapma ve Vertex AI'a dağıtma