ReAct Prompting (TR)

From Systems analysis Wiki
Jump to navigation Jump to search

ReAct (İng. Reason + Act kısaltması, Türkçe anlamı — «Akıl Yürüt ve Harekete Geç») — büyük dil modellerinin (LLM) karmaşık görevleri çözmesine olanak tanıyan, sözel akıl yürütmelerin (düşüncelerin) ve dış ortamla etkileşim kuran eylemlerin dönüşümlü olarak kullanıldığı bir prompt tasarım paradigmasıdır[1]. Yöntem, 2022 yılında Google Research ve Princeton Üniversitesi araştırmacıları tarafından önerilmiş ve akıllı ajan geliştirme alanında temel bir yaklaşım hâline gelmiştir.

ReAct'ın temel yeniliği, Chain-of-Thought (CoT) gibi tekniklere özgü mantıksal akıl yürütmenin, bilgi arama veya yazılım arayüzleriyle (API) etkileşim gibi dış eylemlerle birleştirilmesinde yatmaktadır. Bu sayede model, planını dinamik olarak düzeltebilmekte, gerçekleri doğrulayabilmekte ve çoğunlukla güncel olmayan ya da eksik olan kendi bilgisinin sınırlamalarının üstesinden gelebilmektedir[2].

Ön Koşullar ve Tarihçe

ReAct'tan önce, LLM'lerin karmaşık görevleri çözmesinde iki temel ancak birbirinden ayrı yaklaşım mevcuttu:

  • Akıl Yürütme Zinciri (Chain-of-Thought, CoT): Model, görevi çözmek için adım adım mantıksal akıl yürütmeler üretir; ancak bunu yalnızca kendi iç bilgisine dayanarak «bilgi boşluğunda» gerçekleştirir. Bu durum çoğu zaman olgusal hatalara ve «halüsinasyonlara» yol açar[1].
  • Eylem Planlaması (Act-Only): Model, dış ortamla etkileşim kurmak için (örneğin metin tabanlı oyunlarda) bir dizi eylem üretir; ancak bunu açık bir üst düzey planlama olmaksızın yapar. Bu tür sistemler hatalarla başa çıkmakta zorlanır ve öngörülemeyen durumlarla karşılaştığında stratejilerini uyarlayamazlar.

ReAct, her iki yaklaşımın güçlü yönlerini sinerjik biçimde birleştirmek amacıyla geliştirilmiştir. Modelin yalnızca akıl yürütmesine değil, aynı zamanda bu akıl yürütmelerini dış dünyadaki gerçeklerle temellendirmesine ve alınan geri bildirimler doğrultusunda eylemlerini uyarlamasına olanak tanır.

Çalışma Mekanizması: «Düşünce — Eylem — Gözlem» Döngüsü

ReAct, üç temel bileşeni kapsayan yinelemeli bir döngü çerçevesinde çalışır. Model, sırasıyla Thought, Action ve Observation adımlarından oluşan bir yörünge üretir.

Prompt yapısı örneği:

Soru: Alternatif akımla tanınan mucit, hangi şehirde doğmuştur ve o şehir bir başkent midir?

Thought 1: Alternatif akımı kimin icat ettiğini öğrenmem gerekiyor. Ardından doğum yerini bulacak ve bu şehrin bir başkent olup olmadığını kontrol edeceğim.

Action 1: Search[alternatif akım mucidi]

Observation 1: Alternatif akım (AC), Nikola Tesla tarafından geliştirilmiş ve yaygınlaştırılmıştır.

Thought 2: Şimdi Nikola Tesla'nın nerede doğduğunu öğrenmem gerekiyor.

Action 2: Search[Nikola Tesla'nın doğum yeri]

Observation 2: Nikola Tesla, Avusturya İmparatorluğu'na (günümüz Hırvatistan'ı) bağlı Smilyan köyünde doğmuştur.

Thought 3: Smilyan bir başkent değildir. Dolayısıyla soru bu hâliyle net bir yanıt vermiyor. Ancak Tesla uzun yıllar ABD'de yaşayıp çalışmıştır. Belki de asıl büyük keşiflerini yaptığı ülkenin başkenti kastedilmektedir. Bu daha karmaşık bir sorudur. Doğum yerine dayalı gerçeği belirtmem gerekiyor: Doğduğu şehir bir başkent değildir.

Final Answer: Alternatif akımla özdeşleşen mucit Nikola Tesla, başkent olmayan Smilyan'da (Hırvatistan) doğmuştur.

Düşünce (Thought)

Model, görevi çözümlediği, alt görevlere ayırdığı, eylem planı oluşturduğu ya da düzelttiği ve mevcut durumu değerlendirdiği bir iç akıl yürütme üretir. Bu adım dış ortamı etkilemez; yalnızca iç planlama amacına hizmet eder.

Eylem (Action)

Model, akıl yürütmesine dayanarak mevcut araçlardan birini kullanarak dış bir eylem gerçekleştirir. Eylem örnekleri:

  • Search [sorgu] — bilgi tabanında (örneğin Vikipedi'de) bilgi aramak için.
  • Click [öge] — bir web sayfasında gezinmek için.
  • API_call [parametreler] — dış bir API çağırmak için.

Gözlem (Observation)

Sistem veya dış araç eylemi gerçekleştirir ve sonucu (gözlemi) geri döndürür. Bu sonuç bir metin parçası, bir API yanıtı ya da hata mesajı olabilir. Model, bu gözlemi bir sonraki düşünceyi oluşturmak için kullanarak geri bildirim döngüsünü tamamlar[2].

Deneysel Sonuçlar ve Etkinlik

ReAct'ın yazarları, yöntemi geniş bir görev yelpazesinde test etmiş ve CoT ile Act-Only yaklaşımlarına üstünlüğünü ortaya koymuştur.

Temel benchmark'larda ReAct'ın temel yöntemlerle karşılaştırmalı sonuçları[1]
Benchmark Görev ReAct (başarı/doğruluk) Chain-of-Thought (başarı/doğruluk) Act-Only (başarı/doğruluk)
FEVER Gerçek doğrulama 87.6% 82.8% 70.1%
HotpotQA Çok adımlı sorular 31.8% 36.3% 17.0%
ALFWorld Metin tabanlı oyun (planlama) 71% 10% 13%
WebShop Web navigasyonu 40% - 30.1%
  • Gerçek doğrulama gerektiren görevlerde (FEVER), ReAct bilgiyi doğrulayabildiği için CoT'u belirgin biçimde geride bırakmaktadır.
  • Etkileşimli planlama görevlerinde (ALFWorld, WebShop), ReAct değişen ortama uyum sağlayabildiğinden büyük bir üstünlük sergilemektedir.
  • Saf akıl yürütme görevlerinde (HotpotQA), CoT karşılaştırılabilir hatta daha iyi sonuçlar üretebilmektedir. Ancak hibrit yaklaşım olan ReAct+CoT, HotpotQA'da %35'e ulaşarak en iyi performansı göstermiştir[1].

Eleştiriler ve Sınırlılıklar

ReAct, etkinliğine karşın bir dizi sınırlılık ve kırılganlık barındırmaktadır.

  • «Kırılganlık» (Brittleness): Sonraki araştırmalar, ReAct'ın başarısının gerçek anlamda akıl yürütme-eylem sinerjisinden çok, prompt içindeki örnekler ile mevcut görev arasındaki sözdizimsel benzerliğe bağlı olabileceğini ortaya koymuştur. Model, akıl yürütmenin anlambilimini tam olarak kavramaksızın `Thought-Action-Observation` şablonunu takip ediyor olabilir[3].
  • Hesaplama Maliyeti: ReAct'ın her döngüsü en az bir LLM çağrısı ve bir dış araç erişimi gerektirdiğinden, standart prompting'e kıyasla yavaş ve maliyetli hâle gelmektedir.
  • Araç Bağımlılığı: Ajanın etkinliği, mevcut araçların kalitesine ve güvenilirliğine doğrudan bağlıdır. API'den gelen yanlış veya gürültülü bir yanıt, modelin akıl yürütmesini yanlış bir yöne çekebilir.

Önemi ve Gelecekteki Gelişmeler

ReAct, yapay zeka alanında önemli bir dönüm noktası hâline gelerek üretici sistemlerden ajantik sistemlere geçişi simgelemiştir. Aşağıdakiler gibi modern ajan geliştirme framework'lerinin büyük çoğunluğu için kavramsal ve pratik bir temel oluşturmuştur:

  • LangChain
  • LlamaIndex
  • AutoGen

ReAct'ın fikirleri, Reflexion (başarısızlıkların ardından öz-yansıma döngüsü ekler) ve Tree of Thoughts (ToT) (birden fazla akıl yürütme yolunu paralel olarak keşfeder) gibi daha gelişmiş akıl yürütme mimarileri için bir çıkış noktası olmuştur.

Dış bağlantılar

  • ReAct projesinin resmi sayfası
  • Learn Prompting rehberinde ReAct açıklaması
  • Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.

Kaynakça

  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Shinn, N. et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.
  • Verma, V. et al. (2024). On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models. arXiv:2405.13966.
  • Yao, S. et al. (2022). WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents. arXiv:2207.01206.
  • Shridhar, M. et al. (2020). ALFWorld: Aligning Text and Embodied Environments for Interactive Learning. arXiv:2010.03768.
  • Qin, L. et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Collaboration. arXiv:2308.08155.
  • Thorne, J. et al. (2018). FEVER: A Large-Scale Dataset for Fact Extraction and Verification. arXiv:1803.05355.
  • Yang, Z. et al. (2018). HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. arXiv:1809.09600.

Notlar

  1. 1.0 1.1 1.2 1.3 Yao, S., Zhao, J., Yu, D., et al. (2022). «ReAct: Synergizing Reasoning and Acting in Language Models». arXiv preprint arXiv:2210.03629. [1]
  2. 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
  3. Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]