আমার প্রোডাকশন এজেন্টকে অচল করে দেওয়া সেই নাল (Null) ইনপুট
ডেমোটি তিন সপ্তাহ ধরে নিখুঁতভাবে চলেছে। প্রতিটি টেস্ট ইনপুট কাজ করেছে। প্রতিটি আউটপুট সঠিক জায়গায় পৌঁছেছে। আমি ভেবেছিলাম সিস্টেমটি নির্ভরযোগ্য।
তারপর একজন সরবরাহকারী একটি খালি সাবজেক্ট লাইনসহ ইমেল পাঠালেন।
এজেন্টটি একটি অর্ডার রেফারেন্স বের করার জন্য একটি স্ট্রিং (string) আশা করেছিল। পরিবর্তে, এটি একটি নাল (null) ভ্যালু পেয়েছে। এটি ক্র্যাশ করেনি। সেটি আরও ভালো হতো। এটি এমন একটি ভুয়া অর্ডার রেফারেন্স তৈরি করেছিল যা দেখতে আসল মনে হচ্ছিল। ডাউনস্ট্রিম সিস্টেমটি সেটি প্রসেস করে ফেলেছিল। চার ঘণ্টা পর্যন্ত কেউ তা লক্ষ্য করেনি।
ডেমোতে আপনি প্রত্যাশিত ইনপুট ব্যবহার করেন। প্রোডাকশনে আপনি অপ্রত্যাশিত ইনপুট ব্যবহার করেন।
আমি aienterprise.dk-এ এজেন্ট অপারেশন পরিচালনা করি। আমি সম্পূর্ণ ট্রেস (trace) দেখেছি। প্রম্পটটি এজেন্টকে সাবজেক্ট লাইন থেকে অর্ডার রেফারেন্স বের করতে বলেছিল। সাবজেক্ট লাইন থাকলে এটি কাজ করে।
যদি সাবজেক্ট লাইন না থাকে, তবে একটি লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) সেই শূন্যতা পূরণ করে দেয়। এটি এমন কিছু উদ্ভাবন করে যা দেখতে সঠিক মনে হয়। এটি কোনো এলোমেলো নয়েজ (noise) নয়। এটি একটি স্ট্রাকচার্ড নয়েজ। এটি বিপজ্জনক কারণ এটি দেখতে সঠিক মনে হয়। আপনি একটি ব্যর্থতা ধরতে পারেন। কিন্তু একটি আত্মবিশ্বাসী, ভুল উত্তর সহজে ধরা যায় না।
আমি মডেলটিকে পুনরায় প্রশিক্ষণ (retrain) দিইনি। আমি প্রম্পটটিও পরিবর্তন করিনি। আমি মডেল কল করার আগে একটি গার্ড (guard) যোগ করেছি।
এখন, প্রথমে একটি সাধারণ পরীক্ষা চলে। এটি জিজ্ঞাসা করে: সাবজেক্ট ফিল্ডটি উপস্থিত এবং খালি নয় তো? যদি উত্তর 'না' হয়, তবে মেসেজটি মানুষের পর্যালোচনার জন্য একটি হোল্ড কিউতে (hold queue) চলে যায়। এজেন্ট কখনোই সেই ভুল ইনপুটটি দেখে না।
এই গার্ডটি মাত্র বারো লাইনের কোড। এটি এই বছর আমার তৈরি করা সবচেয়ে গুরুত্বপূর্ণ জিনিস।
প্যাটার্নটি সহজ। যদি একটি এজেন্ট কোনো নির্দিষ্ট কাঠামো (structure) ধরে নেয়, তবে প্রোডাকশন শেষ পর্যন্ত আনস্ট্রাকচার্ড ডেটা পাঠাবেই। এর সমাধান কোনো স্মার্ট মডেল নয়। এর সমাধান হলো একটি সীমানা (boundary)। আপনার এমন একটি চেক প্রয়োজন যা মডেলকে অনুমান করতে না দিয়ে ভুল ইনপুটকে মানুষের কাছে পাঠিয়ে দেবে।
নির্ভরযোগ্যতাই হলো একমাত্র বৈশিষ্ট্য। একটি ডেমো দেখায় যে একটি এজেন্ট একটি কাজ করতে পারে। প্রোডাকশন দেখায় যে একটি এজেন্ট ভুল ইনপুট পাওয়ার পরও রাত ৩টার সময় সেই কাজটি করতে পারে। আপনার গ্রাহকদের কাছে কেবল দ্বিতীয় অংশটিই গুরুত্বপূর্ণ।
আমার এজেন্ট এখন কোনো সমস্যা ছাড়াই প্রতিদিন ২০০টি অপারেশন প্রসেস করে। হোল্ড কিউ সপ্তাহে দুবার ট্রিগার হয়। একজন মানুষ সেই অদ্ভুত ডেটাগুলো পর্যালোচনা করেন। এর মাধ্যমে আমি বুঝতে পারি প্রোডাকশন আসলে কেমন হয়।
আপনি যদি EU AI Act-এর অধীনে উচ্চ-ঝুঁকিপূর্ণ ক্যাটাগরির জন্য এজেন্ট তৈরি করেন, তবে এর সময়সীমা হলো ২ ডিসেম্বর, ২০২৭। এর মধ্যে রয়েছে কর্মসংস্থান, বায়োমেট্রিক্স এবং শিক্ষা। যে সিস্টেম ভুল ইনপুটের ওপর অনুমান করে, সেটি অডিটে ব্যর্থ হবে। এই গার্ডটি একটি কমপ্লায়েন্সের ন্যূনতম প্রয়োজনীয়তা।
নির্ভরযোগ্যতা এমন কোনো বৈশিষ্ট্য নয় যা আপনি পরে যোগ করবেন।
Source: https://dev.to/kimlike/the-null-input-that-broke-my-production-agent-and-what-fixed-it-1e77
Optional learning community: https://t.me/GyaanSetuAi