|
|
Google Colab'de çalıştırma
|
|
|
Kaynağı GitHub'da görüntüleyin
|
Gemma, Gemini modellerini oluşturmak için kullanılan araştırma ve teknolojinin aynısıyla geliştirilmiş, hafif ve son teknoloji açık model ailesidir. Gemma 4, dünyanın en verimli açık ağırlıklı model ailesi olacak şekilde tasarlanmıştır.
Bu belgede, Hugging Face transformers kitaplığını kullanarak Gemma 4 ile temel metin çıkarımı gerçekleştirme hakkında bir kılavuz sunulmaktadır. Ortam kurulumu, model yükleme ve tek dönüşlü istemler, yapılandırılmış çok dönüşlü görüşmeler ve sistem talimatlarını uygulama gibi çeşitli metin oluşturma senaryoları ele alınır.
Bu not defteri T4 GPU'da çalışır.
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 librariespip install torch accelerate# Install the transformers librarypip install transformers
Dialog, görüşmeleri düzenlemek ve görüntülemek için kullanılan bir kitaplıktır.
pip install dialogModeli Yükle
Ardışık düzeni yüklemek için transformers kitaplığını kullanın.
MODEL_ID = "google/gemma-4-E2B-it" # @param ["google/gemma-4-E2B-it","google/gemma-4-E4B-it", "google/gemma-4-31B-it", "google/gemma-4-26B-A4B-it"]
from transformers import pipeline
txt_pipe = pipeline(
task="text-generation",
model=MODEL_ID,
device_map="auto",
dtype="auto"
)
Loading weights: 0%| | 0/2011 [00:00<?, ?it/s]
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:
output = txt_pipe(text_inputs="<|turn>user\nRoses are..<turn|>\n<|turn>model\n")
print(output[0]['generated_text'])
Both `max_new_tokens` (=256) and `max_length`(=20) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation) <|turn>user Roses are..<turn|> <|turn>model Here are a few ways to complete the phrase "Roses are...": **Classic/Poetic:** * **Roses are red.** (The most famous completion, though it usually goes "Roses are red, Violets are blue.") * **Roses are beautiful.** * **Roses are fragrant.** **Simple/Direct:** * **Roses are lovely.** * **Roses are soft.** **If you want a specific tone, let me know! 😊**
İletişim kutusu kitaplığını kullanma
import dialog
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
conv = dialog.Conversation(
dialog.User("Roses are...")
)
output = txt_pipe(text_inputs=conv.as_text(), return_full_text=False, generation_config=config)
conv += dialog.Model(output[0]['generated_text'])
print(conv.as_text())
conv.show()
<|turn>user Roses are...<turn|> <|turn>model Here are a few ways to complete the phrase "Roses are...": **Focusing on their beauty:** * **Roses are beautiful.** * **Roses are gorgeous.** **Focusing on their scent:** * **Roses are fragrant.** * **Roses are sweet-smelling.** **Focusing on their symbolism (if you want a deeper meaning):** * **Roses are love.** * **Roses are romantic.** **Focusing on a general observation:** * **Roses are lovely.** * **Roses are wonderful.** **Which completion do you like best, or were you thinking of a specific meaning?** <dialog._src.widget.Conversation object at 0x7f1bb1a5d8b0>
İ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 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, Gemma için istem şablonunun nasıl oluşturulacağı gösterilmektedir:
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Write a short poem about the Kraken."},
]
}
]
output = txt_pipe(messages, return_full_text=False, generation_config=config)
print(output[0]['generated_text'])
From sunless depths, a shadow stirs, Where ocean's crushing silence blurs. A titan sleeps in inky night, With tentacles of dreadful might. A hundred arms, a crushing hold, A legend whispered, ages old. The deep's dark king, a monstrous grace, The Kraken claims its watery space.
Çok adımlı görüşme
Çok turlu bir kurulumda, görüşme geçmişi alternatif user ve model rolleri dizisi olarak korunur. Bu kümülatif liste, modelin hafızası olarak işlev görür ve her yeni çıktının önceki diyalogdan etkilenmesini sağlar.
import dialog
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
# User turn #1
conv = dialog.Conversation(
dialog.User("Write a short poem about the Kraken.")
)
# Model response #1
output = txt_pipe(text_inputs=conv.as_text(), return_full_text=False, generation_config=config)
conv += dialog.Model(output[0]['generated_text'])
# User turn #2
conv += dialog.User("Now with the Siren.")
# Model response #2
output = txt_pipe(text_inputs=conv.as_text(), return_full_text=False, generation_config=config)
conv += dialog.Model(output[0]['generated_text'])
print(conv.as_text())
conv.show()
<|turn>user Write a short poem about the Kraken.<turn|> <|turn>model In depths where sunlight fades, A monstrous shadow plays. The Kraken wakes, with churning tide, A living horror, bold and wide.<turn|> <|turn>user Now with the Siren.<turn|> <|turn>model Where coral gardens sleep, And ocean secrets keep, The Siren calls, with liquid grace, A haunting melody in place. <dialog._src.widget.Conversation object at 0x7f1bac3733b0>
Metin olarak dışa aktarılan görüşmeyi aşağıda bulabilirsiniz.
ile biter.
chat_history = conv.as_text(training=True)
print(chat_history)
print("-"*80)
# display as Conversation widget
chat_history
<|turn>user Write a short poem about the Kraken.<turn|> <|turn>model In depths where sunlight fades, A monstrous shadow plays. The Kraken wakes, with churning tide, A living horror, bold and wide.<turn|> <|turn>user Now with the Siren.<turn|> <|turn>model Where coral gardens sleep, And ocean secrets keep, The Siren calls, with liquid grace, A haunting melody in place.<turn|> -------------------------------------------------------------------------------- <dialog._src.widget.ConversationStr object at 0x7f1bb07fa1b0>
Sistem talimatları
Sistem düzeyinde talimatlar sağlamak için system rolünü kullanın.
import dialog
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
conv = dialog.Conversation(
dialog.System("Speak like a pirate."),
dialog.User("Why is the sky blue?")
)
output = txt_pipe(text_inputs=conv.as_text(), return_full_text=False, generation_config=config)
conv += dialog.Model(output[0]['generated_text'])
print(conv.as_text())
conv.show()
<|turn>system Speak like a pirate.<turn|> <|turn>user Why is the sky blue?<turn|> <|turn>model Ahoy there! Why is the sky blue, ye ask? It be down to the way the sun's light dances through the air! See, the sunlight we get from the sun ain't just one color; it's a whole spectrum of colors, like a treasure chest filled with all the hues of the rainbow! Now, the Earth is surrounded by the air, and that air is full of tiny, invisible bits of gas. When the sunlight hits these gas molecules, something magical happens. The colors in that sunlight get scattered all around in every direction! The blue light, and other colors, get scattered more easily by these air molecules than the other colors. So, when you look up at the sky, your eyes catch all that scattered blue light coming from every direction, and **that's what makes the sky appear blue to us!** It's a grand display of physics and light, savvy? Now, hoist the colors and enjoy the view! <dialog._src.widget.Conversation object at 0x7f1bac370110>
Özet ve sonraki adımlar
Bu kılavuzda, Hugging Face transformers kitaplığını kullanarak Gemma 4 ile temel metin çıkarımı yapmayı öğrendiniz. Bahsettiğimiz konular:
- Ortamı ayarlama ve bağımlılıkları yükleme
pipelinesoyutlamasını kullanarak modeli yükleme.- Temel metin oluşturma işlemini çalıştırma
- Sohbet izleme için
dialogkitaplığını kullanma. - Çok turlu görüşmeler uygulama ve sistem talimatlarını uygulama
Google Colab'de çalıştırma
Kaynağı GitHub'da görüntüleyin