পাঠ ১৯ · ২৮-এর মধ্যে
Home / AI Courses / প্রম্পট ইঞ্জিনিয়ারিং / প্রম্পট চেইনিং

প্রম্পট চেইনিং ও সেলফ-কারেকশন

Prompt chaining and self-correction
১০ মিনিট পড়া মধ্যম-উচ্চ · Intermediate-Advanced পাঠ ০৮ ও M4 পড়া থাকা ভালো সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • কখন একটি কাজকে একাধিক API কলে ভাগ করা উচিত, একটি কলেই না রেখে
  • ড্রাফট → রিভিউ → রিফাইন সেলফ-কারেকশন প্যাটার্নের গঠন
  • OpenAI-এর টাস্ক-স্প্লিটিং কৌশল কীভাবে একই ধারণাকে প্রতিফলিত করে
  • প্রম্পট চেইনিং-এর প্রকৃত ট্রেড-অফ — এটা কখন মূল্যবান, কখন অপ্রয়োজনীয়

১ · একটি কাজকে একাধিক কলে ভাগ করা কেন প্রয়োজন হয়

এতদিন এই কোর্সে আমরা একটি প্রম্পটকে যতটা সম্ভব ভালো করে লেখার কৌশল শিখেছি — স্পষ্টতা, উদাহরণ, গঠন, চেইন-অফ-থট। কিন্তু কিছু কাজ এমন যে একটিমাত্র প্রম্পট/API কলে সমাধান করা আদর্শ নয়, এমনকি যদি মডেল প্রযুক্তিগতভাবে পুরো কাজটি একবারেই করতে সক্ষম হয়।

প্রম্পট চেইনিং (Prompt Chaining)Prompt Chainingএকটি জটিল কাজকে একাধিক সিকোয়েন্সিয়াল API কলে ভাগ করা, যেখানে এক কলের আউটপুট পরের কলের ইনপুট হিসেবে ব্যবহৃত হয় — প্রতিটি ধাপ আলাদাভাবে পরিদর্শন, লগ বা মূল্যায়ন করা যায়। কাজে লাগে দুটি নির্দিষ্ট পরিস্থিতিতে — যখন আপনার মধ্যবর্তী আউটপুট পরিদর্শন করা প্রয়োজন (যেমন ডিবাগিং, লগিং, বা মানুষের অনুমোদনের জন্য থামা), অথবা যখন আপনাকে একটি নির্দিষ্ট পাইপলাইন গঠন বলবৎ করতে হবে যা মডেলের নিজস্ব বিচারের ওপর ছেড়ে দেওয়া ঠিক নয়।

উদাহরণ পরিস্থিতি · Example scenarios

একটি ডকুমেন্ট-প্রসেসিং পাইপলাইনে — প্রথমে একটি কল দিয়ে ডকুমেন্ট থেকে তথ্য এক্সট্র্যাক্ট করা, তারপর একটি আলাদা কল দিয়ে সেই তথ্য যাচাই করা, তারপর তৃতীয় কল দিয়ে চূড়ান্ত রিপোর্ট তৈরি করা — প্রতিটি ধাপ আলাদাভাবে লগ ও মূল্যায়ন করা যায়, এবং যাচাই ধাপে সমস্যা পাওয়া গেলে এক্সট্র্যাকশন ধাপে ফিরে যাওয়া (branch) সম্ভব।

২ · সেলফ-কারেকশন প্যাটার্ন — ড্রাফট, রিভিউ, রিফাইন

প্রম্পট চেইনিং-এর সবচেয়ে ব্যবহারিক প্রয়োগগুলোর একটি হলো সেলফ-কারেকশন (Self-Correction Pattern)Self-Correctionএকটি তিন-ধাপের চেইন — প্রথমে একটি ড্রাফট তৈরি, তারপর সেই ড্রাফট নির্দিষ্ট মানদণ্ডের বিপরীতে রিভিউ, তারপর রিভিউয়ের ভিত্তিতে ড্রাফট রিফাইন — প্রতিটি ধাপ একটি আলাদা API কল হিসেবে চালানো হয়। প্যাটার্ন। এটি তিনটি আলাদা ধাপে চলে —

  1. ড্রাফট তৈরি: প্রথম API কল — মডেল কাজটির একটি প্রাথমিক সমাধান তৈরি করে।
  2. রিভিউ: দ্বিতীয় API কল — মডেলকে (একই বা ভিন্ন প্রম্পটে) স্পষ্ট মানদণ্ডের বিপরীতে সেই ড্রাফট মূল্যায়ন করতে বলা হয় — কোথায় দুর্বলতা আছে, কী মানদণ্ড পূরণ হয়নি।
  3. রিফাইন: তৃতীয় API কল — রিভিউয়ের ফলাফল ইনপুট হিসেবে দিয়ে মডেলকে ড্রাফটটি উন্নত করতে বলা হয়।

প্রতিটি ধাপ একটি আলাদা API কল হওয়ায় — আপনি প্রতিটি ধাপের আউটপুট লগ করতে পারেন, একটি নির্দিষ্ট ধাপে সমস্যা হলে সেখানেই থামাতে বা ব্র্যাঞ্চ করতে পারেন, এবং প্রতিটি ধাপকে আলাদাভাবে মূল্যায়ন/টেস্ট করতে পারেন — যা একটি একক "করো এবং নিজে চেক করো" প্রম্পটে সম্ভব নয়।

পাঠ ০৮-এ আমরা দেখেছি Claude নিজে থেকেই "verify your answer against [test criteria]" জাতীয় সেলফ-চেক নির্দেশনা একটি একক প্রম্পটের মধ্যেও ভালোভাবে অনুসরণ করতে পারে। এই লেসনের সেলফ-কারেকশন প্যাটার্ন সেই একই ধারণাকে একাধিক আলাদা API কলে ভেঙে দেয় — যাতে রিভিউ ধাপটি স্বাধীনভাবে পরিদর্শনযোগ্য ও মূল্যায়নযোগ্য থাকে।

৩ · OpenAI-এর টাস্ক-স্প্লিটিং — একই দর্শনের সমান্তরাল রূপ

এই একই মূল ধারণা — জটিল কাজকে ছোট অংশে ভাগ করা — OpenAI-এর নিজস্ব প্রম্পটিং কৌশলেও প্রতিফলিত হয়, যাকে বলা হয় টাস্ক-স্প্লিটিং। একটি বড়, বহু-অংশের কাজকে একটিমাত্র প্রম্পটে গুঁজে দেওয়ার বদলে, কাজটিকে ছোট, স্বতন্ত্র সাব-টাস্কে ভাগ করে প্রতিটি আলাদাভাবে সমাধান করা হয় — চেইনিং ও টাস্ক-স্প্লিটিং একই সমস্যার দুটি সম্পর্কিত সমাধান।

৪ · ট্রেড-অফ — এটা বিনামূল্যে নয়

প্রম্পট চেইনিং একটি সুস্পষ্ট বিনিময়ের ওপর দাঁড়িয়ে — latency ও খরচ বিনিময়ে উচ্চতর নির্ভরযোগ্যতা ও নির্ভুলতা। একটি একক API কলের বদলে তিনটি (বা তার বেশি) কল করলে —

  • মোট রেসপন্স টাইম বাড়ে (প্রতিটি কল সিকোয়েন্সিয়ালি চলে, একটির পর একটি)।
  • মোট টোকেন খরচ বাড়ে — প্রতিটি কলে আগের ধাপের কনটেক্সট আবার পাঠাতে হতে পারে।
  • সিস্টেম জটিলতা বাড়ে — একাধিক কল অর্কেস্ট্রেট করার লজিক লিখতে ও রক্ষণাবেক্ষণ করতে হয়।
চেইনিং যোগ করার আগে নিজেকে প্রশ্ন করুন — এই নির্দিষ্ট কাজে কি সত্যিই মধ্যবর্তী পরিদর্শন বা enforced পাইপলাইন গঠন প্রয়োজন? যদি উত্তর না হয়, একটি ভালোভাবে লেখা একক প্রম্পট (এই কোর্সে শেখা কৌশল দিয়ে) প্রায়ই একই মানের ফলাফল কম খরচে ও কম লেটেন্সিতে দিতে পারে। চেইনিং একটি ডিফল্ট অভ্যাস নয় — এটি একটি সচেতন সিদ্ধান্ত হওয়া উচিত।

৫ · অ্যাডাপ্টিভ থিংকিং মডেলের যুগে চেইনিং কি এখনও প্রাসঙ্গিক?

পাঠ ১৮-এ আমরা দেখেছি আধুনিক মডেলগুলো (Claude-এর অ্যাডাপ্টিভ থিংকিং, Gemini-এর ডায়নামিক থিংকিং) নিজেরাই একটি প্রশ্নের ভেতরে বহু-ধাপের যুক্তি সামলাতে পারে — যা এক সময় শুধুমাত্র explicit চেইনিং দিয়েই সম্ভব ছিল। এর মানে এই নয় যে চেইনিং অপ্রয়োজনীয় হয়ে গেছে।

পার্থক্যটা এখানে — অ্যাডাপ্টিভ থিংকিং মডেলের অভ্যন্তরে ঘটে, একটি একক API কলের ভেতরে। আপনি সেই অভ্যন্তরীণ ধাপগুলো পরিদর্শন, লগ বা ব্র্যাঞ্চ করতে পারেন না। explicit চেইনিং তখনই মূল্যবান থাকে যখন আপনার বাহ্যিক visibility প্রয়োজন (প্রতিটি ধাপের আউটপুট আলাদাভাবে দেখা/মূল্যায়ন করা), অথবা যখন পাইপলাইনের গঠন নিজেই বলবৎ করা প্রয়োজন — মডেলের নিজস্ব বিচারের ওপর ছেড়ে দেওয়া নয়।

মূল কথা · Key takeaway

প্রম্পট চেইনিং একটি নির্ভুলতা-বনাম-খরচ ট্রেড-অফ, জাদুকরী সমাধান নয়। যেখানে মধ্যবর্তী আউটপুট পরিদর্শন বা কঠোর পাইপলাইন গঠন সত্যিই প্রয়োজন — বিশেষ করে সেলফ-কারেকশনের মতো প্যাটার্নে — সেখানে একাধিক সিকোয়েন্সিয়াল কলে ভাগ করা একটি একক জটিল প্রম্পটের চেয়ে বেশি নির্ভরযোগ্য ফলাফল দেয়। কিন্তু প্রতিটি কাজে এটা প্রয়োজন নয় — বাড়তি লেটেন্সি ও খরচ ন্যায্য কিনা তা সবসময় যাচাই করে নিন।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ একজন ডেভেলপার একটি সাধারণ ইমেইল-সামারাইজেশন টুলে সেলফ-কারেকশন চেইন (ড্রাফট → রিভিউ → রিফাইন) যোগ করেছেন "মান নিশ্চিত করতে"। এটা কি ভালো সিদ্ধান্ত?

সম্ভবত না, যদি না ইমেইল সামারাইজেশনের ভুলের ফলাফল সত্যিই গুরুতর হয় (যেমন আইনি বা মেডিকেল কনটেক্সটে)। একটি সাধারণ সামারাইজেশন কাজ তুলনামূলক কম-ঝুঁকির এবং একক ভালো-লেখা প্রম্পটে প্রায়ই যথেষ্ট মানের ফলাফল দেয়। তিনটি কল ব্যবহার করলে খরচ ও লেটেন্সি প্রায় তিনগুণ হয়ে যায়, কিন্তু বাস্তব মানের উন্নতি হয়তো সামান্যই হবে।

এই লেসনের নীতি অনুযায়ী প্রশ্ন করা উচিত — এখানে কি সত্যিই মধ্যবর্তী পরিদর্শন বা enforced পাইপলাইন প্রয়োজন? যদি না হয়, চেইনিং এখানে অতিরিক্ত জটিলতা যোগ করছে, বাস্তব মূল্য নয়।

প্র ০২ একটি কোড-জেনারেশন সিস্টেমে, রিভিউ ধাপে মডেল বলে "এই কোডে একটি নিরাপত্তা সমস্যা আছে" কিন্তু রিফাইন ধাপে একই সমস্যা থেকেই যায়। এই ব্যর্থতা কীভাবে ব্যাখ্যা করবেন, এবং চেইনিং কি এখানে সম্পূর্ণ ব্যর্থ হলো?

চেইনিং সম্পূর্ণ ব্যর্থ হয়নি — বরং এটি ঠিক সেই সুবিধাটাই প্রদর্শন করেছে যা একক প্রম্পটে অনুপস্থিত থাকত। কারণ রিভিউ ধাপটি আলাদা এবং পরিদর্শনযোগ্য, সমস্যাটি ধরা পড়েছে এবং লগ হয়েছে — এমনকি যদি রিফাইন ধাপ এটি সম্পূর্ণ সমাধান করতে ব্যর্থ হয়। একক প্রম্পটে এই ব্যর্থতা হয়তো সম্পূর্ণ অদৃশ্যই থেকে যেত।

ব্যবহারিক সমাধান — রিভিউ ও রিফাইনের মধ্যে একটি লুপ যোগ করা (রিফাইন করা কোড আবার রিভিউ করা, নির্দিষ্ট সংখ্যক চক্র পর্যন্ত), অথবা নিরাপত্তা-সংক্রান্ত সমস্যায় একটি মানব-পর্যালোচনা ধাপ বাধ্যতামূলক করা — যা শুধুমাত্র চেইনিং-এর কারণেই সম্ভব হয়েছে।

প্র ০৩ পাঠ ১৮-এ আমরা দেখেছি অ্যাডাপ্টিভ থিংকিং মডেল অনেক বহু-ধাপের যুক্তি নিজেই সামলায়। তাহলে কি ভবিষ্যতে প্রম্পট চেইনিং সম্পূর্ণ অপ্রয়োজনীয় হয়ে যাবে?

সম্ভবত না, কারণ চেইনিং যে সমস্যাটি সমাধান করে তা শুধু "যুক্তির গভীরতা" নয় — এটি বাহ্যিক নিয়ন্ত্রণ ও visibility-এর সমস্যা। মডেল যত ভালোই অভ্যন্তরীণ যুক্তি সামলাক না কেন, একটি একক API কলের ভেতরের ধাপগুলো বাইরে থেকে পরিদর্শন, লগ বা ব্র্যাঞ্চ করা যায় না।

যেসব সিস্টেমে অডিট ট্রেইল, মানব-অনুমোদন পয়েন্ট, বা কঠোরভাবে বলবৎ করা পাইপলাইন গঠন প্রয়োজন (যেমন আর্থিক বা মেডিকেল সিদ্ধান্ত), সেখানে explicit চেইনিং একটি স্থাপত্যগত প্রয়োজনীয়তা থেকে যাবে — মডেলের অভ্যন্তরীণ ক্ষমতা যতই উন্নত হোক না কেন।

অনুশীলন

  1. সিদ্ধান্ত নিন: নিচের দুটি কাজের মধ্যে কোনটির জন্য প্রম্পট চেইনিং যুক্তিসঙ্গত, আর কোনটির জন্য একক প্রম্পটই যথেষ্ট? (ক) একটি ব্লগ পোস্টের শিরোনাম তৈরি করা, (খ) একটি লোন-অ্যাপ্লিকেশন ডকুমেন্ট থেকে তথ্য এক্সট্র্যাক্ট করে, যাচাই করে, তারপর অনুমোদন/প্রত্যাখ্যান সুপারিশ তৈরি করা।

    (ক) সরল, কম-ঝুঁকির সৃজনশীল কাজ — একক প্রম্পট যথেষ্ট। (খ) উচ্চ-ঝুঁকির, বহু-ধাপের কাজ যেখানে প্রতিটি ধাপ (এক্সট্র্যাকশন, যাচাই, সুপারিশ) আলাদাভাবে অডিট করা প্রয়োজন হতে পারে — এখানে প্রম্পট চেইনিং যুক্তিসঙ্গত, কারণ visibility ও enforced structure — দুটোই এখানে বাস্তব প্রয়োজন।

  2. ডিজাইন করুন: একটি সেলফ-কারেকশন চেইন কল্পনা করুন যা একটি বাংলা কাস্টমার-সাপোর্ট উত্তর লিখবে। রিভিউ ধাপের জন্য তিনটি নির্দিষ্ট মানদণ্ড লিখুন যা মডেলকে ড্রাফট মূল্যায়ন করতে বলা হবে।

    তিনটি যুক্তিসঙ্গত মানদণ্ড হতে পারে — (১) উত্তরটি কি কোম্পানির অফিসিয়াল পলিসির সাথে সামঞ্জস্যপূর্ণ?, (২) টোন কি ভদ্র ও সহানুভূতিশীল?, (৩) উত্তরটি কি সংক্ষিপ্ত ও সরাসরি, অপ্রয়োজনীয় বাহুল্য ছাড়া (পাঠ ১৭ অনুযায়ী)? প্রতিটি মানদণ্ড স্পষ্ট ও যাচাইযোগ্য হওয়া জরুরি, যাতে রিভিউ ধাপ অর্থবহ প্রতিক্রিয়া দিতে পারে।

  3. বিশ্লেষণ করুন: একটি তিন-ধাপের চেইন (ড্রাফট → রিভিউ → রিফাইন) একক-কল প্রম্পটের তুলনায় আনুমানিক কতগুণ বেশি টোকেন খরচ করতে পারে, এবং কেন এই বাড়তি খরচ কিছু ক্ষেত্রে ন্যায্য হতে পারে?

    প্রতিটি ধাপে আগের ধাপের আউটপুট (এবং প্রায়ই মূল কনটেক্সট) পুনরায় ইনপুট হিসেবে যেতে পারে, তাই মোট টোকেন খরচ একক কলের তুলনায় সহজেই ২-৩ গুণ বা তার বেশি হতে পারে। এটি ন্যায্য হয় যখন একটি ভুল উত্তরের বাস্তব ফলাফল (আর্থিক ক্ষতি, নিরাপত্তা ঝুঁকি, গ্রাহক-সম্পর্কের ক্ষতি) সেই বাড়তি খরচের চেয়ে অনেক বেশি ব্যয়বহুল হতে পারে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
মডেল ও thinking/effort সঠিকভাবে বেছে নেওয়া