Gemini model ailesi gibi üretken yapay zeka (AI) modelleri; metin, resim ve ses gibi çeşitli veri girişlerinden içerik oluşturabilir. Bu modeller en temel düzeyde, gelişmiş otomatik tamamlama uygulamaları gibi çalışır. Üretken bir model, giriş metni ("Atınızı suya götürebilirsiniz") verildiğinde, eğitim verilerinden öğrendiği kalıpları temel alarak istatistiksel olarak bu metnin ardından gelmesi muhtemel çıkış metnini ("ancak onu su içmeye zorlayamazsınız") tahmin edebilir. Üretken modellerin bu temel özelliğini çeşitli uygulamalarda kullanabilirsiniz:
- Şiir, kısa hikaye, metafor ve blog yayını gibi yaratıcı yazılar oluşturma
- Yapılandırılmış verileri serbest biçimli metne dönüştürme
- Serbest biçimli metindeki bilgileri ayıklama ve özetleme
- Kod oluşturma
- Diller arasında çeviri yapın
Bu özellikleri oluşturmak için üretken modeller kullanmak makine öğrenimi (ML) uzmanlığı gerektirmez. Büyük bir veri kümesi toplamanız veya model eğitmeniz gerekmez. İlk prototipinizi oluşturmak için modelin yapmasını istediğiniz işlemleri birkaç cümleyle açıklamanız yeterlidir.
Yalnızca metin girişi ve çıkışıyla ilgilenen üretken modeller büyük dil modelleri (LLM) olarak da bilinir. Gemini model ailesi, metin verilerinden daha fazlasını işleyebilir ve LLM'nin işlevlerini yerine getirebilir. Ancak bu modeller daha çok üretken modeller olarak bilinir.
Örnek uygulamalar
Aşağıdaki örneklerde, üretken modelde kullanılan tipik metin girişleri ve bunlardan çıkışlar gösterilmektedir.
Şiir oluşturma
Kullanıcı girişi: Write me a four-line poem about puppies and Android phones. Make
sure it rhymes.
Model çıkışı:
Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.
Liste oluşturma
Kullanıcı girişi: Generate a bulleted list of items I need to pack for a three-day
camping trip.
Model çıkışı:
* Tent
* Sleeping bag
* Sleeping pad
* Camp stove
* Pots and pans
* Utensils
* Food
* Water
* First-aid kit
* Sunscreen
* Insect repellent
* ...
İstem olarak da adlandırılan doğru giriş metnini oluşturarak üretken modellerden bunun gibi her türlü faydalı davranışı üretebilirsiniz. Üretken modellerin istediğinizi yapmasını sağlamak için doğru kelimeleri belirleme sanatına ve bilimine istem tasarımı ("istem mühendisliği" veya "istem verme" olarak da bilinir) denir.
İstem tasarımı 101
Önceki bölümde "Bana bir şiir yaz" gibi bir talimat içeren istemlere bazı örnekler vermişti. Bu tür talimatlar belirli görev türleri için iyi sonuç verebilir. Ancak diğer uygulamalar için az sayıda istemle hatırlatma adı verilen başka bir istem tekniği daha iyi sonuç verebilir. Az sayıda istem, büyük dil modellerinin metin verilerindeki kalıpları tanıma ve kopyalama konusunda inanılmaz derecede iyi olmasından yararlanır. Buradaki amaç, üretken modele tamamlamayı öğreneceği bir metin kalıbı göndermektir. Örneğin, giriş olarak ülke adı alan ve başkentini veren bir uygulama oluşturmak istediğinizi varsayalım. Aşağıda, tam da bunu yapmak için tasarlanmış bir metin istemi verilmiştir:
Italy : Rome
France : Paris
Germany :
Bu istemde bir kalıp oluşturursunuz: [country] : [capital]
. Bu isteği büyük bir dil modeline gönderirseniz model, kalıbı otomatik olarak tamamlar ve aşağıdaki gibi bir sonuç döndürür:
Berlin
Turkey : Ankara
Greece : Athens
Bu model yanıtı biraz tuhaf görünebilir. Model yalnızca Almanya'nın başkentini (el yazısıyla yazılmış isteminizdeki son ülke) değil, ek ülke ve başkent çiftlerinin tamamını da döndürmüştür. Bunun nedeni, üretken modelin "deseni sürdürmesidir". Tek amacınız bir giriş ülkesinin başkentini ("Almanya : Berlin") belirten bir işlev oluşturmaksa modelin "Berlin"den sonra oluşturduğu metinleri muhtemelen önemsemezsiniz. Uygulama tasarımcıları olarak bu alakasız örnekleri kısaltmak isteyebilirsiniz. Ayrıca, Almanya'nın sabit bir dize değil, son kullanıcının sağladığı bir değişken olması için girişi parametrelendirebilirsiniz:
Italy : Rome
France : Paris
<user input here> :
Ülke başkentlerini oluşturmak için birkaç istemli bir istem yazdınız.
Bu az sayıda çekim istemi şablonunu uygulayarak çok sayıda görevi tamamlayabilirsiniz. Aşağıda, Python'u JavaScript'e dönüştüren, biraz farklı bir biçime sahip bir birkaç atış istemi verilmiştir:
Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:
Bu "ters sözlük" istemini de alabilirsiniz. Bir tanım verildiğinde, bu tanıma uyan kelimeyi döndürür:
Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:
Bu birkaç karelik istemlerin tam kalıbının biraz değiştiğini fark etmiş olabilirsiniz. Örneklerin yanı sıra istemlerinizde talimatlar da sunabilirsiniz. Bu, kendi istemlerinizi yazarken dikkate alabileceğiniz ek bir stratejidir. İstemlerinizde talimatlar sunmak, amacınızı modele iletmenize yardımcı olur.
İstemle yönlendirme ve geleneksel yazılım geliştirme
Dikkatlice yazılmış bir spesifikasyona göre tasarlanan geleneksel yazılımların aksine, üretken modellerin davranışı model eğitmenleri için bile büyük ölçüde şeffaf değildir. Sonuç olarak, genellikle belirli bir model için en iyi sonucu verecek istem yapılarının ne tür olacağını önceden tahmin edemezsiniz. Ayrıca, üretken bir modelin davranışı büyük ölçüde eğitim verileriyle belirlenir. Modeller sürekli olarak yeni veri kümelerinde ayarlandığından, bazen model o kadar değişir ki istemeden en iyi çalışan istem yapılarını değiştirir. Bu durumun size olan etkisi Deneme yapın! Farklı istem biçimlerini deneyin.
Model parametreleri
Modele gönderdiğiniz her istem, modelin nasıl yanıt oluşturacağını kontrol eden parametre değerleri içerir. Model, farklı parametre değerleri için farklı sonuçlar oluşturabilir. En yaygın model parametreleri şunlardır:
Maksimum çıkış jetonu sayısı: Yanıtta oluşturulabilecek maksimum jeton sayısını belirtir. Bir jeton, yaklaşık dört karakterden oluşur. 100 jeton yaklaşık 60-80 kelimeye karşılık gelir.
Sıcaklık: Sıcaklık, jeton seçimindeki rastgelelik derecesini kontrol eder. Sıcaklık,
topP
vetopK
uygulandığında gerçekleşen yanıt oluşturma sırasında örnekleme için kullanılır. Düşük sıcaklıklar, daha kesin veya daha az açık uçlu yanıt gerektiren istemler için tercih edilir. Yüksek sıcaklıklar ise daha çeşitli veya yaratıcı sonuçlar sunabilir. 0 sıcaklığı deterministiktir. Yani her zaman en yüksek olasılığa sahip yanıt seçilir.topK
:topK
parametresi, modelin çıkış için jetonları seçme şeklini değiştirir.topK
değeri, modelin sözlüğündeki tüm jetonlar arasında seçilen jetonun en olası olduğu anlamına gelir (açkanlı kod çözme olarak da adlandırılır). 3 olarak isetopK
, sıcaklık kullanılarak en olası 3 jeton arasından bir sonraki jetonun seçileceği anlamına gelir. Her jeton seçim adımında, en yüksek olasılığa sahiptopK
jetonları örneklenir. Ardından jetonlar,topP
'ye göre daha da filtrelenir ve sıcaklık örnekleme kullanılarak nihai jeton seçilir.topP
:topP
parametresi, modelin çıkış için jetonları seçme şeklini değiştirir. Jetonlar, olasılıklarının toplamıtopP
değerine eşit olana kadar en yüksekten en düşük olasılığa göre seçilir. Örneğin, A, B ve C jetonlarının olasılıkları 0,3, 0,2 ve 0,1 ise vetopP
değeri 0,5 ise model, sıcaklığı kullanarak sonraki jeton olarak A veya B'yi seçer ve C'yi aday olarak hariç tutar. VarsayılantopP
değeri 0,95'tir.stop_sequences
: Modele içerik oluşturmayı durdurmasını bildirmek için bir durdurma dizisi ayarlayın. Durdurma dizisi, herhangi bir karakter dizisi olabilir. Oluşturulan içerikte görünebilecek karakter dizileri kullanmaktan kaçının.
İstem türleri
İstemler, içerdikleri bağlamsal bilgilerin düzeyine bağlı olarak geniş bir şekilde üç türe ayrılır.
Sıfır görevli istemler
Bu istemler, modelin kopyalayabileceği örnekler içermez. Sıfır çekim istemleri, temelde modelin herhangi bir ek örnek veya bilgi olmadan istemi tamamlama becerisini gösterir. Yani, modelin makul bir yanıt üretmek için önceden var olan bilgisini kullanması gerekir.
Sık kullanılan bazı sıfır atışlı istem kalıpları şunlardır:
- talimat-içeriği
<Overall instruction>
<Content to operate on>
Örneğin,
Summarize the following into two sentences at the third-grade level:
Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.
Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!
Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.
Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
- Instruction-content-instruction
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>
Örneğin,
Here is some text I'd like you to summarize:
Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.
Summarize it in two sentences at the third-grade reading level.
- Devam. Bazen modelin herhangi bir talimat olmadan metne devam etmesini sağlayabilirsiniz. Örneğin, modelin sağlanan girişe devam etmesinin amaçlandığı sıfır atışlı bir istem aşağıda verilmiştir:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow
Şiir, kod, senaryo, müzik eseri, e-posta veya mektup gibi yaratıcı metin biçimleri oluşturmak için sıfır atışlı istemleri kullanın.
Tek seferlik istemler
Bu istemler, modele kalıbı kopyalayıp devam ettirmesi için tek bir örnek sağlar. Bu sayede modelden tahmin edilebilir yanıtlar oluşturulabilir.
Örneğin, aşağıdaki gibi yiyecek eşlemeleri oluşturabilirsiniz:
Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:
Çok görevli istemler
Bu istemler, modele kopyalanacak birden fazla örnek sağlar. Bir kalıba göre veri sentezleme gibi karmaşık görevleri tamamlamak için birkaç atışlık istemler kullanın.
Örnek istem:
Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}
Üretken modellerin işleyiş şekli
Bu bölümde, üretici modellerin yanıtlarında rastgelelik var mı yoksa bunlar belirlenmiş mi? sorusunu yanıtlamaya çalışacağız.
Kısaca yanıt vermek gerekirse her ikisine de evet. Üretken bir modele istem gönderdiğinizde metin yanıtı iki aşamada oluşturulur. İlk aşamada üretken model, giriş istemini işler ve ardından gelmesi muhtemel olası jetonlar (kelimeler) için bir olasılık dağılımı oluşturur. Örneğin, "Köpek ... üzerinden atladı" giriş metnini gönderirseniz üretken model, olası bir sonraki kelime dizisi oluşturur:
[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]
Bu işlem deterministiktir; üretken bir model, aynı istem metnini her girdiğinde aynı dağılımı üretir.
İkinci aşamada üretken model, çeşitli kod çözme stratejilerinden birini kullanarak bu dağılımları gerçek metin yanıtlarına dönüştürür. Basit bir kod çözme stratejisi, her zaman adımında en olası jetonu seçebilir. Bu süreç her zaman deterministiktir. Bunun yerine, model tarafından döndürülen dağılım üzerinde rastgele örnekleme yaparak bir yanıt oluşturmayı seçebilirsiniz. Bu işlem stokastik (rastgele) olur. Sıcaklığı ayarlayarak bu kod çözme işleminde izin verilen rastgelelik derecesini kontrol edin. Sıcaklık 0 ise yalnızca en olası jetonların seçildiği anlamına gelir ve rastgele bir durum söz konusu değildir. Buna karşılık, yüksek sıcaklık, model tarafından seçilen jetonlara yüksek derecede rastgelelik yerleştirir ve bu da daha beklenmedik, şaşırtıcı model yanıtları sağlar.
Daha fazla bilgi
- İstemler ve üretken modeller hakkında daha fazla bilgi sahibi olduğunuza göre Google AI Studio'yu kullanarak kendi istemlerinizi yazmayı deneyin.
- İstem oluşturmayla ilgili en iyi uygulamalar hakkında daha fazla bilgi edinmek için istem yönergelerine bakın.