Prompt engineering: LLM থেকে ভালো ফলের ব্যবহারিক নির্দেশিকা
ভালো prompt হলো সঠিক context-সহ পরিষ্কার নির্দেশ। দ্রুত ফল উন্নত করা অভ্যাস ও টেমপ্লেট শিখুন।

Prompt engineering মানে language model-এর ইনপুট এমনভাবে লেখা যাতে সে নির্ভরযোগ্যভাবে আপনার চাওয়া কাজ করে। এটা যাদুর চেয়ে বেশি পরিষ্কার যোগাযোগ: কী চান বলুন, দরকারি context দিন এবং উত্তরের আকার ঠিক করুন।
১. পরিষ্কার ও নির্দিষ্ট হোন
অস্পষ্ট: "ডেটাবেস নিয়ে লেখো।"
ভালো: "একজন জুনিয়র ডেভেলপারের জন্য database index-এর ১৫০ শব্দের ব্যাখ্যা লেখো। একটি উপমা ও একটি SQL উদাহরণ দাও। নির্দিষ্ট vendor-এর বৈশিষ্ট্য উল্লেখ করো না।"
অন্তর্ভুক্ত করুন:
- কাজ (কী করতে হবে)।
- পাঠক ও সুর।
- দৈর্ঘ্য ও ফরম্যাট।
- কী এড়াতে হবে।
২. Context দিন
Model শুধু prompt-এ যা আছে (এবং তার training) তা জানে। দরকারি পটভূমি দিন: কাজের লেখা, সংজ্ঞা, নিয়ম, ব্যবহারকারীর লক্ষ্য। কোনো তথ্য ঠিক হতেই হলে model মনে রাখবে আশা না করে তা অন্তর্ভুক্ত করুন।
নির্দেশ যাতে data-র সাথে মিশে না যায় সেজন্য লেবেল বা delimiter দিয়ে অংশগুলো আলাদা করুন:
Task: Summarise the article below in 3 bullet points.
Article:
"""
...text here...
"""
৩. উদাহরণ দেখান (few-shot)
উদাহরণ প্রায়ই দীর্ঘ বর্ণনার চেয়ে ভালো কাজ করে।
Classify the sentiment as positive, negative or neutral.
Text: "Delivery was fast and the box was intact." -> positive
Text: "The app crashes every time I open it." -> negative
Text: "It arrived on Tuesday." -> neutral
Text: "The support team never replied." ->
কয়েকটি বৈচিত্র্যময়, সঠিক উদাহরণ দিন, প্রান্তিক ক্ষেত্রসহ। তাদের ফরম্যাট আপনার চাওয়া আউটপুটের সাথে হুবহু রাখুন।
৪. কাঠামোবদ্ধ আউটপুট চান
কোড উত্তর পড়বে এমন হলে কড়া ফরম্যাট চান, যেমন নামযুক্ত field-সহ JSON:
Return only valid JSON with this shape:
{"title": string, "tags": string[], "priority": "low" | "medium" | "high"}
অনেক API এটি প্রয়োগ করতে structured output বা JSON-schema মোড দেয়। তবু কোডে ফল যাচাই করুন এবং ব্যর্থতা retry বা fallback দিয়ে সামলান।
৫. Model-কে ধাপে ধাপে কাজ করতে দিন
যুক্তি, গণিত বা বহু-ধাপের কাজে model-কে সমস্যা ভাঙতে বা উত্তরের আগে পরিকল্পনা করতে বলুন। কিছু model-এ বিল্ট-ইন reasoning মোড আছে। সহজ কাজে এটি শুধু খরচ বাড়ায়, তাই যেখানে কাজে লাগে সেখানে ব্যবহার করুন। শুধু চূড়ান্ত উত্তর চাইলে কাজের পরে পরিষ্কার চূড়ান্ত উত্তর চান।
৬. নিয়মের জন্য system prompt ব্যবহার করুন
অনেক API system prompt (স্থির নিয়ম ও ভূমিকা) ব্যবহারকারীর বার্তা থেকে আলাদা করে।
You are a support assistant for Acme.
- Answer only from the provided help articles.
- If the answer is not there, say you do not know and offer to contact a human.
- Keep replies under 120 words.
স্থায়ী আচরণ, সুর ও সীমা সেখানে রাখুন। মনে রাখুন system prompt নিরাপত্তার সীমানা নয় এবং এতে secret রাখা উচিত নয়, কারণ ব্যবহারকারীরা প্রায়ই তা বের করে নিতে পারে।
৭. অনিশ্চিত হলে কী করবে বলুন
বেরোনোর অনুমোদিত পথ দিন: "তথ্য না থাকলে 'unknown' বলো।" এতে বানানো উত্তর কমে।
৮. পুনরাবৃত্তি ও পরীক্ষা
Prompt লেখা পরীক্ষার চক্র।
১. প্রথম সংস্করণ লিখুন। ২. কঠিনগুলোসহ আসল উদাহরণের সেটে চালান। ৩. ব্যর্থতা দেখুন এবং একবারে একটি জিনিস বদলান। ৪. উদাহরণগুলো test set হিসেবে রাখুন, যাতে prompt বা model বদলালে পিছিয়ে পড়া টের পান।
Prompt version control-এ রাখুন। Model সংস্করণ বদলালে আচরণ বদলাতে পারে, তাই test আবার চালান।
সাধারণ ভুল
- একটি prompt-এ অনেক সম্পর্কহীন কাজ ঠাসা।
- পরস্পরবিরোধী নির্দেশ।
- আসল চাহিদা লম্বা লেখার দেয়ালে লুকানো।
- যাচাই ছাড়া আউটপুট বিশ্বাস।
- অবিশ্বস্ত ব্যবহারকারীর লেখা ও নির্দেশ আলাদা না করে একসাথে রাখা, যা prompt injection-এর সুযোগ দেয় (এই সিরিজের নিরাপত্তা লেখা দেখুন)।
পুনর্ব্যবহারযোগ্য টেমপ্লেট
Role: <model কার ভূমিকায়>
Task: <কী করতে হবে>
Context: <পটভূমি ও data>
Rules: <কী করতে হবে ও কী করা যাবে না>
Examples: <১-৩টি উদাহরণ>
Output format: <সঠিক আকার>
মূল কথা: নির্দিষ্ট হোন, context ও উদাহরণ দিন, আউটপুট ফরম্যাট ঠিক করুন, অনিশ্চিত হলে কী করবে বলুন, এবং prompt-কে কোডের মতো দেখুন: আসল ক্ষেত্রে পরীক্ষা করুন ও ধাপে ধাপে উন্নত করুন।
AI ও LLM সিরিজ, পর্ব ১ (language model দিয়ে বানানো): 2 নম্বর (মোট 5)। আগের লেখা: বড় language model কীভাবে কাজ করে: token, context ও sampling.


