paint-brush
İstemde Bulunma ve İstemde Bulunma Mühendisliğine Girişile@aibites
5,795 okumalar
5,795 okumalar

İstemde Bulunma ve İstemde Bulunma Mühendisliğine Giriş

ile Shrinivasan Sankar8m2023/06/27
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

İstemde bulunma ve anında mühendislik, 2023'ün en çok talep gören becerileridir. [Büyük Dil Modelleri]'nin hızlı büyümesi, yalnızca anında mühendislik adı verilen bu yeni yapay zeka disiplininin ortaya çıkmasına tanık oldu. Bu makalede, istemde bulunmanın ne olduğuna, istem mühendislerinin ne yaptığına ve ayrıca istem mühendisinin birlikte çalıştığı istemin farklı unsurlarına kısaca göz atalım.
featured image - İstemde Bulunma ve İstemde Bulunma Mühendisliğine Giriş
Shrinivasan Sankar HackerNoon profile picture
0-item
1-item

İstemde bulunma ve anında mühendislik, 2023'ün en çok talep gören becerileridir. Büyük Dil Modelleri Yüksek Lisans Programlarının hızlı büyümesi, yalnızca anında mühendislik adı verilen bu yeni yapay zeka disiplininin ortaya çıkmasına tanık oldu. Bu makalede, istemde bulunmanın ne olduğuna, istem mühendislerinin ne yaptığına ve ayrıca istem mühendisinin birlikte çalıştığı istemin farklı unsurlarına kısaca göz atalım.

Bir istem tam olarak nedir?

İstem, basitçe "eğitimli" bir modele sağladığınız girdidir. Eğitilmiş model dediğimde modelin ağırlıkları sabit veya dondurulmuştur ve yönlendirme işlemi sırasında değişmeyecektir. Şimdi bunun çıkarımdan ne kadar farklı olduğunu sorabilirsiniz çünkü modelleri eğitiyoruz, makine öğrenimi modellerinde çıkarımları dağıtıyoruz ve çalıştırıyoruz. Mesele şu ki, çıkarımla girdi sabittir. Asla değiştirmiyoruz ve model çıktı olarak ne veriyorsa onu sonuç olarak kabul ediyoruz. Örnek bir görev olarak görüntü sınıflandırmasını düşünün.


Ancak yönlendirmeyle tek bir girişle sınırlı kalmazsınız. Modelin davranışını iyileştirmek için girdiyi ihtiyaçlarınıza göre ayarlayabilirsiniz. Siz daha çok modele onu doğru cevaba yönlendirmek amacıyla talimat veriyorsunuz. Çıkarım söz konusu olduğunda modeli verili olarak kabul ederken, yönlendirmeyle modelin yeteneklerini ve sınırlamalarını inceliyorsunuz.


Bu girdileri, size en iyi hizmeti verecek şekilde mevcut soruna uyacak şekilde tasarlama veya mühendislik yapma sanatı , hızlı mühendislik adı verilen oldukça yeni bir disiplinin doğmasına neden olur.


Hızlı Mühendislik

Hızlı mühendisliğe dalmadan önce, örneklerle istemleri tasarlama motivasyonunu veya ihtiyacını anlayalım. Diyelim ki belirli bir pasajı özetlemek istiyorum. Bu yüzden girdi olarak Wikipedia'dan büyük bir pasaj veriyorum ve sonunda " yukarıdaki paragrafı özetleyin " diyorum. LLM'den bir yanıt almak için istemde basit talimatlar sağlamanın bu yolu, Talimat istemi olarak bilinir.


Matematiğin biraz daha karmaşık bir örneğine geçelim ve Yüksek Lisans'tan iki sayıyı çarpmasını isteyelim. “ 2343*1232 nedir” komutunu deneyelim. Aldığımız cevap “ 23431232 ” oluyor ki bu da açıkçası iki sayının çarpımı değil, her ikisinin birleşimidir.


Şimdi istemi değiştireyim ve daha spesifik olmak için istemin içine fazladan bir satır ekleyeyim: " 2343'ün 1232 ile çarpımı nedir. Çarpmadan sonra bana tam cevabı ver ." Artık LLM'den “ 2886576 ” doğru cevabını alıyoruz.


Dolayısıyla, açıkça modelin çıktısının kalitesi, istemin kalitesine göre belirlenir. İşte bu noktada hızlı mühendislik devreye giriyor. Hızlı bir mühendisin amacı , bir modelden elde edilen çıktının kalitesini değerlendirmek ve daha iyi çıktılar elde etmek için istemdeki iyileştirme alanlarını belirlemektir. Dolayısıyla, istem mühendisliği, hem Yüksek Lisans'ı anlamak hem de iyi istemler tasarlamak amacıyla Yüksek Lisans'ın yeteneklerini ve sınırlamalarını deneme yanılma yoluyla inceleyen oldukça deneysel bir disiplindir .

Bilgi istemi öğeleri

İstemleri tasarlamak veya tasarlamak için, istemin farklı unsurlarını anlamamız gerekir. Bir bilgi istemi aşağıdaki öğelerden herhangi birini veya daha fazlasını içerebilir.


İstemler, modelden bir şey yapmasını istediğiniz talimatlar olabilir. Örneğimizde çok büyük bir metin sağladık ve modelden bunu özetlemesini istedik.


Bilgi istemleri isteğe bağlı olarak modelin size daha iyi hizmet vermesi için bir bağlam içerebilir. Örneğin, örneğin İngiliz miras alanları hakkında sorularım varsa, öncelikle şöyle bir bağlam sunabilirim: "İngiliz Mirası, dünyaca ünlü tarih öncesi alanlardan büyük ortaçağ kalelerine, Roma kalelerinden 400'ün üzerinde tarihi anıt, bina ve mekanla ilgilenir. …” ve ardından sorumu “ İngilizlerin en büyük miras alanı hangisidir? ” diye sorun. ”


Bilgi isteminin bir parçası olarak çıktıyı görmek istediğiniz format hakkında da talimat verebilirsiniz. Ve böylece bir istem isteğe bağlı olarak bir çıkış göstergesine sahip olabilir. Örneğin, “ İngiltere'deki tüm İngiliz miras alanlarının, konumlarının ve uzmanlık alanlarının bir listesini istiyorum” diye sorabilirsiniz. Sonuçları tablo formatında istiyorum .”


Veya daha iyi bir yanıt istiyorsanız, çıktıda sütunları ve satırları görmek istediğinizi belirtmek için bu söz dizimi ile istediğiniz formatı girebilirsiniz:


Desired format:

Company names: <comma_separated_list_of_sites>

Sites: -||-Location: -||-Speciality: -||-


Bir bilgi istemi, modelden beklenenler için örnek girdiler sağladığımız bir veya daha fazla girdi verisi içerebilir. Duygu sınıflandırması durumunda, niyetimizi göstermek için örnekler vermeye başladığımız ve ayrıca yanıtta herhangi bir açıklama istemediğimizi belirttiğimiz bu komut istemine bir göz atın:


Text: Today I saw a movie. It was amazing.

sentiment: Positive

Text: I don't very good after seeing that incident.

sentiment:

İstem Türleri - çekimler

Bilgi isteminde bu şekilde örnek verme şekli, insanlara örnekler göstererek açıklama şeklimize benzer. Yönlendirme dünyasında buna birkaç adımlık yönlendirme denir. Görevin hem girdisini hem de çıktısını içeren yüksek kaliteli örnekler sunuyoruz. Bu şekilde model sizin neyin peşinde olduğunuzu anlar ve çok daha iyi yanıt verir.


Örneğimizi genişleterek, bir pasajın duygusunu bilmek istersem sadece “pasajın duygusu nedir” diye sormak yerine çıktıdaki olası sınıfları kapsayan birkaç örnek verebilirim. Bu durumda olumlu ve olumsuz:


Text: Today I saw a movie. It was amazing.

sentiment: Positive

Text: I don't very good after seeing that incident.

sentiment: Negative

Text: Lets party this weekend to celebrate your anniversary.

sentiment: Positive

Text: Walking in that neighbourhood is quite dangerous.sentiment: Negative

Text: I love watching tennis all day long

sentiment:


Daha sonra modeli, girdiğim son metne yanıt verecek şekilde bırakabilirim. Tipik olarak 5 ila 8 örnek, birkaç adımlık yönlendirme için yeterince iyi olmalıdır. Şimdiye kadar tahmin edebileceğiniz gibi, bu yaklaşımın dezavantajı isteminizde çok fazla token bulunmasıdır. Basit bir şekilde başlamak istiyorsanız herhangi bir örnek vermenize gerek yoktur, ancak şu komut istemi gibi doğrudan soruna geçin:


Text: I love watching tennis all day long

sentimet:


Bu, herhangi bir örnek vermediğiniz ancak yine de modelin size doğru şekilde yanıt vermesini beklediğiniz sıfır atışlı yönlendirmedir . Tipik olarak hızlı mühendislik sırasında, daha basit olduğu için sıfır adımla başlarsınız ve yanıta göre daha iyi yanıt almak için örnekler sunarak birkaç adıma geçersiniz.

İstem Türleri - roller

Yüksek Lisans ile özel bir konuya atlamak istiyorsanız, ona bir rol atayarak onu hemen bir alanda uzman olmaya yönlendirebilirsiniz ve buna rol yönlendirme denir.


Bilgi istemine genellikle LLM'nin oynaması gereken uzman rolüyle başlarsınız. Daha sonra ne yapması gerektiğine ilişkin talimatları izleyin. Basit bir örnek olarak, rol Yüksek Lisans'tan şair olmasını istemek olabilir ve talimat sadece AI Bites hakkında bir şiir yazmak olabilir.


Veya LLM'den bir linux terminali gibi davranmasını isteyerek biraz daha karmaşık olabilir. Ve bir dosyanın ilk 10 satırını farklı bir dosyaya kopyalamak ve kaydetmek için özel talimatlar sağlamak. Hatta herhangi bir açıklama yapmamayı açıkça belirterek çıktıda başka bir metnin yer almasını da engelleyebilirsiniz.


You are a poet.

Write a poem about AI Bites


Act as a linux terminalI want you to provide the shell command to read the contents of a file named "input.txt".Copy the first 10 lines to a different file with the name "new.txt" and save it.Do not give any explanations.

Resmi bir İstem yapısı


Bir LLM'ye girebileceğimiz bir istemin farklı olası öğeleri

Bütün bunlarla birlikte, eğer benden bir bilgi isteminin yapısını resmileştirmemi istiyorsanız, şu şekilde giderim. İsteminiz özel bir konuyla ilgiliyse, bilgi istemi genellikle modelin oynaması gereken bir rolle başlar. Daha sonra LLM'ye vermek istediğiniz talimatlara sahip olabilir. Bunun da ötesinde, LLM'ye ek bilgi sağlamak isterseniz, talimatın ardından da gidebilir.


Bundan kısa bir süre sonra, birkaç adımlık yönlendirme yapıyorsanız yüksek kaliteli örnekler verebilirsiniz. Bu örnekleri daha sonra modele sağlamak istediğiniz herhangi bir bağlam takip edebilir. Soru sorup soru ve A ödevi yapmak istiyorsanız sonuna sorularınızı ekleyebilirsiniz.

İstemi Biçimlendirme

Artık bir istemin nelerden oluştuğunu gördüğümüze göre, bu istemlerin nasıl biçimlendirileceğini bilirsek daha da iyi olur. Örneğin, istenen formattan açıkça bahsetmek ve ardından formatı gerçekten sağlamak daha iyidir.


Extract locations from the below textDesired format:Cities: <comma_separated_list_of_cities>Countries: <comma_separated_list_of_countries>Input: Although the exact age of Aleppo in Syria is unknown,an ancient temple discovered in the city dates to around 3,000 BC Excavations in the1990s unearthed evidence of 5,000 years of civilization,dating Beirut, which is now Lebanon's capital, to around 3,000 BC


Benzer şekilde girdi veya bağlam için girdi demek ve ardından iki nokta üst üste koymak ve ardından girdinizi sağlamak daha iyidir.


Örnekler verirken, bunları bu örnekte olduğu gibi birkaç hash ile ayırmak daha iyidir.

Text: Today I saw a movie. It was amazing.sentiment: Positive

Text: I don't very good after seeing that incident.sentiment: Negative


Text: Lets party this weekend to celebrate your anniversary.sentiment: PositiveText: Walking in that neighbourhood is quite dangerous.sentiment: Negative


Eğer girdi sağlıyorsanız, bunu aşağıdaki örnekte olduğu gibi tırnak içine alabilirsiniz:

Text: """{text input here}"""


Daha sonra, çıktıyla bittiği için modelin metni yaymayı durdurmasını ima eden, durma dizisi adı verilen bir şey var. İstediğiniz herhangi bir sembolle bir durdurma dizisi seçebilirsiniz. Ancak yeni hat burada olağan seçenek gibi görünüyor.


Text: "Banana",

Output: "yellow \\n"

Text: "Tomato",

Output: "red \\n"

Text: "Apple",

Output: "red \\n"


Eğer kod oluşturma ile çalışıyorsanız, oluşturulacak çıktı kodunu görmek istediğiniz dile göre yorum sağlamak daha iyidir.


/*

Get the name of the use as input and print it

*/


# get the name of the user as input and print it

Videoyu izle

Buraya kadar okuduysanız ya yazıyı beğendiğinizi ya da yapay zekayı merak ettiğinizi varsayıyorum. Her iki durumda da, neden İstem Mühendisliği ile ilgili videomuzu izlemiyorsunuz? Bu, İstemde bulunmayla ilgili video serisinin ilk videosudur. Öyleyse neden abone olmuyorsunuz ve bizi izlemeye devam etmiyorsunuz?

Çözüm

Bilgi istemleri, istem mühendisliği ve bunların türleri hakkındaki tüm bu tanıtımla, burada yalnızca yüzeyini çizmiş olduk. Örneğin, Yüksek Lisans'tan belirli bir durum hakkında mantık yürütmesini nasıl isteyebiliriz? Düşünce zinciri, öz tutarlılık, genel bilgi vb. gibi daha gelişmiş yönlendirme yolları vardır. Gelecek gönderilerde ve videolarda bunlara bir göz atalım. Lütfen bizi izlemeye devam edin!