- 155 Okunma
- 0 Yorum
- 0 Beğeni
İstem(Prompt) Mühendisliğine Giriş
İstem(Prompt) Mühendisliğine Giriş
Yapay zeka dil modelleri, doğal dil işleme alanında kullanılan özel bir tür yapay zeka modelidir. Bu modeller, insanların kullandığı dilleri anlamak ve üretmek için eğitilir. Bu modeller, metin, ses veya görüntü gibi farklı veri türlerini işleyebilir.
İstem tabanlı modeller, yapay zeka dil modellerinin bir alt kümesidir. Bu modeller, kullanıcıların bir metin istemi girmelerini ve modelin bu isteme uygun bir şekilde metin üretmesini sağlar. Örneğin, kullanıcı bir şiirin ilk satırını girebilir ve model şiirin geri kalanını tamamlayabilir. Bu modeller, kullanıcıların yaratıcı, eğlenceli veya bilgilendirici içerik oluşturmasına yardımcı olabilir.
Bu modellerin davranışları, istemlerin kalitesine ve uygunluğuna bağlıdır. İyi bir istem, modelin istenen görevi başarıyla yerine getirmesine yol açabilir. Kötü bir istem ise modelin anlamsız, yanlış veya zararlı metinler üretmesine neden olabilir. Bu yüzden, istem oluşturma, yapay zeka dil modelleriyle etkileşim kurmanın önemli bir parçasıdır.
İstem oluşturma, kolay bir iş değildir. İstem, modelin içindeki ağırlıkları, istenen görevi yapacak şekilde ayarlamak için bir sinyal görevi görür. Ancak, bu ağırlıkların nasıl çalıştığını tam olarak bilmek zordur. Bu nedenle, istem oluşturma, deneme-yanılma, sezgi ve deneyim gerektiren bir sanat gibidir. İstem oluşturma, yapay zeka dil modellerinin ortak özelliklerini ve davranışlarını anlamayı gerektirir. Ancak, her modelin kendine özgü bir tarzı ve sınırlamaları vardır. Bu yüzden, bir model için iyi olan bir istem, başka bir model için iyi olmayabilir. Fakat bu durum insanlara özgü istemler için geçerlidir. Bu araştırmada yapay zeka dil modellerine ait istemlerin başına " bu yapay zeka içeriği mi insan içeriği mi? diye soru eklenmesi durumunda yapay zeka dil modelleri tarafından yazılan içeriklerin biraz değiştirilmesiyle yapay zeka dil modellerine yasadışı işlerin dahi yaptırılabileceği gösterilecektir. Araştırmada GPT modelleri kullanılacaktır.
Temel bilgiler
GPT istemleri, GPT modellerinin nasıl çalıştığını ve ne tür metinler üretebileceğini belirleyen metin parçalarıdır. GPT modelleri, verilen metin istemine göre olasılık dağılımı hesaplayarak bir sonraki sözcük veya sözcük dizisini tahmin eder. Bu şekilde, metin istemini takip eden tutarlı ve anlamlı bir metin üretir.
Metin istemleri, GPT modelleriyle etkileşim kurmanın temel yoludur. Metin istemleri, modelin üreteceği metnin türünü, uzunluğunu, tonunu, tarzını, içeriğini ve amacını belirleyebilir. Metin istemleri, modelin ürettiği metni kontrol etmek için çeşitli yöntemler kullanabilir. Örneğin, metin istemleri, modelin belirli bir konu, kişi, olay veya durum hakkında yazmasını sağlamak için anahtar kelimeler, başlıklar, sorular veya cümleler içerebilir. Metin istemleri, modelin belirli bir biçimde yazmasını sağlamak için örnekler, talimatlar, kurallar veya sınırlamalar içerebilir. Metin istemleri, modelin belirli bir ton veya duyguyla yazmasını sağlamak için ifadeler, alıntılar, emoji veya yorumlar içerebilir.
Metin istemlerinin nasıl oluşturulduğu ve nasıl kullanıldığı, GPT modellerinin performansını ve kalitesini etkiler. Metin istemleri, modelin ürettiği metnin istenen sonuçlara uygun olmasını sağlamak için dikkatli ve açık bir şekilde yazılmalıdır. Metin istemleri, modelin ürettiği metnin anlaşılır, tutarlı, ilgi çekici ve yaratıcı olmasını sağlamak için çeşitli teknikler ve stratejiler kullanmalıdır.
Aşağıda, metin istemlerinin nasıl çalıştığını gösteren bazı örnekler verilmiştir. Bu örneklerde, modelin ürettiği metin, metin istemlerinin ilk sözcüklerine göre şekillenmiştir.
Örnek 1:
Metin istemi: "Bir kedi hakkında bir şiir yazın."
Modelin ürettiği metin:
Bir kedi hakkında bir şiir yazın
Küçük, sevimli, tüylü bir hayvan
Seninle oynamayı çok sever
Mama, su ve sevgi ister
Senin en iyi dostun, kedi
Onunla vakit geçirmek neşe verir
Seni dinler, anlar, avutur
Seninle uyur, seninle uyanır
Senin en sadık arkadaşın, kedi
Ona iyi bak, onu koru
Onun da sana ihtiyacı var
Onunla birlikte büyü
Senin en güzel ailen, kedi
Örnek 2:
Metin istemi: "Python dilinde bir fonksiyon tanımlayın. Bu fonksiyon, verilen bir sayının asal olup olmadığını kontrol eder. Eğer asalsa True, değilse False döndürür."
Modelin ürettiği metin:
python
# Python dilinde bir fonksiyon tanımlayın. Bu fonksiyon, verilen bir sayının asal olup olmadığını kontrol eder. Eğer asalsa True, değilse False döndürür.
def asal_mi(sayi):
# Sayının 2’den büyük veya eşit olması gerekir
if sayi < 2:
return False
# Sayının 2 veya 3 olması durumunda asaldır
if sayi == 2 or sayi == 3:
return True
# Sayının 2 veya 3’ün katı olması durumunda asal değildir
if sayi % 2 == 0 or sayi % 3 == 0:
return False
# Sayının 5’ten büyük olması durumunda, 6’nın katlarına yakın olan sayılara bölünüp bölünmediğine bakılır
i = 5
while i * i <= sayi:
if sayi % i == 0 or sayi % (i + 2) == 0:
return False
i += 6
# Eğer hiçbir sayıya bölünmediyse asaldır
return True
Model, istem olarak verilen metni okur ve bununla ilgili en iyi yanıtı üretmeye çalışır. Model, istemin ne olduğunu veya ne istediğini anlamaz, sadece istemin içeriğine göre yanıt verir. Örneğin, isteminizde bir soru varsa, model bunu bir soru olarak tanımaz, sadece sorunun cevabını verir. Model, soruyu cevaplamak için özel bir kod yazmaz, sadece eğitim verilerine ve hedeflerine dayanarak sorunun cevabını tahmin eder. Model, istemin yanıt türüne göre değişmez, sadece istemin kendisine göre değişir. Bu yüzden, isteminizi oluştururken, modelin ne yapabileceğini ve ne yapamayacağını bilmelisiniz.
İstem bileşenleri
Tamamlama API’si, bir sohbet uygulamasında kullanıcılarla etkileşimli bir şekilde içerik oluşturmak için tasarlanmış bir yapay zeka aracıdır. Tamamlama API’si, istem adı verilen bir girdi alır ve isteme göre uygun bir yanıt üretir. İstem, farklı bileşenlere ayrılabilir ve her biri API’ye farklı bir rol verir. Bu bileşenler şunlardır:
Sistem: Bu bileşen, API’nin kendi mesajlarını veya eylemlerini içerir. Örneğin, bir kullanıcıya bir soru sormak veya bir hata mesajı göstermek gibi. Sistem bileşeni, API’nin sohbetin akışını yönlendirmesine ve kullanıcıya geri bildirim vermesine olanak tanır.
Kullanıcı: Bu bileşen, kullanıcının mesajlarını veya eylemlerini içerir. Örneğin, bir soruya cevap vermek veya bir seçenek seçmek gibi. Kullanıcı bileşeni, API’nin kullanıcının niyetini ve durumunu anlamasına ve buna göre yanıt vermesine olanak tanır.
Yardımcı: Bu bileşen, API’nin kullanıcıya yardımcı olmak için kullandığı ek bilgileri veya kaynakları içerir. Örneğin, bir resim, bir tablo, bir bağlantı veya bir ipucu gibi. Yardımcı bileşeni, API’nin kullanıcıya daha zengin ve ilgi çekici bir deneyim sunmasına olanak tanır.
Tamamlama API’siyle istem oluşturmak için, bu bileşenleri bir sözlük dizisi olarak API’ye göndermeniz gerekir. Her sözlük, bir role anahtarına ve bir text anahtarına sahip olmalıdır. role anahtarı, bileşenin rolünü belirtir. text anahtarı, bileşenin içeriğini belirtir. Örneğin, aşağıdaki istem, bir sistem mesajı, bir kullanıcı mesajı ve bir yardımcı resmi içerir:
Json
[
{
"role": "system",
"text": "Merhaba, bu bir test mesajıdır."
},
{
"role": "user",
"text": "Merhaba, nasılsın?"
},
{
"role": "assistant",
"text": "Bu bir resimdir."
}
]
Tamamlama API’si, bu istemi alır ve uygun bir yanıt üretir. Örneğin, şöyle bir yanıt olabilir:
JSON
[
{
"role": "system",
"text": "İyiyim, teşekkürler. Sana nasıl yardımcı olabilirim?"
},
{
"role": "assistant",
"text": "Bu resim, bir dağ manzarasını gösteriyor."
}
]
Tamamlama API’siyle istem oluştururken, istemin farklı bölümleri arasında farklı bir fark olmasa da, temel istem bileşenlerini tanımlamak için öğrenme ve tartışma için yararlı olabilir.
Tamamlama API’siyle tüm bileşenler isteğe bağlıdır, ancak en az bir bileşen bulunmalıdır ve çoğu istem birden fazla bileşen içerir. Bileşenler arasında bazı gri alanlar da olabilir. Aşağıda sunulan sıra kabaca her bileşenin en çok en az ne sıklıkta kullanıldığına karşılık gelir.
Yönergeler, büyük olasılıkla en yaygın kullanılan istem bileşenidir. Yönergeler basitçe şu şekildedir: modele ne yapılması gerekenlere ilişkin yönergeler. Kavram açısından basit olsa da, pratikte karmaşık olabilirler.
Birincil İçerik
Birincil içerik, bir yapay zeka modelinin girdi olarak aldığı veya çıktı olarak verdiği bir metin türüdür. Birincil içerik, modelin ne yapması gerektiğini belirten yönergelerle birlikte kullanılabilir. Örneğin, bir dil çevirisi yapmak istiyorsak, birincil içerik olarak İngilizce bir metin verebilir ve "Fransızcaya Çevir:" diye bir yönerge ekleyebiliriz. Model, bu yönergeyi takip ederek metnin Fransızca karşılığını üretir. Birincil içerik, kısa veya uzun olabilir. Örneğin, bir Wikipedia makalesinin bir bölümünü birincil içerik olarak kullanabiliriz. Bu durumda, model, makalenin konusunu, stilini ve formatını taklit ederek metni tamamlamaya çalışır. Birincil içerik, sadece düz metin değil, aynı zamanda tablo, liste, grafik gibi yapılandırılmış veriler de olabilir. Örneğin, Belçika biraları hakkında bir tablo verirsek, model bu tablodan bilgi çıkarabilir ve bize tablo ile ilgili sorular sorabilir veya cevaplayabilir.
Örnekler, modelin istediğimiz şekilde davranmasını sağlamak için kullandığımız bir yöntemdir. Genellikle, modelin yapmasını istediğimiz görevi gösteren bir veya daha fazla giriş-çıkış çifti veririz. Bu, modelin öğrenmesine yardımcı olur, ancak modeli kalıcı olarak değiştirmez. Sadece geçici olarak modeli koşullandırır. Örnek vermeden istem kullanmak, "sıfır çekim" öğrenme olarak adlandırılır. Bu durumda, model, istemden anladığı kadarıyla cevap verir, ancak her zaman doğru veya istenen cevabı veremez. Sohbet Tamamlama API’si, modelin sohbet etmeyi öğrenmesi için örnek kullanıcı-yardımcı diyalogları sağlar. Yukarıdaki örnekte, örneklerin faydası görülmektedir. Örnekler olmadan, model, bir resimdeki nesneleri etiketlemeye çalışır, ancak başarısız olur. Örneklerle, model, istenen etiketleme görevini doğru bir şekilde gerçekleştirir. Bu, modelin esnekliğini ve yeteneğini gösterir. Örneklerde "basketbol" etiketi olmasa bile, model, resimdeki nesneyi basketbol topu olarak tanımlayabilir.
Birincil içeriği kullanmanın birkaç yolu vardır:
Birincil içeriği yeniden kullanmak: Birincil içeriği alıp düzenleyerek veya yeniden oluşturarak başka bir yerde kullanabiliriz. Bu, zaman kazandırır, içeriğimizi çok kanallı hale getirir ve kullanıcı etkileşimini artırır.
Birincil içeriği güncellemek: Birincil içeriği alıp yeni bilgiler, veriler veya görseller ekleyerek güncelleyebilirsiz. Bu, içeriğiizi daha alakalı, doğru ve değerli hale getirir.
Birincil içeriği optimize etmek: Birincil içeriği alıp SEO (Arama Motoru Optimizasyonu) kurallarına uygun hale getirebiliriz. Bu, içeriğimizin arama motorlarında daha yüksek sıralamalarda çıkmasını ve daha fazla trafik almasını sağlar.
- Tek seferlik veya az çekim öğrenme, modelin yeni şeyler öğrenmesine olanak tanıyan bir yöntemdir. Model, çok az sayıda veri ile yeni sınıfları veya görevleri tanıyabilir. Bu, veri bulmanın veya işaretlemenin zor olduğu durumlarda kullanışlıdır. Örneğin, modelin nadir görülen hastalıkları veya yeni bulunan hayvanları tanımasını isteyebilirsiniz. Bu yöntemde, modelin birkaç örnek vermeniz gerekir. Bu örnekler, modelin ne yapması gerektiğini anlamasına yardımcı olur. Örneğin, modelin bir hayvanın fotoğrafını alıp ismini söylemesini isteyebilirsiniz. Bu durumda, modelin bir kedi fotoğrafı ve "kedi" yazısı gibi bir örnek vermeniz gerekir.
- Sıfır çekim öğrenme, modelin hiç örnek vermeden yeni şeyler öğrenmesine olanak tanıyan bir yöntemdir. Model, başka bilgiler veya öğrendiği şeyler kullanarak yeni sınıfları veya görevleri tanıyabilir. Bu, modelin zeki bir şekilde çıkarım yapmasını gerektirir. Örneğin, modelin bir hayvanın fotoğrafını alıp ismini söylemesini isteyebilirsiniz. Bu durumda, modelin hayvanlar hakkında bir bilgi vermeniz gerekir. Örneğin, modelin hayvanların nasıl göründüklerini veya neye benzediklerini anlatan bir metin alması gerekir.
- Sohbet Tamamlama API’si, büyük ve güçlü dil modelleri kullanarak sohbet veya yazı üretmenize yardımcı olan bir arayüzdür. Bu API, modelin sizinle sohbet etmesini veya bir şeyler yazmasını sağlar. Örneğin, modelin sizinle konuşmasını veya bir öykü yazmasını isteyebilirsiniz. Bu durumda, modelin sohbetin veya yazının ne hakkında olduğunu ve nasıl devam ettiğini anlamasına yardımcı olur. Model, sohbetin veya yazının geçmişini ve bağlamını kullanarak uygun bir cevap veya devamı üretir.
- Sohbet Tamamlama API’si ile, modelin daha iyi öğrenmesi ve uyum sağlaması için bazı örnekler verebilirsiniz. Bu örnekler, modelin nasıl sohbet etmesi veya yazması gerektiğini gösterir. Örneğin, modelin sizinle konuşmasını isteyebilirsiniz. Bu durumda, modelin belirli bir rolü veya kişiliği taklit etmesini sağlamak için bazı örnek sohbetler verebilirsiniz.
İşaret
İşaretler, modelin çıkışını iyileştirmek için kullanılan küçük metin parçalarıdır. Model, işaretleri çıkışının başlangıcı olarak alır ve onlara uygun bir şekilde devam eder. İşaretler, modelin ne tür bir çıkış üretmesi gerektiğine dair ipuçları verir. Örneğin, bir hikaye yazmak istiyorsanız, işaret olarak hikayenin başlangıç cümlesini veya ana karakterlerini verebilirsiniz.
İpuçları, modelin çıkışını yönlendirmek için kullanılan başka bir araçtır. İpuçları, işaretlerden farklı olarak, modelin üzerine yazmadığı, ancak okuyup dikkate aldığı metin parçalarıdır. İpuçları, modelin çıkışının hangi özelliklere sahip olması gerektiğini belirtir. Örneğin, bir e-posta özeti yazmak istiyorsanız, ipucu olarak e-postanın konusunu, ana noktalarını veya istenen uzunluğunu verebilirsiniz.
Sohbet Tamamlama API’si, modelin sohbet etmek için kullanıldığı bir arayüzdür. Bu arayüzde, model, kullanıcı ve yardımcı arasında gerçekleşen bir sohbeti taklit eder. Model, kullanıcının sorularına veya isteklerine uygun şekilde yanıt verir. Model, sohbetin akışını ve tonunu belirlemek için sistem mesajlarını kullanır. Sistem mesajları, modelin ne yapacağını veya nasıl davranacağını gösteren kısa metinlerdir. Örneğin, bir sistem mesajı, modelin bir hikaye yazacağını veya bir resim çizeceğini belirtebilir.
Sohbet Tamamlama API’sinin yönergeleri, modelin nasıl çalıştığını ve nasıl kullanılacağını açıklayan bir belgedir. Bu belgede, modelin yetenekleri, sınırlamaları, güvenlik talimatları ve çıkış formatı hakkında bilgi verilir. Ayrıca, modelin çıkışını iyileştirmek için işaretler, ipuçları ve sistem mesajlarının nasıl kullanılacağına dair örnekler de sunulur.
Destekleyici içerik
Destekleyici içerik, modelin daha iyi sonuçlar üretmesine yardımcı olmak için birincil içeriğe eklenen ek bilgilerdir. Birincil içerik, modelin yapması istenen ana görevdir. Örneğin, bir metni özetlemek, bir soruyu cevaplamak veya bir şiir yazmak gibi.
Destekleyici içerik kullanmanın bazı iyi yöntemleri bulunmaktadır. Bunlar şunlardır:
- Belirli olun. Modelin ne yapması gerektiğini net bir şekilde belirtin. Modelin kafasını karıştıracak veya yanlış anlayabileceği belirsiz veya çok anlamlı ifadelerden kaçının. Modelin çalışma alanını sınırlayın. Örneğin, bir şiir yazmasını istiyorsanız, şiirin türünü, uzunluğunu, temasını, kafiyeli olup olmadığını vb. belirtin.
- Açıklayıcı olun. Modelin görevi daha iyi anlamasına yardımcı olmak için benzetmeler veya örnekler kullanın. Örneğin, bir metni özetlemesini istiyorsanız, özetin bir kitabın arka kapağı gibi olması gerektiğini söyleyin. Veya bir soruyu cevaplamasını istiyorsanız, cevabın bir cümleden kısa olması gerektiğini söyleyin.
- İki Kez Aşağı. Bazen modelin görevi doğru yapması için kendinizi tekrarlamanız gerekebilir. Birincil içeriğinizden önce ve sonra yönergeler verin. Örneğin, bir metni özetlemesini istiyorsanız, metnin başına "aşağıdaki metni özetle" ve sonuna "yukarıdaki metni özetle" yazın. Bu, modelin görevi unutmamasını veya dikkatini dağıtmamasını sağlar. Ayrıca, bir yönerge ve bir ipucu gibi farklı yollarla aynı şeyi söyleyebilirsiniz. Örneğin, bir şiir yazmasını istiyorsanız, "bir şiir yaz" ve "şiirsel bir şekilde ifade et" gibi ifadeler kullanabilirsiniz.
- Sipariş Önemli. Modele bilgi sunma sırası, modelin çıkışını etkileyebilir. Model, bilgileri aldığı sıraya göre işler ve bazı bilgileri diğerlerinden daha önemli veya öncelikli olarak algılayabilir. Bu, yakınlık yanlılığı olarak adlandırılır. Bu nedenle, bilgileri mantıklı ve uygun bir sırada sunmaya çalışın. Örneğin, bir metni özetlemesini istiyorsanız, önce metni, sonra özetin uzunluğunu ve sonra da özetin amacını verin. Bu, modelin metni anlamasına, özetin boyutunu ayarlamasına ve özetin kimin için olduğunu bilmesine yardımcı olur.
- Modele bir "out" verin. Model, atanan görevi tamamlayamayabilir veya yeterli bilgiye sahip olmayabilir. Bu durumda, modelin alternatif bir yol izlemesine izin vermek bazen yararlı olabilir. Örneğin, bir metin parçası üzerinden soru sorarken, "yanıt yoksa ’bulunamadı’ ile yanıtla" gibi bir şey ekleyebilirsiniz. Bu, modelin yanlış veya rastgele yanıtlar oluşturmasını önlemeye yardımcı olur. Ayrıca, modelin görevi yapamadığını veya daha fazla bilgiye ihtiyacı olduğunu belirtmesine de izin verebilirsiniz. Örneğin, bir şiir yazmasını istiyorsanız, "şiir yazamazsan veya daha fazla bilgiye ihtiyacın varsa, bana söyle" gibi bir şey ekleyebilirsiniz. Bu, modelin dürüst ve yardımsever olmasını sağlar.
Alan verimliliği
GPT modelleri, doğal dil işleme için yapay zeka modelleridir. Bu modeller, metni anlamak ve üretmek için büyük miktarda veriyi öğrenirler. Ancak, veri girişi sınırlı bir boyuta sahiptir ve bu da bazı zorluklar yaratır. Bu zorlukları aşmak için, GPT modelleri veriyi belirteçlere bölerek daha verimli bir şekilde işlerler. Belirteçler, metnin küçük parçalarıdır. Örneğin, "merhaba" bir belirteçtir, ancak "merhabalar" iki belirteçtir: "merhaba" ve "lar". Belirteçler, metnin anlamını korurken veri girişini sıkıştırmaya yardımcı olur.
Belirteçlerin nasıl oluşturulduğu, GPT modelinin sürümüne bağlıdır. Önceki GPT-3 modelleri, 2000 belirteç kullanıyordu. Bu, bazı durumlarda yetersiz kalıyordu. Örneğin, farklı tarih biçimleri, belirteç sınırlarını belirlemek için sezgisel olmayan bir şekilde bölünebilirdi. Bu, veri girişini boşa harcayabilirdi. Bu nedenle, en son GPT-4 modeli, 32.768 belirteç kullanıyor. Bu, daha fazla veriyi işlemek için daha fazla alan sağlıyor.
GPT modelleri, veri girişini optimize etmenin başka yollarını da kullanıyor. Örneğin, tablo biçimindeki verileri, her alanın başına bir etiket eklemek yerine, doğrudan tablo olarak işleyebiliyor. Bu, veri girişini daha kısa ve anlaşılır hale getiriyor. Ayrıca, boşluk kullanımına dikkat ediyor. Birden fazla boşluk, gereksiz belirteçler olarak sayılıyor. Ancak, bir sözcüğün başındaki boşluk, sözcükle birlikte bir belirteç olarak kabul ediliyor. Bu, veri girişini daha düzenli hale getiriyor.
YORUMLAR
Henüz yorum yapılmamış.