Program of Thoughts Prompting (BN)
Program of Thoughts Prompting (PoT, ইংরেজি: «চিন্তার প্রোগ্রাম») — এটি বৃহৎ ভাষা মডেলের (LLM) জন্য prompt engineering-এর একটি পদ্ধতি, যেখানে মডেলটি কোনো সমস্যা সমাধানের মধ্যবর্তী ধাপ হিসেবে পাঠ্য ব্যাখ্যার পরিবর্তে প্রোগ্রামিং কোড তৈরি করে[1]। এই পদ্ধতিটি যৌক্তিক অনুমান এবং গাণিতিক গণনাকে আলাদা করার সুযোগ দেয়: ভাষা মডেলটি একটি প্রোগ্রামের (যেমন Python) আকারে সমাধানের পরিকল্পনা তৈরি করে, আর গণনাগুলি একটি বাহ্যিক, নির্ধারণবাদী কোড ইন্টারপ্রেটার দ্বারা সম্পাদিত হয়।
পদ্ধতিটি ২০২২ সালে ওয়েনহু চেন (Wenhu Chen)-এর নেতৃত্বে একদল গবেষক প্রস্তাব করেন এবং এটি মূলত সংখ্যাগত বা যৌক্তিক প্রকৃতির সমস্যার (গাণিতিক সমস্যা, আর্থিক হিসাব) জন্য তৈরি, যেখানে Chain-of-Thought-এর মতো ঐতিহ্যবাহী অনুমান পদ্ধতিগুলি গণনার নির্ভুলতায় অসুবিধার মুখে পড়েছিল[1]।
পটভূমি ও ধারণা
Chain-of-Thought-এর সীমাবদ্ধতা
PoT পদ্ধতিটি Chain-of-Thought (CoT) (চিন্তার শৃঙ্খল) ধারণার একটি বিকাশ, যা পূর্বে LLM-এর যৌক্তিক অনুমান উন্নত করার প্রধান পদ্ধতি ছিল[2]। CoT পদ্ধতিতে মডেলটি স্বাভাবিক ভাষায় মধ্যবর্তী ধাপগুলির একটি ধারাবাহিকতা তৈরি করে। অনুমানের গুণমান উল্লেখযোগ্যভাবে উন্নত হওয়া সত্ত্বেও, এই পদ্ধতিটির একটি মৌলিক সীমাবদ্ধতা রয়েছে: মডেলটি যুক্তি এবং গণনা উভয়ই পাঠ্য আকারে সম্পাদন করে। এটি প্রায়ই অনির্ভুল পাটিগণিত ক্রিয়াকলাপ, গোলাকারকরণ ত্রুটি এবং অন্যান্য অসংগতির দিকে নিয়ে যায়, কারণ ভাষা মডেলগুলি স্বভাবতই নির্ভুল ক্যালকুলেটর নয়।
Program of Thoughts-এর মূল ধারণা
PoT-এর মূল ধারণা হলো গণনাকে একটি বাহ্যিক সিস্টেমে (কোড ইন্টারপ্রেটারে) অর্পণ করা, আর ভাষা মডেলের কাছ থেকে শুধুমাত্র একটি কার্যকরী প্রোগ্রামের আকারে সমাধানের পরিকল্পনার আনুষ্ঠানিকীকরণ চাওয়া[1]। মডেলটি «গণনাকারী» নয়, বরং «প্রোগ্রামার»-এর ভূমিকায় অবতীর্ণ হয়।
কাজের প্রক্রিয়াটি নিম্নরূপ:
- মডেলটি ইনপুট হিসেবে একটি সমস্যা পায় (যেমন, একটি পাঠ্য গাণিতিক সমস্যা)।
- পাঠ্য অনুমানের পরিবর্তে এটি একটি প্রোগ্রামিং ভাষায় (যেমন Python) একটি স্ক্রিপ্ট তৈরি করে যা সমস্যাটি সমাধান করে।
- তৈরি করা কোডটি একটি বাহ্যিক ইন্টারপ্রেটারে পাঠানো হয়, যা সেটি চালায়।
- কোড চালানোর ফলাফলই চূড়ান্ত উত্তর।
এইভাবে, জটিল এবং নির্ভুল গণনা (বড় সংখ্যার সাথে ক্রিয়াকলাপ, বিশেষায়িত লাইব্রেরির কল) মডেল নিজে নয়, বরং প্রোগ্রাম দ্বারা সম্পাদিত হয়, যা নির্ধারণবাদিতা এবং উচ্চ নির্ভুলতা নিশ্চিত করে[3]।
বাস্তবায়ন ও লাইব্রেরির ব্যবহার
PoT বাস্তবায়নে মূল বিষয় হলো LLM-এর সঠিক ও কার্যকর কোড তৈরি করার ক্ষমতা। পদ্ধতির লেখকরা প্রোগ্রামিং কাজের জন্য বিশেষভাবে প্রশিক্ষিত OpenAI Codex মডেল ব্যবহার করেছিলেন। PoT পদ্ধতিটি মডেলকে বাহ্যিক লাইব্রেরি ব্যবহার করতে সক্ষম করে, যা সমাধানযোগ্য সমস্যার পরিসর উল্লেখযোগ্যভাবে প্রসারিত করে। উদাহরণস্বরূপ, প্রতীকী গণিতের সমস্যা সমাধানে মডেলটি বিশ্লেষণমূলকভাবে সমীকরণ সমাধানের জন্য SymPy লাইব্রেরি ব্যবহার করে কোড তৈরি করতে পারে, যা বিশুদ্ধ ভাষাগত পদ্ধতির সীমার বাইরে[1]।
PoT-এর জন্য prompt দুটি মোডে প্রদান করা যায়:
- Few-shot: Prompt-এ «প্রশ্ন — প্রোগ্রাম-সমাধান» জোড়ার বেশ কয়েকটি উদাহরণ থাকে।
- Zero-shot: Prompt-এ শুধুমাত্র সমস্যা বর্ণনাকারী একটি নির্দেশনা থাকে, কোনো উদাহরণ ছাড়াই।
Zero-shot মোডেও PoT উচ্চ কার্যকারিতা দেখায়, কারণ মডেলকে একটি স্পষ্ট কাঠামো তৈরি করতে হয়[4]।
ফলাফল ও কার্যকারিতা
PoT পদ্ধতিটি বহু-ধাপের সংখ্যাগত অনুমান প্রয়োজনীয় সমস্যায় সমাধানের গুণমানে উল্লেখযোগ্য উন্নতি প্রদর্শন করেছে। মূল গবেষণায় এটি GSM8K, AQUA, SVAMP, FinQA সহ আটটি গাণিতিক ও আর্থিক সমস্যার dataset-এ পরীক্ষিত হয়েছিল।
- নির্ভুলতা বৃদ্ধি: সব ক্ষেত্রেই PoT মূল CoT পদ্ধতিকে ছাড়িয়ে গেছে। গড়ে সঠিক সমাধানের অংশে আপেক্ষিক উন্নতি ~১২% অর্জিত হয়েছে।
- জনপ্রিয় গাণিতিক dataset GSM8K-তে PoT সহ মডেলের নির্ভুলতা ৭১.৬% পৌঁছেছে, যেখানে CoT সহ এটি ছিল ৬৩.১%।
- আর্থিক সমস্যায় উন্নতি আরও বেশি উল্লেখযোগ্য ছিল: FinQA dataset-এ নির্ভুলতা ৪০.৪% (CoT) থেকে ৬৪.৫% (PoT)-এ বৃদ্ধি পেয়েছে[1]।
- Self-Consistency-র সাথে সমন্বয়: PoT-এর কার্যকারিতা স্ব-সামঞ্জস্য (self-consistency) পদ্ধতির সাথে সংযুক্ত করে আরও উন্নত করা যায়। এই ক্ষেত্রে মডেলটি বেশ কয়েকটি স্বাধীন প্রোগ্রাম-সমাধান তৈরি করে এবং চূড়ান্ত উত্তরটি তাদের ফলাফলের মধ্য থেকে «সংখ্যাগরিষ্ঠতার নীতি» অনুযায়ী নির্বাচিত হয়। self-consistency-র সাথে সমন্বয়ে PoT প্রকাশনার সময়ে সমস্ত পরীক্ষিত গাণিতিক ও আর্থিক benchmark-এ নতুন state-of-the-art প্রতিষ্ঠা করেছে[1]।
সুবিধা ও সীমাবদ্ধতা
সুবিধা
- গণনার নির্ভুলতা: প্রধান সুবিধা। বাহ্যিক ইন্টারপ্রেটার দ্বারা পাটিগণিত ক্রিয়াকলাপ সম্পাদন LLM-এর সহজাত গোলাকারকরণ ত্রুটি ও অনির্ভুলতা দূর করে।
- লাইব্রেরি ব্যবহারের সুযোগ: মডেলটি শক্তিশালী বাহ্যিক লাইব্রেরি (যেমন প্রতীকী গণনা, পরিসংখ্যানগত বিশ্লেষণ, তারিখের সাথে কাজের জন্য) ব্যবহার করতে পারে, এমন সমস্যা সমাধান করে যা পূর্বে সমাধানযোগ্য ছিল না।
- ব্যাখ্যাযোগ্যতা ও ডিবাগিং: প্রোগ্রামিং কোড হলো সমাধানের যুক্তির একটি আনুষ্ঠানিক ও কাঠামোগত উপস্থাপনা, যা স্বাভাবিক ভাষার অনুমানের তুলনায় যাচাই ও ডিবাগিং সহজ করে।
- বহুমুখিতা: পদ্ধতিটি few-shot এবং zero-shot উভয় মোডেই কার্যকর এবং বিভিন্ন ডোমেনে (গণিত, অর্থনীতি, বিজ্ঞান) প্রযোজ্য।
সীমাবদ্ধতা
- নিরাপত্তা: বাহ্যিক ইন্টারপ্রেটারে তৈরি কোড চালানো নিরাপত্তা ঝুঁকি তৈরি করে। মডেলটি তাত্ত্বিকভাবে ক্ষতিকর কোড (যেমন ফাইল মুছে ফেলার জন্য) তৈরি করতে পারে। তাই PoT-এর ব্যবহারিক প্রয়োগে কার্যকরী পরিবেশের বিচ্ছিন্নতা (sandbox) এবং কোডের সতর্ক ফিল্টারিং প্রয়োজন[4]।
- সীমিত প্রযোজ্যতার ক্ষেত্র: পদ্ধতিটি সেই সমস্যার জন্য সবচেয়ে কার্যকর যা একটি অ্যালগরিদমের আকারে স্পষ্টভাবে আনুষ্ঠানিকীকরণ করা যায়। ভাষার সূক্ষ্মতা বোঝার, সাধারণ জ্ঞান বা সৃজনশীল পদ্ধতির প্রয়োজনীয় সমস্যায় PoT-এর সরাসরি প্রয়োগ কঠিন।
- কোডের গুণমানের উপর নির্ভরতা: পদ্ধতির কার্যকারিতা সরাসরি LLM-এর বাক্যগতভাবে সঠিক ও যৌক্তিকভাবে নির্ভুল কোড তৈরির ক্ষমতার উপর নির্ভর করে।
সম্পর্কিত পদ্ধতি
LLM-এর অনুমান উন্নত করতে কোড ব্যবহারের ধারণাটি অন্যান্য অনুরূপ পদ্ধতিতেও বিকশিত হয়েছে।
- Program-Aided Language Models (PAL): PoT-এর প্রায় একই সময়ে প্রস্তাবিত একটি পদ্ধতি, যা সমস্যা সমাধানের জন্য Python কোড তৈরিও ব্যবহার করে[5]। ধারণাগতভাবে PAL এবং PoT খুবই কাছাকাছি এবং «কোডের মাধ্যমে অনুমান» কৌশলের কার্যকারিতা নিশ্চিত করে।
- Tree of Thoughts (ToT): একটি আরও জটিল পদ্ধতি যা সমাধানের সম্ভাব্য ধাপগুলির একটি «গাছ» তৈরি ও অন্বেষণ করার প্রস্তাব করে, যা রৈখিক «চিন্তার শৃঙ্খল»-এর ধারণার একটি বিকাশ। PoT এই গাছের নোডগুলির মধ্যে অনুমান যাচাই করতে ব্যবহার করা যেতে পারে।
তথ্যসূত্র
- Program of Thoughts Prompting সম্পর্কে মূল বৈজ্ঞানিক নিবন্ধ
- Learn Prompting পোর্টালে PoT-এর নির্দেশিকা
সাহিত্য
- Chen, W. et al. (2023). Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks. arXiv:2211.12588.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Gao, L. et al. (2022). PAL: Program-Aided Language Models. arXiv:2211.10435.
- Cobbe, K. et al. (2021). Training Verifiers to Solve Math Word Problems. arXiv:2110.14168.
- Chen, Z. et al. (2021). FinQA: A Dataset of Numerical Reasoning over Financial Data. arXiv:2109.00122.
- Zhu, F. et al. (2021). TAT-QA: A Question Answering Benchmark on a Hybrid of Tabular and Textual Content in Finance. arXiv:2105.07624.
- Patel, A. et al. (2021). Are NLP Models Really Able to Solve Simple Math Word Problems? (Introducing SVAMP). arXiv:2103.07191.
- Xu, F. et al. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
- Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.
টীকা
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Chen, W. et al. «Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks». arXiv:2211.12588, 2023. [১]
- ↑ Wei, J. et al. «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». arXiv:2201.11903, 2022. [২]
- ↑ «Program of Thoughts: Everything You Need to Know». The Ministry of AI. [৩]
- ↑ 4.0 4.1 «Program of Thoughts Prompting: Enhancing Accuracy in Reasoning and Computation». Learn Prompting. [৪]
- ↑ «PAL (Program-Aided Language Models)». Prompt Engineering Guide. [৫]