Üretken modeller hakkında

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, girdi metnine ("Bir atı suya yönlendirebilirsiniz") göre, eğitim verilerinden öğrenilen kalıplara dayanarak istatistiksel olarak izleme olasılığı yüksek olan çıkış metnini tahmin edebilir ("ama su içemezsiniz"). Üretken modellerin bu temel özelliğini çeşitli uygulamalar için kullanabilirsiniz:

  • Şiir, kısa hikayeler, metaforlar ve blog yayınları gibi yaratıcı yazılar oluşturmak
  • Yapılandırılmış verileri serbest biçimli metne dönüştürme
  • Serbest biçimli metinlerden bilgileri ayıklama ve özetleme
  • Kod oluşturma
  • Diller arasında çeviri yapın

Bu özellikleri oluşturmak için üretken modelleri kullanmak, herhangi bir makine öğrenimi (ML) uzmanlığı gerektirmez. Büyük bir veri kümesi toplamanız veya model eğitmeniz gerekmez. İlk prototipinizi oluşturmaya başlamak için tek yapmanız gereken, modelin ne yapmasını istediğinizi birkaç cümleyle açıklamaktır.

Yalnızca metin girişi ve çıkışını işleyen ü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 getirebilse de üretken modeller olarak bilinir.

Örnek uygulamalar

Aşağıdaki örneklerde, üretken bir modele yapılan tipik metin girişleri ve bu modelden çıkışlar gösterilmektedir.

Şiir oluştur

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
*   ...

Yalnızca istem olarak da adlandırılan doğru giriş metnini oluşturarak üretken modeller elde ederek bunun gibi her tür faydalı davranışı elde edebilirsiniz. İstediğiniz şeyi yapmak için üretken modelleri elde etmek amacıyla doğru kelimeleri bulma sanatı ve bilimine istem tasarımı ("istem mühendisliği" veya basitçe "istem" de denir) denir.

İstem tasarımına giriş

Bir önceki bölümde, "Bana bir şiir yaz" gibi talimat içeren bazı istem örnekleri gösteriliyordu. Bu tür talimatlar bazı görev türleri için uygun olabilir. Ancak diğer uygulamalar için birkaç çekimli istem adı verilen başka bir yönlendirme tekniği daha iyi sonuç verebilir. Birkaç çekimli istem, büyük dil modellerinin metin verilerindeki kalıpları tanıma ve kopyalamada son derece iyi olmasından faydalanır. Amaç, üretken modele tamamlamayı öğrendiği bir metin kalıbı göndermektir. Örneğin, bir ülke adı girdi olarak büyük şehir çıkışını alan bir uygulama oluşturmak istediğinizi düşünelim. Aşağıda, bunu yapmak için tasarlanmış bir metin istemi yer almaktadır:

Italy : Rome
France : Paris
Germany :

Bu istemde bir kalıp oluşturursunuz: [country] : [capital]. Bu istemi büyük bir dil modeline gönderirseniz kalıbı otomatik olarak tamamlar ve aşağıdakine benzer bir sonuç döndürür:

     Berlin
Turkey : Ankara
Greece : Athens

Bu modelin yanıtı biraz tuhaf görünebilir. Model yalnızca Almanya'nın büyük kısmını (el yazısı isteminizdeki son ülke) değil, aynı zamanda ek ülke ve sermaye çiftlerinin tam listesini de döndürdü. Bunun nedeni, üretken modelin "kalıbı devam ettirmek" olmasıdır. Yapmaya çalıştığınız tek şey, bir girdi ülkenin başkentini ("Almanya :Berlin") bildiren bir fonksiyon oluşturmaksa, muhtemelen modelin "Berlin"den sonra oluşturduğu metnin hiçbiriyle pek ilgilenmiyorsunuzdur. Gerçekten de uygulama tasarımcıları olarak muhtemelen bu gereksiz örnekleri kısaltmak istersiniz. Dahası, Almanya'nın sabit bir dize değil, son kullanıcının sağladığı bir değişken olması için girişi parametrelendirmek istersiniz:

Italy : Rome
France : Paris
<user input here> :

Ülke başkentleri oluşturmaya ilişkin birkaç çekimli bir istem yazdınız.

Bu birkaç çekimlik istem şablonunu izleyerek çok sayıda görevi gerçekleştirebilirsiniz. Python'u JavaScript'e dönüştüren ve biraz farklı bir biçime sahip birkaç çekimli komut istemini burada görebilirsiniz:

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:

İsterseniz bu "tersinden gelen sözlük" istemini de kullanabilirsiniz. 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ç çekimli istemlerin deseninin biraz değiştiğini fark etmiş olabilirsiniz. İstemlerinizde örnek vermenin yanı sıra, kendi istemlerinizi yazarken de amacınızı modele iletmenize yardımcı olacağı için göz önünde bulundurmanız gereken ek bir stratejidir.

Geleneksel yazılım geliştirme ile teşvik etme karşılaştırması

Dikkatlice yazılmış bir spesifikasyona göre tasarlanmış geleneksel yazılımların aksine, üretken modellerin davranışı model eğitmenler için bile büyük ölçüde opaktır. Sonuç olarak, belirli bir model için hangi istem yapılarının en iyi sonucu vereceğini genellikle önceden tahmin edemezsiniz. Dahası, üretken modelin davranışı büyük ölçüde eğitim verileri tarafından belirlenir. Modeller sürekli olarak yeni veri kümelerine göre ayarlandığından, bazen model bazen farkına varmadan hangi istem yapılarının en iyi şekilde çalıştığını değiştirecek kadar değişiklik yapar. Bu sizin için ne anlama geliyor? 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:

  1. Maksimum çıkış jetonu: Yanıtta oluşturulabilecek maksimum jeton sayısını belirtir. Jeton yaklaşık dört karakterden oluşur. 100 jeton yaklaşık 60-80 kelimeye karşılık gelir.

  2. Sıcaklık: Sıcaklık, jeton seçimindeki rastgelelik derecesini kontrol eder. Sıcaklık, topP ve topK uygulandığında yanıt oluşturma sırasında örnekleme için kullanılır. Düşük sıcaklıklar daha deterministik veya daha az açık uçlu yanıt gerektiren istemler için uygunken, yüksek sıcaklıklar daha çeşitli veya yaratıcı sonuçlar doğurabilir. 0 sıcaklık değeri deterministiktir. Diğer bir deyişle, her zaman en yüksek olasılıklı yanıt seçilir.

  3. topK: topK parametresi, modelin çıkış için jetonları seçme şeklini değiştirir. topK/1, seçilen jetonun modelin sözlüğündeki tüm jetonlar arasında en olası olduğu anlamına gelir (açılır kod çözme olarak da adlandırılır); 3 üzerinden topK ise bir sonraki jetonun, sıcaklık kullanılarak en olası 3 jeton arasından seçildiği anlamına gelir. Her jeton seçme adımı için en yüksek olasılıklar olan topK jetonları örneklenir. Ardından jetonlar, sıcaklık örnekleme kullanılarak seçilen son jeton ve topP temel alınarak daha ayrıntılı filtrelenir.

  4. topP: topP parametresi, modelin çıkış için jetonları seçme şeklini değiştirir. Jetonlar, olasılıkların toplamı topP değerine eşit olana kadar en olası olandan en az olası olana doğru seçilir. Örneğin, A, B ve C jetonlarının olasılığı 0,3, 0,2 ve 0,1 ise ve topP değeri 0,5 ise model, sıcaklığı kullanarak A veya B'yi sonraki jeton olarak seçer ve C'yi aday olarak hariç tutar. Varsayılan topP değeri 0,95'tir.

  5. stop_sequences: Modele içerik oluşturmayı durdurmasını bildirmek için bir durdurma sırası ayarlayın. Durdurma dizisi, herhangi bir karakter dizisi olabilir. Oluşturulan içerikte görünebilecek karakterler sırasında kullanmaktan kaçınmaya çalışın.

İstem türleri

İstemler, içerdikleri bağlamsal bilgi düzeyine bağlı olarak üç türe ayrılır.

sıfır çekim istemleri

Bu istemler, modelin çoğaltılmasına ilişkin örnekler içermez. sıfır çekim istemleri, temelde modelin herhangi bir ek örnek veya bilgi olmadan istemi tamamlama yeteneğini gösterir. Bu, modelin makul bir yanıt oluşturabilmesi için mevcut bilgisine güvenmesi gerektiği anlamına gelir.

Yaygın olarak kullanılan bazı sıfır çekim istemi 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.
  • Talimat-icerigi
<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 devam metnine sahip olmasını sağlayabilirsiniz. Örneğin, modelin sağlanan girdiyi devam ettirmesinin istendiği bir sıfır çekim istemini burada görebilirsiniz:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Şiir, kod, senaryo, müzik parçası, e-posta veya mektup gibi yaratıcı metin biçimleri oluşturmak için sıfır çekim istemleri kullanın.

Tek seferlik istemler

Bu istemler, modele kalıbı çoğaltıp devam etmesi için tek bir örnek sağlar. Bu, modelden tahmin edilebilir yanıtlar oluşturulmasına olanak tanır.

Örneğin, aşağıdaki gibi gıda eşlemeleri oluşturabilirsiniz:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

Birkaç çekimli istem

Bu istemler, modele kopyalanacak birden fazla örnek sağlar. Verileri bir kalıba göre sentezlemek gibi karmaşık görevleri tamamlamak için birkaç çekimli istem kullanın.

Örnek istem şu şekilde olabilir:

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"}

Gelişmiş modeller

Bu bölümün amacı, Üretken modellerin yanıtlarında rastgelelik mi var yoksa deterministik mi?

Kısacası her ikisi için de evet. Üretken bir model önerdiğinizde iki aşamada metin yanıtı oluşturulur. İlk aşamada, üretken model giriş istemini işler ve bir sonraki olası jetonlar (kelimeler) üzerinden olasılık dağılımı oluşturur. Örneğin, "Köpek ... üzerinden geçti" şeklinde bir istem verirseniz, üretken model bir dizi olası sonraki kelime oluşturur:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

Bu süreç belirleyicidir; üretken model, aynı istem metni her girdiğinde aynı dağıtımı üretir.

İkinci aşamada, üretken model bu dağılımları birkaç kod çözme stratejisinden birini kullanarak gerçek metin yanıtlarına dönüştürür. Basit bir kod çözme stratejisi sayesinde her zaman adımında en olası jetonu seçebilirsiniz. Bu süreç her zaman belirleyicidir. Ancak bunun yerine, modelin döndürdüğü dağılım üzerinden rastgele örnekleme yöntemiyle bir yanıt oluşturmayı seçebilirsiniz. Bu süreç olasılıksal (rastgele) bir süreçtir. Sıcaklığı ayarlayarak bu kod çözme işleminde izin verilen rastgelelik derecesini kontrol edin. Sıcaklığın 0 olması yalnızca en olası jetonların seçildiği ve rastgelelik olmadığı anlamına gelir. Buna karşılık, yüksek sıcaklıklar model tarafından seçilen jetonlara yüksek derecede rastgelelik ekleyerek daha beklenmedik ve şaşırtıcı model yanıtlarına yol açar.

Daha fazla bilgi

  • Artık istemleri ve üretici modelleri daha ayrıntılı şekilde anladığınıza 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 İstem yönergelerine bakın.