Menu

Chain of Thought Prompting: Adım Adım Düşünelim

Chain of thought prompting, bir modelden cevabı vermeden önce akıl yürütmesini yazmasını ister. En çok çok adımlı matematik ve mantık problemlerinde işe yarar; cevaplamadan önce zaten düşünen akıl yürütme modelleri için daha az önemlidir.

Bu sayfadaki her istemi düzenleyebilir, sonra ChatGPT, Claude ya da başka bir yapay zekâ uygulamasında açabilirsin.

Chain of thought (düşünce zinciri) prompting, bir dil modelinden nihai cevabı vermeden önce bir problemin ara adımlarını yazmasını ister. Sözel problemler, mantık bulmacaları ve zaman çizelgeleri gibi birkaç adım gerektiren problemlerde açıkça çalışmak, genellikle bir anda cevaplamaktan daha fazla doğru cevap üretir ve sana kontrol edebileceğin adımlar bırakır. En kısa hâli prompta eklenen tek bir cümledir: "Adım adım düşünelim" (İngilizcede ünlü hâliyle "Let's think step by step").

Adımları yazmak neden yardım eder

Bir model yanıtını her seferinde bir token olmak üzere üretir ve yazdığı her şey bir sonraki tokenin girdisi olur. Bir prompt cevabı hemen isterse model, sayfada henüz hiçbir ara sonuç yokken cevabı üretmek zorunda kalır. Önce "Pazartesi kahve satışları 168 dolar etti" diye yazarsa bu sayı artık bağlamdadır ve bir sonraki adım onu örtük olarak aklında tutmak yerine üzerine kurabilir.

Sezgi bu. Kanıt 2022'deki iki makaleden geldi. Wei ve arkadaşlarının "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" makalesi, akıl yürütmesi yazılmış çözülmüş örneklerin büyük modellerin aritmetik, sağduyu ve sembolik akıl yürütme görevlerindeki performansını iyileştirdiğini gösterdi. Faydanın ölçeğe bağlı olduğunu da buldular: daha küçük modeller kazanç sağlamadı ve çoğu zaman yanlış cevaplara götüren akıcı bir akıl yürütme yazdı. Ardından Kojima ve arkadaşlarının "Large Language Models are Zero-Shot Reasoners" makalesi, hiç örnek olmadan tek bir cümlenin, "Let's think step by step", sonuçları da ciddi şekilde iyileştirdiğini gösterdi; ancak genellikle çözülmüş örneklerden daha az.

Doğrudan cevap ve chain of thought

İki sekme de aynı soruyu soruyor. İlki sadece tutarı istiyor; ikincisi çözümü istiyor ve cevabı sabit bir son satıra koyuyor. Son satırdaki Answer: etiketini İngilizce bıraktık, çünkü aşağıdaki kod o etiketi arıyor.

Bir kafe kahveyi 3,50 dolara, muffini 2,25 dolara satıyor. Pazartesi 48 kahve ve bir miktar muffin sattı ve toplam 213 dolar kazandı. Salı günü pazartesiden 10 daha az kahve ve iki kat muffin sattı. Salı günü ne kadar kazandı? Sadece tutarı yaz.
Try it
Example replyReplies vary between models and runs.

258 dolar

Doğrudan yanıt tipik bir kaymayı gösteriyor: 258 dolar, pazartesinin 168 dolarlık kahvesi artı salının 90 dolarlık muffini; yani salı günü 10 daha az kahve satıldığını unutmuş. Adım adım yanıt salının kahve sayısına kendi satırını veriyor, böylece o adım sessizce atlanamıyor. Güncel bir model doğrudan sürümü de doğru bilebilir; problemler uzadıkça ve adımlar birbirine daha çok bağlandıkça fark açılır.

Yazılan adımların ikinci bir faydası var: bir cevap yanlış olduğunda hangi adımın bozulduğunu görebilir, promptu ya da girdiyi tam o noktada düzeltebilirsin.

Few-shot chain of thought

Wei ve arkadaşlarının orijinal tekniği, prompta cevapları akıl yürütmesini gösteren çözülmüş örnekler koyar ve model yeni soruyu aynı şekilde cevaplar. Aşağıdaki örnek makalelerinin ilk şeklinden uyarlandı; ardından gelen soru yeni. Kendi sorunu denemek için soruyu değiştir.

Few-shot chain of thought
Fill in
Parts
S: Roger'ın 5 tenis topu var. 2 kutu daha tenis topu alıyor. Her kutuda 3 tenis topu var. Şimdi kaç tenis topu var? C: Roger 5 topla başladı. 3'er toplu 2 kutu 6 tenis topu eder. 5 + 6 = 11. Cevap 11.
S: Bir kütüphanenin raflarında 120 kitap vardı. 45 kitabı ödünç verdi, 18 kitap geri geldi ve 30 kitap bağış aldı. Şimdi raflarında kaç kitap var? C:
Try it
Example replyReplies vary between models and runs.

Kütüphane 120 kitapla başladı. 45 kitabı ödünç vermek raflarda 75 kitap bıraktı. 18 kitabın geri gelmesiyle 93 oldu. 30 kitaplık bağış sayıyı 123'e çıkardı. Cevap 123.

Few-shot CoT akıl yürütmenin şekli üzerinde kontrol verir: ne kadar uzun olduğu, neyi açıkça yazdığı ve cevabın nasıl ifade edildiği. Örnekteki "Cevap 11." sabit bir bitiş ve yanıt onu kopyaladı. Zero-shot CoT yazması daha hızlıdır ama bu seçimleri modele bırakır. Örnek setleri kurmak hakkında daha fazlası için few-shot prompting, sadece talimatlı sürüm için zero-shot prompting sayfasına bak.

Cevabı kendi satırına koy

Yanıt akıl yürütme içerdiğinde cevap bir paragrafın içinde bir yerdedir; bir programın onu okuması gerektiğinde bu bir sorundur. Kafe promptunun "Answer: X dolar" ile yaptığı gibi cevabı son satırda sabit bir biçimde iste ve o satırı kodda oku:

import re

matches = re.findall(r"^Answer:\s*(.+)$", reply, re.MULTILINE)
answer = matches[-1] if matches else None

Son eşleşmeyi almak önemli, çünkü akıl yürütmenin kendisi, model kendini düzeltmeden önce "Answer:" ile başlayan bir satır içerebilir. Etiketi Türkçe yapmak istersen, örneğin "Cevap:", hem prompttaki hem de koddaki etiketi değiştir. Kullanıcılar sadece cevabı görecekse akıl yürütmeyi bir etiket çiftinin içinde, cevabı bir başkasının içinde iste, sonra sadece ikincisini göster. Birden fazla alana ihtiyacın olduğunda JSON istemek için yapılandırılmış çıktı sayfasına bak.

Akıl yürütme modelleri

Bazı güncel modeller cevaplamadan önce düşünmek üzere tasarlandı: görünen yanıttan önce akıl yürütmeyi kendi içlerinde, çoğu zaman gizli ya da özetlenmiş olarak üretirler. Onlar için "Adım adım düşünelim" çok daha az önemlidir, çünkü adımlar sen istesen de istemesen de olur. Eklemek genellikle sadece görünen yanıtı uzatır.

Bir akıl yürütme modelinde hâlâ işe yarayan şey akıl yürütmenin etrafındaki her şeydir: problemin eksiksiz bir ifadesi, doğru bir cevabın karşılaması gereken kısıtlar ve nihai cevabın biçimi. Her adımı senaryolaştırmak yerine iyi bir cevabın neye benzediğini tarif et; sabit bir adım tarifi modeli kendi başına bulacağı daha iyi bir yoldan saptırabilir.

Chain of thought ne zaman kullanılmamalı

Chain of thought token ve zaman harcar ve sadece bir görevin birbirine bağlı adımları olduğunda karşılığını verir. Bilgi sorgulama, çeviri, yeniden yazma ya da basit bir sınıflandırmada sadece yanıtı uzatır. Bir model sağlam görünen bir akıl yürütme yazıp yine de yanlış bir cevaba ulaşabilir, bu yüzden sadece oraya götüren adımları değil, nihai sonucu da ayrıca kontrol et.

Tek bir zincirin yanlış gidebileceği zor problemler için iki uzantı onun üzerine kurulur. Self-consistency prompting birkaç zincir örnekler ve çoğunun ulaştığı cevabı alır; tree of thought prompting ise birine bağlanmadan önce birkaç kısmi akıl yürütme yolunu dener ve karşılaştırır.

Sıkça Sorulan Sorular

Chain of thought prompting nedir?

Chain of thought (CoT, düşünce zinciri) prompting, bir dil modelinden nihai cevaptan önce bir problemin ara adımlarını yazmasını ister; ya akıl yürütmesini içeren çözülmüş örnekler göstererek ya da "Adım adım düşünelim" gibi bir talimat ekleyerek. Çok adımlı problemlerde bu genellikle daha fazla doğru cevap üretir ve her adımı kontrol etmeni sağlar.

"Adım adım düşünelim" hâlâ işe yarıyor mu?

Standart sohbet modellerinde, özellikle prompt aksi hâlde anında bir cevap dayatacaksa, birkaç adım gerektiren problemlerde hâlâ yardımcı olur. Cevap vermeden önce düşünen akıl yürütme modelleri bunu zaten kendi içlerinde yapar, bu yüzden ifade onlar için daha uzun bir yanıt dışında pek bir şey katmaz. Bu modellerde onun yerine problemi ve cevap biçimini net şekilde belirt.

Chain of thought ne zaman yardım eder, ne zaman etmez?

Birbirine bağlı birkaç adım gerektiren görevlerde yardım eder: sözel problemler, aritmetik, mantık bulmacaları, kısıtlı zaman planlaması ve kodun ne yaptığını izlemek. Bilgi sorgulama, çeviri, yeniden yazma ya da basit sınıflandırmada pek bir şey katmaz; sadece yanıtı uzatır ve yavaşlatır.

Zero-shot ve few-shot chain of thought arasındaki fark nedir?

Wei ve arkadaşlarının 2022'de tanıttığı few-shot CoT, prompta akıl yürütmesiyle birlikte çözülmüş örnekler koyar ve model bu akıl yürütme tarzını taklit eder. Kojima ve arkadaşlarının 2022 çalışmasından gelen zero-shot CoT hiç örnek kullanmaz, sadece "Adım adım düşünelim" gibi bir talimat ekler. Zero-shot yazması daha hızlıdır; few-shot adımların nasıl görüneceği üzerinde daha fazla kontrol verir.

Yazılan akıl yürütme, modelin cevaba gerçekten nasıl ulaştığını mı gösterir?

Şart değil. Adımlar modelin ürettiği metindir; nihai cevap yanlış çıkarken sağlam görünebilir ya da cevap tesadüfen doğruyken bir hata içerebilir. Akıl yürütmeyi bir kanıt değil, kontrol edilecek bir şey olarak gör ve nihai cevabı ayrıca doğrula.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA