পাঠ ১৭ · ২৮-এর মধ্যে

লিন প্রম্পটিং — কম শব্দে বেশি ফল

Lean prompting — leaner prompts, better results
৯ মিনিট পড়া মধ্যম-উচ্চ · Intermediate-Advanced পাঠ ০৩ ও ১৬ পড়া থাকা ভালো সম্পূর্ণ বাংলায়

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

  • কেন বাহুল্যপূর্ণ, পুনরাবৃত্তিমূলক প্রম্পট আসলে ফলাফল খারাপ করতে পারে
  • OpenAI-এর "Lean Prompts" গবেষণার নির্দিষ্ট সংখ্যা — মান ও খরচ দুই দিকেই প্রভাব
  • ALWAYS/NEVER/MUST-এর মতো শক্তিশালী ভাষা কখন যথাযথ, কখন ক্ষতিকর
  • একটি বাহুল্যপূর্ণ প্রম্পটকে কীভাবে লিন সংস্করণে রূপান্তর করবেন

১ · "বেশি জোর দিলে ভালো ফল হবে" — একটি সাধারণ ভুল ধারণা

অনেকেই মনে করেন — একটি নিয়ম যত বেশিবার, যত জোরালো ভাষায় বলা হবে, মডেল তত বেশি মেনে চলবে। এই যুক্তিতে প্রম্পটে দেখা যায় একই নির্দেশনা তিনবার ভিন্নভাবে লেখা, প্রতিটি প্যারাগ্রাফে ALL-CAPS সতর্কতা, এবং "অত্যন্ত গুরুত্বপূর্ণ!!", "এটা মিস করবেন না!!!" জাতীয় বাক্যের ছড়াছড়ি। বাস্তবে এটি প্রায়ই উল্টো ফল দেয়।

পাঠ ০১ থেকে মনে করুন — মডেল টোকেন-বাই-টোকেন সম্ভাবনার ভিত্তিতে কাজ করে। যখন একই নির্দেশনা তিনবার ভিন্ন শব্দে পুনরাবৃত্তি হয়, মডেলকে বাড়তি টোকেন প্রসেস করতে হয় শুধু একই তথ্য আবার পড়ার জন্য — এতে প্রকৃত নতুন তথ্য (যেটা আসলেই গুরুত্বপূর্ণ) সিগন্যাল-টু-নয়েজ অনুপাতে হারিয়ে যেতে পারে।

২ · OpenAI-এর গবেষণা — সংখ্যায় প্রমাণ

OpenAI-এর নিজস্ব বিশ্লেষণে একটি নির্দিষ্ট নীতি উঠে এসেছে — Lean PromptsLean Promptingপ্রতিটি নির্দেশনা ঠিক একবার, স্পষ্টভাবে বলার নীতি — একই নিয়ম একাধিকবার ভিন্ন শব্দে পুনরাবৃত্তি না করে।। যেসব প্রম্পটে প্রতিটি নির্দেশনা ঠিক একবার বলা হয়েছিল, সেগুলো বাহুল্যপূর্ণ/পুনরাবৃত্তিমূলক প্রম্পটের তুলনায় মূল্যায়নে ১০-১৫% বেশি স্কোর করেছে — এবং একই সাথে টোকেন খরচ ৬৬% পর্যন্ত কমিয়েছে।

সংখ্যা · The numbers

এই একই গবেষণার ফলাফল দুই দিকেই ইতিবাচক — মান বাড়ে, খরচ কমে। এটি প্রম্পট ইঞ্জিনিয়ারিং-এ বিরল একটি পরিস্থিতি যেখানে একই পরিবর্তনে কোনো ট্রেড-অফ নেই — শুধু বাহুল্য ছেঁটে ফেলাই যথেষ্ট।

কল্পনা করুন একজন ম্যানেজার একই কর্মীকে একই নির্দেশ তিনবার তিনভাবে দিচ্ছেন — "রিপোর্টটা কালকের মধ্যে দিও", "মনে রেখো, কাল ডেডলাইন", "ভুলো না যেন — আগামীকাল লাগবে"। কর্মী বিভ্রান্ত হতে পারেন — তিনটে কি একই কাজ, নাকি তিনটে ভিন্ন কাজ? একবার স্পষ্টভাবে বললে বরং বেশি কার্যকর।

৩ · ALWAYS/NEVER/MUST — শুধু নিরাপত্তার জন্য সংরক্ষণ করুন

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

অতিরিক্ত ব্যবহার এই শব্দগুলোর প্রভাব দুর্বল করে দেয় এবং টোকেন অপচয় করে। যদি একটি প্রম্পটে দশটি ভিন্ন নিয়মের সবগুলোই "MUST" দিয়ে চিহ্নিত থাকে, মডেলের কাছে কোনটা আসলেই নিরঙ্কুশ আর কোনটা শুধু পছন্দনীয় — সেই পার্থক্য অস্পষ্ট হয়ে যায়।

এই সতর্কতা টুল-ইউজ প্রম্পটিং-এও প্রযোজ্য — Anthropic-ও লক্ষ্য করেছে, "CRITICAL: you MUST use this tool" জাতীয় আক্রমণাত্মক ভাষা আধুনিক মডেলে বরং ওভার-ট্রিগারিং ঘটায় (মডেল অপ্রয়োজনীয় সময়েও টুল কল করতে শুরু করে)। স্বাভাবিক, সরাসরি ভাষা ("Use this tool when...") প্রায়ই বেশি নির্ভরযোগ্য।

৪ · Anthropic-এর সমান্তরাল নীতি — লম্বা মানেই ভালো নয়

পাঠ ০৩-এ আমরা Claude-এর সোনালী নিয়ম দেখেছি — "সবচেয়ে ভালো প্রম্পট সবচেয়ে লম্বা বা জটিল প্রম্পট নয়। এটি সেটাই যা ন্যূনতম প্রয়োজনীয় গঠন দিয়ে নির্ভরযোগ্যভাবে আপনার লক্ষ্য অর্জন করে।" এই একই দর্শন লিন প্রম্পটিং-এর মূল ভিত্তি। Anthropic-এর নিজস্ব নির্দেশনায়ও বলা হয়েছে — সমাধান যতটা সম্ভব ন্যূনতম রাখা উচিত: অপ্রয়োজনীয় ফিচার, রিফ্যাক্টর, বা এক্সট্রা ব্যাখ্যা যোগ করা উচিত নয় যদি না তা সত্যিই প্রয়োজন হয়।

দুই প্রোভাইডারের গবেষণা এক জায়গায় মেলে — স্পষ্টতা শব্দসংখ্যার সাথে সমানুপাতিক নয়। একটি নির্দেশনা একবার স্পষ্টভাবে বলাই যথেষ্ট; বাড়তি শব্দ সাধারণত অতিরিক্ত স্পষ্টতা যোগ করে না, শুধু খরচ ও বিভ্রান্তির ঝুঁকি বাড়ায়।

৫ · বাহুল্য থেকে লিন — একটি রূপান্তর

নিচের উদাহরণে একটি কাস্টমার-সাপোর্ট প্রম্পট প্রথমে বাহুল্যপূর্ণভাবে লেখা হয়েছে, তারপর লিন করে দেখানো হয়েছে —

❌ কম কার্যকর (বাহুল্যপূর্ণ — একই নিয়ম তিনবার, অতিরিক্ত ALL-CAPS):

System prompt (bloated)
তুমি একটি কাস্টমার সাপোর্ট সহকারী। তোমাকে অবশ্যই সবসময়
ভদ্র থাকতে হবে। ভদ্রতা অত্যন্ত গুরুত্বপূর্ণ, তাই ALWAYS
ভদ্রভাবে কথা বলবে। কখনোই রূঢ় হবে না — NEVER কোনো রূঢ়
আচরণ করবে না, এটা অত্যন্ত জরুরি!!!

তুমি MUST রিফান্ড পলিসি সম্পর্কে সঠিক তথ্য দিতে হবে।
রিফান্ড পলিসি নিয়ে ভুল তথ্য দেওয়া চলবে না — এটা কখনোই
হতে দেওয়া যাবে না। মনে রেখো, রিফান্ড পলিসির তথ্য সবসময়
সঠিক হতে হবে, এটা ALWAYS মেনে চলতে হবে।

উত্তর সংক্ষিপ্ত রাখো। দীর্ঘ উত্তর দিও না। সংক্ষিপ্ততা
বজায় রাখা MUST — কখনোই দীর্ঘ উত্তর দেওয়া যাবে না।

এখানে "ভদ্র থাকা" তিনবার, "সংক্ষিপ্ত রাখা" তিনবার বলা হয়েছে — এবং একটি সাধারণ স্টাইল-নিয়ম (সংক্ষিপ্ততা) ও একটি প্রকৃত তথ্য-নির্ভুলতার নিয়ম (রিফান্ড পলিসি) — দুটোই সমান জোরালো ভাষায় (MUST/ALWAYS/NEVER) চিহ্নিত, ফলে কোনটা আসলেই নিরঙ্কুশ তা স্পষ্ট নয়।

✅ বেশি কার্যকর (লিন — প্রতিটি নিয়ম একবার, নিরঙ্কুশ ভাষা শুধু জরুরি জায়গায়):

System prompt (lean)
তুমি একটি ভদ্র, সংক্ষিপ্ত কাস্টমার সাপোর্ট সহকারী।

NEVER রিফান্ড পলিসি সম্পর্কে ভুল বা অনুমাননির্ভর তথ্য
দিও না — শুধু নিচে দেওয়া অফিসিয়াল ডকুমেন্ট থেকে উত্তর
দাও; নিশ্চিত না হলে গ্রাহককে মানব এজেন্টের কাছে পাঠাও।

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

মূল কথা · Key takeaway

লিন প্রম্পটিং মানে তথ্য বাদ দেওয়া নয় — এটি একই তথ্য কম শব্দে, একবার, স্পষ্টভাবে বলা। প্রতিটি নির্দেশনা একবার লিখুন, নিরঙ্কুশ ভাষা (ALWAYS/NEVER/MUST) শুধু সত্যিকারের নিরাপত্তা-সংক্রান্ত নিয়মের জন্য রাখুন, এবং বাকি সবকিছু সাধারণ, সরাসরি ভাষায় লিখুন। ফলাফল — ভালো মান, কম খরচ, একই সাথে।

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

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

প্র ০১ একজন ডেভেলপার যুক্তি দেন — "আমি নিশ্চিত হতে চাই মডেল নিয়মটা মেনে চলবে, তাই আমি সেটা তিনবার বলি।" এই যুক্তির সমস্যা কোথায়?

এই যুক্তির পেছনের ধারণা — পুনরাবৃত্তি = জোর, এবং জোর = নির্ভরযোগ্যতা। কিন্তু OpenAI-এর গবেষণা দেখায় উল্টোটা — পুনরাবৃত্তি আসলে সিগন্যালকে দুর্বল করে, কারণ মডেলকে বাড়তি টোকেন প্রসেস করতে হয় শুধু একই তথ্য আবার শনাক্ত করার জন্য, এবং কোন সংস্করণটা "আসল" নির্দেশনা তা নিয়ে অস্পষ্টতা তৈরি হতে পারে।

বাস্তবে নির্ভরযোগ্যতা বাড়ানোর ভালো উপায় হলো — নির্দেশনাটি স্পষ্ট, নির্দিষ্ট ভাষায় একবার লেখা (পাঠ ০৩-এর সোনালী নিয়ম অনুযায়ী), প্রয়োজনে একটি উদাহরণ দিয়ে (পাঠ ০৫), পুনরাবৃত্তি দিয়ে নয়।

প্র ০২ একটি মেডিকেল-তথ্য চ্যাটবটে "NEVER ডায়াগনোসিস দিও না, সবসময় ডাক্তারের কাছে পাঠাও" — এই নিয়মটি কি ALWAYS/NEVER ব্যবহারের যথাযথ উদাহরণ, নাকি অতিরিক্ত?

এটি ঠিক সেই বিরল ক্ষেত্র যেখানে ALWAYS/NEVER যথাযথ — এটি একটি প্রকৃত নিরাপত্তা-সংক্রান্ত নিয়ম, যেখানে ব্যর্থতার ফলাফল গুরুতর (ভুল মেডিকেল পরামর্শ)। এই লেসনের নীতি অনুযায়ী — এই ধরনের সত্যিকারের critical নিয়মের জন্যই ALWAYS/NEVER সংরক্ষণ করা উচিত।

তবে খেয়াল রাখতে হবে এটি যেন একবারই স্পষ্টভাবে বলা হয় — "NEVER ডায়াগনোসিস দিও না" তিনবার ভিন্নভাবে লেখা নিয়মটিকে আরও শক্তিশালী করবে না, বরং একই সমস্যায় ফিরিয়ে নিয়ে যাবে যা এই লেসনে আলোচিত হয়েছে।

প্র ০৩ OpenAI-এর গবেষণায় লিন প্রম্পট মান বৃদ্ধি (১০-১৫%) এবং খরচ হ্রাস (৬৬% পর্যন্ত) — দুটোই দেখিয়েছে। সাধারণত প্রম্পট ইঞ্জিনিয়ারিং-এ মান বনাম খরচ একটি ট্রেড-অফ হয় কেন এই ক্ষেত্রে নয়?

সাধারণত ট্রেড-অফ দেখা যায় যখন মান বাড়াতে সত্যিকারের নতুন তথ্য যোগ করতে হয় — যেমন বেশি উদাহরণ (পাঠ ০৫) বা বেশি প্রসঙ্গ (পাঠ ০৪), যা টোকেন এবং খরচও বাড়ায়। কিন্তু বাহুল্য অপসারণ ভিন্ন — এটি নতুন তথ্য যোগ করে না, শুধু একই তথ্যের অপ্রয়োজনীয় পুনরাবৃত্তি সরিয়ে ফেলে।

যেহেতু পুনরাবৃত্তি নিজেই মানের ক্ষতি করছিল (বিভ্রান্তি/সিগন্যাল হারানোর মাধ্যমে), সেটা সরালে দুটোই একসাথে উন্নত হয় — মান বাড়ে কারণ সিগন্যাল স্পষ্ট হয়, খরচ কমে কারণ টোকেন কমে। এটি একটি "বিনামূল্যের উন্নতি" — বিরল কিন্তু বাস্তব।

অনুশীলন

  1. ছেঁটে ফেলুন: একটি প্রম্পট লিখুন (যেকোনো বিষয়ে, ৫-৬ বাক্যের) যেখানে ইচ্ছাকৃতভাবে একটি নিয়ম তিনবার ভিন্নভাবে বলুন। তারপর সেটিকে লিন সংস্করণে রূপান্তর করুন — একই তথ্য, একবার বলা।

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

  2. চিহ্নিত করুন: নিচের তিনটি নিয়মের মধ্যে কোনটির জন্য ALWAYS/NEVER/MUST যথাযথ, আর কোনটির জন্য নয় — (ক) "উত্তর বাংলায় দাও", (খ) "কখনো ব্যবহারকারীর ক্রেডিট কার্ড নম্বর লগে সংরক্ষণ করো না", (গ) "উত্তরে ইমোজি ব্যবহার করো না"।

    (খ) সত্যিকারের নিরাপত্তা/গোপনীয়তা-সংক্রান্ত নিয়ম — এখানে "NEVER" যথাযথ, কারণ লঙ্ঘনের ফলাফল গুরুতর। (ক) ও (গ) সাধারণ স্টাইল-নির্দেশনা — এগুলোর জন্য সাধারণ ভাষাই যথেষ্ট ("বাংলায় উত্তর দাও", "ইমোজি ছাড়া লেখো"); ALWAYS/NEVER এখানে অপ্রয়োজনীয় জোর যোগ করবে মাত্র।

  3. তুলনা করুন: এই লেসনের বাহুল্যপূর্ণ ও লিন উদাহরণ দুটো আবার পড়ুন। টোকেন সংখ্যা (আনুমানিক শব্দ গণনা দিয়ে) তুলনা করুন — লিন সংস্করণে কত শতাংশ কম শব্দ ব্যবহৃত হয়েছে বলে মনে হয়?

    বাহুল্যপূর্ণ সংস্করণে প্রায় ৯০+ শব্দ, লিন সংস্করণে প্রায় ৩৫-৪০ শব্দ — অর্থাৎ প্রায় ৫৫-৬০% কম, যা এই লেসনে উল্লেখিত "৬৬% পর্যন্ত টোকেন হ্রাস"-এর পরিসরের সাথে সামঞ্জস্যপূর্ণ। একই সাথে লিন সংস্করণে কোন নিয়মটা সত্যিই critical তা বেশি স্পষ্ট।

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

আগের পাঠ
প্রম্পট ক্যাশিং — ৯০% পর্যন্ত সাশ্রয়