HeadlinesBriefing favicon HeadlinesBriefing.com

এডভার্সারিয়াল ভ্যালিডেশনে লুকানো ডেটা ড্রিফ্ট পান

Towards Data Science •
×

একটি নির্দিষ্ট ধরনের নিঃশব্দ একটি ভাল ভ্যালিডেশন রানের পরে আসে। স্ক্রিনে নম্বর, AUC 0.91, এবং সকালের বৈঠকে সবাই মতপ্রকাশ দেয় কারণ, একবারের জন্য, কাউকে একটি অনুসরণীয় প্রশ্ন জিজ্ঞাসা করার মতো কোনও কারণ ছিল না। আমাকে বিশ্বাস করুন, এটি একটি ভালো অনুভূতি। কিন্তু এটিও এমন একটি জিনিস যা আমি শিখেছি যে আমি এটি ধরে রাখতে বা খুব বেশি বিশ্বাস করতে পারি না। মডেলটি অবশেষে সেই শুক্রবারে লাইভ হয়ে গিয়েছিল। তার কোনো উত্তেজনা ছিল না, কোনো যুদ্ধ কক্ষ ছিল না, কোনো দেরি রাত ছিল না। শুধুমাত্র একটি ডিপ্লয় যা ঠিক পূর্বের দশটির মতো দেখাচ্ছিল। মঙ্গলবার পর্যন্ত, কিছু ভুল হয়ে গিয়েছিল একটি এমন পদ্ধতিতে যা দ্রষ্টব্য করতে বেশি সময় নিয়েছিল। চিহ্নিত কেসেগুলিতে সঠিকতা চুপিচাপ খারাপ হয়ে গিয়েছিল, এবং তার কোনো প্রকাশ একটি ত্রুটি হিসাবে। কোনও ক্র্যাশ ছিল না, কোনও সতর্কতা ছিল না, কোনও লাল রেখা কোনও ড্যাশবোর্ডে যে কেউ সত্যিই দেখছিল না। এটি শুধু খারাপ হতে থাকা, যতক্ষণ পর্যন্ত একটি ডাউনস্ট্রিম টিম একটি পর্যালনা তালিকায় অপ্রয়োজনীয় ফ্ল্যাগগুলির পূর্ণ তালিকায় ক্লান্ত হয় এবং কেন জিজ্ঞাসা করে। এটিই হল এটি কীভাবে পাওয়া গেছে। একটি সিস্টেম নিজেকে ধরে না। একজন ব্যক্তি, যে যথেষ্ট বিরক্ত যে খুঁজতে যায়। আর এখানে আছে যে অংশ যা আজও আমাকে কিছুটা বিরক্ত করে: কোডে কোনও পরিবর্তন হয়নি। মডেল এবং পাইপলাইন ঠিক পূর্বের দিনের মতো ছিল। যা পরিবর্তিত হয়েছিল তা ছিল তাদের নিচের পৃথিবী। একটি নতুন মূল্য নির্ধারণ শ্রেণী কয়েক দিন আগে চালু করা হয়েছিল, এবং এটিতে গ্রাহকরা বেশিরভাগে লেনদেন করছিল, প্রতি বার কম পরিমাণে। আমি একটি ফিচার একটি বার পরীক্ষা করেছি, এবং কোনও জিনিসটি ভুল মনে হয়নি: লেনদেনের মূল্য স্বাভাবিক পরিসীমায় ছিল, এবং লেনদেনের ফ্রিকোয়েন্সির মতোই ছিল। এটিই ছিল যখন আমি দুটিকে একসাথে দেখলাম যে ডেটাটি স্পষ্টভাবে আর একটি জিনিস হয়ে উঠলো, এবং পাইপলাইনে কোনও যাচাইকরণ ছিল না যা এটি ধরতে নির্মিত হয়েছিল। আমি আগের চেয়ে ড্রিফ্ট মনিটরিং সেট করে দিয়েছিলাম এবং আমি সত্যিই মনে করতাম যে আমি কভার্ড আছি। ভালো, ফলে মনে হয়েছিল যে আমি ছিলাম না। যে যাচাইকরণ আমি করেছিলাম ঠিক সেই কাজটিকরছিল যা আমি এটি করতে বলেছিলাম, প্রতিটি ফিচার আলাদাভাবে পর্যবেক্ষণ করা, ঠিক সেভাবে যেমন আমি এটি নির্মাণ করেছিলাম, এবং এটি সম্পূর্ণ প্রক্রিয়াজনক সবুজ রিপোর্ট করতে বসে থাকবে। যা সত্যিই একটি আশ্চর্যজনক ব্যাপার। মনিটরিংটি ভাঙা ছিল না। আর এটি আলস্য বা অর্ধেক নির্মিতও ছিল না। এটি শুধু মাত্র একটি সাধারণ প্রশ্নের জবাব দিচ্ছিল যা সত্যিই গুরুত্বপূর্ণ ছিল। যে অংশটি চুপিচাপ ভুল যায় সে অংশটি যে সাধারণ প্রশ্নটি যা অধিকাংশ ড্রিফ্ট মনিটরিং জিজ্ঞাসা করে, যার মধ্যে আমারও সময় ছিল। কি একটি একক ফিচারের বিতরণ সরিয়ে গেছে? এই সপ্তাহের মান এবং প্রশিক্ষণ সময়ের মান নিন, তাদের হিস্টোগ্রাম হিসাবে সাজিয়ে এবং একটি নম্বর পান। কাগজে, এটি একটি খারাপ ধারণা নয়। এটি শুধু অধুরা। এটি কাজ করে যতক্ষণ পর্যন্ত ব্যর্থতা কোনও একক ফিচারে নয়, বরং দুটি ফিচার কীভাবে একসাথে চলে তাতে, এবং এটি বাস্তব ডেটার জন্য ভাঙতে একটি অনেক আরামদায়ক পদ্ধতি যা অধিকাংশ রিপোর্ট আত্মস্বীকৃতি করে। মূল্য নির্ধারণ শ্রেণীর ব্যাপারটি একটি পরিষ্কার উদাহরণ কারণ এটি আলাদাভাবে ভুল মনে হয় না। avg_transaction_value-এ PSI চালান, ভালো। num_transactions_30d-এ PSI চালান, সেটাও ভালো। দুটির মধ্যে সম্পর্কটি উল্টো হয়ে গিয়েছিল, এবং PSI, ডিজাইনের মাধ্যমে, কখনো দুটি কলাম একসাথে দেখে না। এটি করতে পারে না। এটি মেট্রিকের একটি ত্রুটি নয় এতটাই যে এটি কখনো পার হওয়ার জন্য নির্মিত হয়নি। তাই প্রশ্নটি হয়ে ওঠে: আপনি কিভাবে একটি সম্পর্ক যাচাই করবেন একটি বিতরণ নয়? ফলে মনে হয় যে উত্তরটি কোনও বিদ্যমান পরিসংখ্যান নয় যা আপনাকে শিখতে হবে। এটি শুধু মাত্র একটি মডেলকে আপনার পরিবর্তে লক্ষ্য করতে বলা। একটি ক্লাসিফায়ারকে লক্ষ্য করতে দিন। এই ট্রিকটির একটি নাম আছে, এডভার্সারিয়াল ভ্যালিডেশন, এবং এটি আপনাকে আরও উন্নত মনে করে। আপনার প্রশিক্ষণ পাতিরোকম লাইনগুলিকে 0 লেবেল করুন, একটি তাজা উৎপাদন লাইনগুলিকে 1 লেবেল করুন, এবং একটি ক্লাসিফায়ারকে তাদের থেকে আলাদা করতে প্রশিক্ষণ দিন। যদি দুটি ব্যাচ সত্যিই একই বিতরণ থেকে আসে, তবে এটি ভালো অনুমান করতে পারে না, AUC 0.5 কাছাকাছি। যদি এটি তাদের আলাদা করতে পারে, তবে কিছু সরিয়ে গেছে, এবং কারণ ক্লাসিফায়ার সব ফিচার একসাথে পায়, তাই এটি ঠিক সেই ধরনের সম্পর্কিত পরিবর্তনটি ধরে।