ReAct Prompting (BN)

From Systems analysis Wiki
Jump to navigation Jump to search

ReAct (সংক্ষেপে Reason + Act, অর্থাৎ «যুক্তি দাও এবং কাজ করো») — এটি বৃহৎ ভাষা মডেলের (LLM) জন্য একটি prompt ডিজাইন প্যারাডাইম, যা মডেলকে মৌখিক যুক্তি (চিন্তা) এবং বাহ্যিক পরিবেশের সাথে মিথস্ক্রিয়াকারী কার্যক্রমের পর্যায়ক্রমিক সমন্বয়ের মাধ্যমে জটিল সমস্যা সমাধান করতে সক্ষম করে[1]। পদ্ধতিটি ২০২২ সালে Google Research এবং প্রিন্সটন বিশ্ববিদ্যালয়ের গবেষকদের দ্বারা প্রস্তাবিত হয়েছিল এবং বুদ্ধিমান এজেন্ট বিকাশের একটি মৌলিক পদ্ধতি হয়ে উঠেছে।

ReAct-এর মূল উদ্ভাবন হলো Chain-of-Thought (CoT)-এর মতো কৌশলের বৈশিষ্ট্যগত যৌক্তিক চিন্তাভাবনার সাথে তথ্য অনুসন্ধান বা প্রোগ্রাম ইন্টারফেস (API)-এর সাথে মিথস্ক্রিয়ার মতো বাহ্যিক কার্যক্রম সম্পাদনের একীভূতকরণ। এটি মডেলকে গতিশীলভাবে তার পরিকল্পনা সংশোধন করতে, তথ্য যাচাই করতে এবং নিজের প্রায়শই পুরোনো বা অসম্পূর্ণ জ্ঞানের সীমাবদ্ধতা অতিক্রম করতে দেয়[2]

পূর্বপ্রস্তুতি এবং তৈরির ইতিহাস

ReAct আবির্ভাবের আগে জটিল সমস্যা সমাধানে LLM ব্যবহারের দুটি প্রধান কিন্তু বিচ্ছিন্ন পদ্ধতি বিদ্যমান ছিল:

  • চিন্তার শৃঙ্খল (Chain-of-Thought, CoT): মডেলটি সমস্যা সমাধানের জন্য ধাপে ধাপে যৌক্তিক যুক্তি তৈরি করে, কিন্তু এটি «তথ্যগত শূন্যে» করে, সম্পূর্ণরূপে তার অভ্যন্তরীণ জ্ঞানের উপর নির্ভর করে। এটি প্রায়ই তথ্যগত ত্রুটি এবং «হ্যালুসিনেশন» ঘটায়[1]
  • কার্যক্রম পরিকল্পনা (Act-Only): মডেলটি বাহ্যিক পরিবেশের সাথে মিথস্ক্রিয়ার জন্য কার্যক্রমের একটি ধারা তৈরি করে (যেমন, টেক্সট গেমে), কিন্তু স্পষ্ট উচ্চ-স্তরের পরিকল্পনা ছাড়াই। এই ধরনের সিস্টেমগুলো ত্রুটি মোকাবেলায় দুর্বল এবং অপ্রত্যাশিত পরিস্থিতিতে তাদের কৌশল মানিয়ে নিতে পারে না।

ReAct উভয় পদ্ধতির শক্তির সমন্বিত একীভূতকরণের জন্য তৈরি করা হয়েছিল। এটি মডেলকে শুধু যুক্তি দিতে নয়, বরং বাহ্যিক বিশ্বের তথ্যে তার যুক্তিকে নোঙর করতে এবং প্রাপ্ত feedback-এর ভিত্তিতে তার কার্যক্রম মানিয়ে নিতে সক্ষম করে।

কার্যপদ্ধতি: «চিন্তা — কাজ — পর্যবেক্ষণ» চক্র

ReAct একটি পুনরাবৃত্তিমূলক চক্রের কাঠামোতে কাজ করে, যা তিনটি মূল উপাদান অন্তর্ভুক্ত করে। মডেলটি ধারাবাহিকভাবে Thought, Action এবং Observation ধাপ নিয়ে গঠিত একটি পথ তৈরি করে।

prompt কাঠামোর উদাহরণ:

প্রশ্ন: পরিবর্তী প্রবাহের জন্য পরিচিত উদ্ভাবকের জন্মস্থান যে শহরটি, সেটি কোন দেশের রাজধানী?

Thought 1: আমাকে জানতে হবে পরিবর্তী প্রবাহ কে আবিষ্কার করেছিলেন। তারপর তার জন্মস্থান খুঁজে বের করতে হবে এবং দেখতে হবে সেই শহরটি কোনো রাজধানী কিনা।

Action 1: Search[পরিবর্তী প্রবাহের উদ্ভাবক]

Observation 1: পরিবর্তী প্রবাহ (AC) নিকোলা টেসলা দ্বারা বিকশিত এবং প্রচারিত হয়েছিল।

Thought 2: এখন আমাকে জানতে হবে নিকোলা টেসলা কোথায় জন্মগ্রহণ করেছিলেন।

Action 2: Search[নিকোলা টেসলার জন্মস্থান]

Observation 2: নিকোলা টেসলা স্মিলজান গ্রামে জন্মগ্রহণ করেছিলেন, অস্ট্রিয়ান সাম্রাজ্যে (আধুনিক ক্রোয়েশিয়া)।

Thought 3: স্মিলজান কোনো রাজধানী নয়। সুতরাং, প্রশ্নটির এই প্রণয়নে কোনো সুনির্দিষ্ট উত্তর নেই। তবে টেসলা দীর্ঘকাল যুক্তরাষ্ট্রে বাস করেছিলেন এবং কাজ করেছিলেন। সম্ভবত প্রশ্নে সেই দেশের রাজধানীর কথা বলা হচ্ছে যেখানে তিনি তার প্রধান আবিষ্কারগুলো করেছিলেন। এটি আরও জটিল প্রশ্ন। আমার জন্মস্থানের উপর ভিত্তি করে তথ্য বলা উচিত। তার জন্মশহরটি কোনো রাজধানী নয়।

Final Answer: পরিবর্তী প্রবাহের সাথে সম্পর্কিত উদ্ভাবক নিকোলা টেসলা স্মিলজানে (ক্রোয়েশিয়া) জন্মগ্রহণ করেছিলেন, যা কোনো রাজধানী নয়।

চিন্তা (Thought)

মডেলটি একটি অভ্যন্তরীণ যুক্তি তৈরি করে, যেখানে এটি সমস্যা বিশ্লেষণ করে, উপ-সমস্যায় বিভক্ত করে, কর্মপরিকল্পনা গঠন বা সংশোধন করে এবং বর্তমান অবস্থা মূল্যায়ন করে। এই ধাপটি বাহ্যিক পরিবেশকে প্রভাবিত করে না, বরং অভ্যন্তরীণ পরিকল্পনার জন্য কাজ করে।

কাজ (Action)

তার যুক্তির ভিত্তিতে মডেলটি উপলব্ধ সরঞ্জামগুলোর একটিতে অ্যাক্সেস করে একটি বাহ্যিক কার্যক্রম সম্পাদন করে। কার্যক্রমের উদাহরণ:

  • Search [অনুসন্ধান] — জ্ঞানভাণ্ডারে (যেমন, উইকিপিডিয়া) তথ্য অনুসন্ধানের জন্য।
  • Click [উপাদান] — ওয়েবপেজে নেভিগেশনের জন্য।
  • API_call [প্যারামিটার] — বাহ্যিক API কল করার জন্য।

পর্যবেক্ষণ (Observation)

সিস্টেম বা বাহ্যিক সরঞ্জাম কার্যক্রম সম্পাদন করে ফলাফল (পর্যবেক্ষণ) ফেরত দেয়। এটি একটি টেক্সট অংশ, API প্রতিক্রিয়া বা ত্রুটির বার্তা হতে পারে। মডেলটি পরবর্তী চিন্তা গঠনের জন্য এই পর্যবেক্ষণ ব্যবহার করে, feedback চক্র সম্পন্ন করে[2]

পরীক্ষামূলক ফলাফল এবং কার্যকারিতা

ReAct-এর লেখকরা বিস্তৃত কার্যক্রমে পদ্ধতিটি পরীক্ষা করেছেন, CoT এবং Act-Only পদ্ধতির তুলনায় এর শ্রেষ্ঠত্ব প্রদর্শন করেছেন।

মূল benchmark-এ বেসলাইন পদ্ধতির তুলনায় ReAct-এর ফলাফল[1]
Benchmark কার্যক্রম ReAct (সাফল্য/নির্ভুলতা) Chain-of-Thought (সাফল্য/নির্ভুলতা) Act-Only (সাফল্য/নির্ভুলতা)
FEVER তথ্য যাচাই 87.6% 82.8% 70.1%
HotpotQA বহু-ধাপের প্রশ্ন 31.8% 36.3% 17.0%
ALFWorld টেক্সট গেম (পরিকল্পনা) 71% 10% 13%
WebShop ওয়েব নেভিগেশন 40% - 30.1%
  • তথ্য যাচাই (FEVER) প্রয়োজন এমন কার্যক্রমে, ReAct উল্লেখযোগ্যভাবে CoT-কে ছাড়িয়ে যায়, কারণ এটি তথ্য যাচাই করতে পারে।
  • ইন্টারেক্টিভ পরিকল্পনা (ALFWorld, WebShop) কার্যক্রমে, ReAct বিশাল সুবিধা প্রদর্শন করে, কারণ এটি পরিবর্তনশীল পরিবেশে মানিয়ে নিতে পারে।
  • বিশুদ্ধ যুক্তি (HotpotQA) কার্যক্রমে, CoT তুলনামূলক বা এমনকি ভালো ফলাফল দেখাতে পারে। তবে হাইব্রিড পদ্ধতি ReAct+CoT সর্বোত্তম কার্যক্ষমতা দেখিয়েছে, HotpotQA-তে ৩৫% অর্জন করেছে[1]

সমালোচনা এবং সীমাবদ্ধতা

কার্যকারিতা সত্ত্বেও, ReAct-এর বেশ কিছু সীমাবদ্ধতা এবং দুর্বলতা রয়েছে।

  • «ভঙ্গুরতা» (Brittleness): পরবর্তী গবেষণায় দেখা গেছে যে ReAct-এর সাফল্য যুক্তি এবং কার্যক্রমের প্রকৃত সমন্বয়ের চেয়ে prompt-এর উদাহরণ এবং বর্তমান কার্যক্রমের মধ্যে বাক্যতাত্ত্বিক মিলের সাথে বেশি সম্পর্কিত হতে পারে। মডেলটি যুক্তির শব্দার্থ সম্পূর্ণরূপে না বুঝেই `Thought-Action-Observation` শাবলন অনুসরণ করতে পারে[3]
  • গণনামূলক ব্যয়: প্রতিটি ReAct চক্রে কমপক্ষে একটি LLM কল এবং একটি বাহ্যিক সরঞ্জাম অ্যাক্সেস প্রয়োজন, যা এটিকে স্ট্যান্ডার্ড prompting-এর তুলনায় ধীর এবং ব্যয়বহুল করে তোলে।
  • সরঞ্জামের উপর নির্ভরতা: এজেন্টের কার্যকারিতা সরাসরি উপলব্ধ সরঞ্জামের গুণমান এবং নির্ভরযোগ্যতার উপর নির্ভর করে। API থেকে ভুল বা শব্দময় প্রতিক্রিয়া মডেলের যুক্তিকে ভুল পথে নিয়ে যেতে পারে।

গুরুত্ব এবং আরও উন্নয়ন

ReAct AI উন্নয়নে একটি গুরুত্বপূর্ণ মাইলফলক হয়ে উঠেছে, জেনারেটিভ সিস্টেম থেকে এজেন্টিক সিস্টেমে রূপান্তর চিহ্নিত করেছে। এটি এজেন্ট তৈরির বেশিরভাগ আধুনিক framework-এর জন্য ধারণাগত এবং ব্যবহারিক ভিত্তি স্থাপন করেছে, যেমন:

  • LangChain
  • LlamaIndex
  • AutoGen

ReAct-এর ধারণাগুলো আরও জটিল যুক্তি আর্কিটেকচারের সূচনাবিন্দু হিসেবে কাজ করেছে, যেমন Reflexion (ব্যর্থতার পরে আত্ম-প্রতিফলনের চক্র যোগ করে) এবং Tree of Thoughts (ToT) (সমান্তরালভাবে একাধিক যুক্তির পথ অন্বেষণ করে)।

সূত্র

  • ReAct প্রকল্পের অফিসিয়াল পেজ
  • Learn Prompting গাইডে ReAct-এর বিবরণ
  • Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.

সাহিত্য

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

টীকা

  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. [১]
  2. 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [২]
  3. Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [৩]