প্রম্পট যথেষ্ট নয়: LLM আউটপুটে কঠোর সীমাবদ্ধতা প্রয়োগ করা
LLM ডেমোগুলো দেখতে দারুণ লাগে যতক্ষণ না সেগুলো কঠোর প্রয়োজনীয়তার সম্মুখীন হয়।
মডেলগুলো সম্ভাবনার (probability) ভিত্তিতে কাজ করে। কিন্তু প্রোডাকশন সিস্টেমের প্রয়োজন গ্যারান্টি বা নিশ্চয়তা।
আর্জেন্টিনার Radio del Volga-এর জন্য একটি AI নিউজ পাইপলাইন তৈরির সময় আমি এটি শিখেছি। সিস্টেমটি খবর পুনরায় লেখে এবং সোশ্যাল মিডিয়া পোস্ট তৈরি করে। এটি বেশ ভালোভাবেই কাজ করছিল যতক্ষণ না একটি সমস্যা দেখা দিল। Gemini বারবার ভুল স্প্যানিশ ভাষায় লিখছিল।
আর্জেন্টিনায় মানুষ নির্দিষ্ট কিছু শব্দ ব্যবহার করে। তারা "puedes"-এর পরিবর্তে "podés" এবং "eres"-এর পরিবর্তে "sos" বলে। মডেলটি যদি নিরপেক্ষ (neutral) স্প্যানিশ ব্যবহার করে, তবে স্থানীয় পাঠকদের কাছে লেখাটি ভুল মনে হয়।
আমি প্রথমে আরও উন্নত প্রম্পটিং করার চেষ্টা করেছি। আমি মডেলটিকে বলেছিলাম:
- Rioplatense Spanish ব্যবহার করো।
- কখনোই নিরপেক্ষ (neutral) Spanish ব্যবহার করো না।
- নির্দিষ্ট নিষিদ্ধ শব্দের তালিকা ব্যবহার করো।
- পাঠানোর আগে তোমার উত্তরটি আবার পড়ো।
এটি কিছুটা সাহায্য করেছিল, কিন্তু সব সমস্যার সমাধান করেনি। আনুষ্ঠানিক সংবাদ উৎসগুলো মডেলটিকে আবার নিরপেক্ষ স্প্যানিশে ফিরিয়ে নিয়ে যাচ্ছিল। আমি প্রম্পটে যতই লিখি না কেন, ভুলগুলো থেকে যাচ্ছিল।
আমি এটিকে আর প্রম্পটিং সমস্যা হিসেবে দেখা বন্ধ করলাম। আমি এটিকে একটি ভ্যালিডেশন (validation) সমস্যা হিসেবে বিবেচনা করতে শুরু করলাম।
কিছু জিনিস সম্ভাবনার ওপর নির্ভরশীল, যেমন টোন বা স্টাইল। অন্য কিছু জিনিস হলো ডিটারমিনিস্টিক (deterministic)। যদি কোনো টেক্সটে "puedes" থাকে, তবে সেটি ভুল। এটি বোঝার জন্য আপনার AI-এর প্রয়োজন নেই। আপনার প্রয়োজন সাধারণ কোড।
আমি একটি পোস্ট-প্রসেসিং ধাপ যোগ করেছি। এটি AI-এর কাজ শেষ হওয়ার পরে চলে। এটি নির্দিষ্ট শব্দগুলো খুঁজে বের করে এবং সেগুলো পরিবর্তন করে দেয়:
puedesহয়ে যায়podéstienesহয়ে যায়tenéseresহয়ে যায়sos
এই তালিকাটি ছোট এবং নিরাপদ। আমি পুরো স্প্যানিশ ভাষা ঠিক করার চেষ্টা করছি না। আমি কেবল সেই নিয়মগুলো ঠিক করছি যা কোড নিশ্চিতভাবে যাচাই করতে পারে।
এই শিক্ষাটি স্প্যানিশ ভাষা সম্পর্কে নয়। এটি প্রম্পট ইঞ্জিনিয়ারিংয়ের সীমাবদ্ধতা সম্পর্কে।
প্রম্পটিং পারফরম্যান্স উন্নত করে, কিন্তু এটি গ্যারান্টি দেয় না। যদি কোনো নিয়ম স্থিতিশীল এবং পরীক্ষাযোগ্য হয়, তবে তা প্রয়োগ করতে কোড ব্যবহার করুন।
সাবলীল টেক্সট তৈরি করতে LLM ব্যবহার করুন। ব্র্যান্ডের শব্দাবলী, রেগুলেটরি ভাষা এবং ফরম্যাটিং নিয়ম প্রয়োগ করতে ডিটারমিনিস্টিক কোড ব্যবহার করুন।
নির্ভরযোগ্য সিস্টেমগুলো দায়িত্ব ভাগ করে দেয়: • মডেল কন্টেন্ট তৈরি করে। • কোড কঠোর নিয়মগুলো প্রয়োগ করে। • মানুষ চূড়ান্ত সম্পাদকীয় সিদ্ধান্ত নেয়।
Source: https://dev.to/zendev2112/prompts-arent-enough-enforcing-hard-constraints-on-llm-output-2hpo
Optional learning community: https://t.me/GyaanSetuAi