উত্পাদন এমএল সিস্টেম: নিরীক্ষণ পাইপলাইন

অভিনন্দন! আপনি ইউনিকর্ন মডেল স্থাপন করেছেন। আপনার মডেল কোন সমস্যা ছাড়া 24x7 চালানো উচিত. এটি নিশ্চিত করতে, আপনাকে অবশ্যই আপনার মেশিন লার্নিং (ML) পাইপলাইন নিরীক্ষণ করতে হবে।

কাঁচা ডেটা যাচাই করার জন্য একটি ডেটা স্কিমা লিখুন

আপনার ডেটা নিরীক্ষণ করার জন্য, আপনাকে অবশ্যই প্রত্যাশিত পরিসংখ্যানগত মানগুলির বিরুদ্ধে নিয়মগুলি লিখে পরীক্ষা করতে হবে যা ডেটা অবশ্যই পূরণ করবে। নিয়মের এই সংগ্রহকে ডেটা স্কিমা বলা হয়। এই পদক্ষেপগুলি অনুসরণ করে একটি ডেটা স্কিমা সংজ্ঞায়িত করুন:

  1. আপনার বৈশিষ্ট্যের পরিসীমা এবং বিতরণ বুঝুন। শ্রেণীবদ্ধ বৈশিষ্ট্যের জন্য, সম্ভাব্য মানগুলির সেটটি বুঝুন।

  2. ডেটা স্কিমাতে আপনার বোঝার এনকোড করুন। নিম্নলিখিত নিয়মের উদাহরণ:

    • নিশ্চিত করুন যে ব্যবহারকারীর জমা দেওয়া রেটিং সর্বদা 1 থেকে 5 এর মধ্যে থাকে।
    • চেক করুন যে শব্দটি প্রায়শই ঘটে (একটি ইংরেজি পাঠ্য বৈশিষ্ট্যের জন্য)।
    • প্রতিটি শ্রেণীবদ্ধ বৈশিষ্ট্য সম্ভাব্য মানগুলির একটি নির্দিষ্ট সেট থেকে একটি মান সেট করা আছে কিনা তা পরীক্ষা করুন।
  3. ডেটা স্কিমার বিরুদ্ধে আপনার ডেটা পরীক্ষা করুন। আপনার স্কিমাতে ডেটা ত্রুটি ধরা উচিত যেমন:

    • অসঙ্গতি
    • শ্রেণীগত ভেরিয়েবলের অপ্রত্যাশিত মান
    • অপ্রত্যাশিত ডেটা বিতরণ

ফিচার ইঞ্জিনিয়ারিং যাচাই করতে ইউনিট পরীক্ষা লিখুন

যদিও আপনার কাঁচা ডেটা ডেটা স্কিমা পাস করতে পারে, আপনার মডেল কাঁচা ডেটাতে প্রশিক্ষণ দেয় না। বরং, ফিচার ইঞ্জিনিয়ারড করা ডেটার উপর আপনার মডেল ট্রেন করে। উদাহরণস্বরূপ, আপনার মডেল কাঁচা সংখ্যাসূচক ডেটার পরিবর্তে স্বাভাবিক সংখ্যাসূচক বৈশিষ্ট্যগুলিতে প্রশিক্ষণ দেয়। কারণ ফিচার ইঞ্জিনিয়ারড ডেটা কাঁচা ইনপুট ডেটা থেকে খুব আলাদা হতে পারে, আপনাকে অবশ্যই কাঁচা ইনপুট ডেটার চেক থেকে আলাদাভাবে ফিচার ইঞ্জিনিয়ারড ডেটা পরীক্ষা করতে হবে।

ফিচার ইঞ্জিনিয়ারড ডেটা সম্পর্কে আপনার বোঝার উপর ভিত্তি করে ইউনিট পরীক্ষা লিখুন। উদাহরণস্বরূপ, আপনি নিম্নলিখিতগুলির মতো শর্তগুলি পরীক্ষা করতে ইউনিট পরীক্ষা লিখতে পারেন:

  • সমস্ত সাংখ্যিক বৈশিষ্ট্য স্কেল করা হয়, উদাহরণস্বরূপ, 0 এবং 1 এর মধ্যে৷
  • এক-হট এনকোডেড ভেক্টরে শুধুমাত্র একটি একক 1 এবং N-1 শূন্য থাকে।
  • রূপান্তরের পরে ডেটা বিতরণ প্রত্যাশার সাথে সঙ্গতিপূর্ণ। উদাহরণস্বরূপ, যদি আপনি Z-স্কোর ব্যবহার করে স্বাভাবিক করে থাকেন, তাহলে Z-স্কোরের গড় 0 হওয়া উচিত।
  • আউটলায়ারগুলি পরিচালনা করা হয়, যেমন স্কেলিং বা ক্লিপিংয়ের মাধ্যমে।

গুরুত্বপূর্ণ ডেটা স্লাইসগুলির জন্য মেট্রিক্স পরীক্ষা করুন

একটি সফল সমগ্র কখনও কখনও একটি অসফল উপসেটকে অস্পষ্ট করে। অন্য কথায়, দুর্দান্ত সামগ্রিক মেট্রিক্স সহ একটি মডেল এখনও নির্দিষ্ট পরিস্থিতিতে ভয়ানক ভবিষ্যদ্বাণী করতে পারে। যেমন:

আপনার ইউনিকর্ন মডেল সামগ্রিকভাবে ভালো পারফর্ম করে, কিন্তু সাহারা মরুভূমির জন্য ভবিষ্যদ্বাণী করার সময় খারাপ পারফর্ম করে।

আপনি যদি সামগ্রিকভাবে দুর্দান্ত AUC নিয়ে সন্তুষ্ট এক ধরণের প্রকৌশলী হন, তাহলে আপনি সাহারা মরুভূমিতে মডেলের সমস্যাগুলি লক্ষ্য করবেন না। যদি প্রতিটি অঞ্চলের জন্য ভাল ভবিষ্যদ্বাণী করা গুরুত্বপূর্ণ হয়, তাহলে আপনাকে প্রতিটি অঞ্চলের জন্য কর্মক্ষমতা ট্র্যাক করতে হবে। সাহারা মরুভূমির সাথে সম্পর্কিত ডেটার উপসেটগুলিকে ডেটা স্লাইস বলা হয়।

আগ্রহের ডেটা স্লাইস সনাক্ত করুন। তারপর আপনার সমগ্র ডেটাসেটের মেট্রিক্সের সাথে এই ডেটা স্লাইসের মডেল মেট্রিক্স তুলনা করুন। আপনার মডেলটি সমস্ত ডেটা স্লাইস জুড়ে ভাল পারফর্ম করছে কিনা তা যাচাই করা পক্ষপাত দূর করতে সহায়তা করে। আরও তথ্যের জন্য ন্যায্যতা: পক্ষপাতের মূল্যায়ন দেখুন।

বাস্তব-বিশ্বের মেট্রিক্স ব্যবহার করুন

মডেল মেট্রিক্স অগত্যা আপনার মডেলের বাস্তব-বিশ্বের প্রভাব পরিমাপ করে না। উদাহরণস্বরূপ, একটি হাইপারপ্যারামিটার পরিবর্তন করা একটি মডেলের AUC বৃদ্ধি করতে পারে, কিন্তু কীভাবে পরিবর্তনটি ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করেছে? বাস্তব-বিশ্বের প্রভাব পরিমাপ করতে, আপনাকে পৃথক মেট্রিক্স সংজ্ঞায়িত করতে হবে। উদাহরণ স্বরূপ, আপনি আপনার মডেলের ব্যবহারকারীদের জরিপ করে নিশ্চিত করতে পারেন যে তারা সত্যিই একটি ইউনিকর্ন দেখেছে যখন মডেল ভবিষ্যদ্বাণী করেছিল যে তারা দেখবে।

প্রশিক্ষণ পরিবেশন তির্যক জন্য পরীক্ষা করুন

ট্রেনিং-সার্ভিং স্কু মানে ট্রেনিং চলাকালীন আপনার ইনপুট ডেটা পরিবেশনের ক্ষেত্রে আপনার ইনপুট ডেটা থেকে আলাদা। নিম্নলিখিত সারণী দুটি গুরুত্বপূর্ণ ধরনের তির্যক বর্ণনা করে:

টাইপ সংজ্ঞা উদাহরণ সমাধান
স্কিমা তির্যক প্রশিক্ষণ এবং ইনপুট ডেটা পরিবেশন একই স্কিমার সাথে সামঞ্জস্যপূর্ণ নয়। আপনার মডেল পুরানো ডেটার উপর প্রশিক্ষণ চালিয়ে যাওয়ার সময় পরিবেশন করা ডেটার বিন্যাস বা বিতরণ পরিবর্তিত হয়। প্রশিক্ষণ এবং পরিবেশন ডেটা যাচাই করতে একই স্কিমা ব্যবহার করুন। আপনার স্কিমা দ্বারা চেক করা হয়নি এমন পরিসংখ্যানের জন্য আলাদাভাবে পরীক্ষা করা নিশ্চিত করুন, যেমন অনুপস্থিত মানের ভগ্নাংশ
বৈশিষ্ট্য তির্যক ইঞ্জিনিয়ারড ডেটা প্রশিক্ষণ এবং পরিবেশনের মধ্যে পার্থক্য করে। ফিচার ইঞ্জিনিয়ারিং কোড প্রশিক্ষণ এবং পরিবেশনের মধ্যে পার্থক্য করে, বিভিন্ন ইঞ্জিনিয়ারড ডেটা তৈরি করে। স্কিমা স্কুয়ের মতো, প্রশিক্ষণ এবং ইঞ্জিনিয়ারড ডেটা পরিবেশন জুড়ে একই পরিসংখ্যানগত নিয়ম প্রয়োগ করুন। শনাক্ত করা তির্যক বৈশিষ্ট্যের সংখ্যা এবং বৈশিষ্ট্য প্রতি তির্যক উদাহরণের অনুপাত ট্র্যাক করুন।

ট্রেনিং-সার্ভিং স্কুয়ের কারণগুলি সূক্ষ্ম হতে পারে। ভবিষ্যদ্বাণীর সময় আপনার মডেলের কাছে কী ডেটা পাওয়া যায় তা সর্বদা বিবেচনা করুন। প্রশিক্ষণের সময়, শুধুমাত্র সেই বৈশিষ্ট্যগুলি ব্যবহার করুন যা আপনি পরিবেশন করার সময় উপলব্ধ থাকবেন।

অনুশীলন: আপনার বোঝার পরীক্ষা করুন

ধরুন আপনার একটি অনলাইন স্টোর আছে এবং আপনি একটি নির্দিষ্ট দিনে কত টাকা উপার্জন করবেন তা ভবিষ্যদ্বাণী করতে চান। আপনার ML লক্ষ্য হল একটি বৈশিষ্ট্য হিসাবে গ্রাহকের সংখ্যা ব্যবহার করে দৈনিক আয়ের পূর্বাভাস দেওয়া।

আপনি কি সমস্যা সম্মুখীন হতে পারে?
উত্তর দেখতে এখানে ক্লিক করুন

লেবেল ফুটো জন্য পরীক্ষা করুন

লেবেল ফুটো হওয়া মানে আপনার গ্রাউন্ড ট্রুথ লেবেল যা আপনি ভবিষ্যদ্বাণী করার চেষ্টা করছেন সেগুলি অসাবধানতাবশত আপনার প্রশিক্ষণের বৈশিষ্ট্যগুলিতে প্রবেশ করেছে৷ লেবেল ফুটো কখনও কখনও সনাক্ত করা খুব কঠিন।

অনুশীলন: আপনার বোঝার পরীক্ষা করুন

ধরুন আপনি একটি বাইনারি ক্লাসিফিকেশন মডেল তৈরি করছেন যাতে ভবিষ্যদ্বাণী করা যায় যে একজন নতুন হাসপাতালের রোগীর ক্যান্সার আছে কি না। আপনার মডেল নিম্নলিখিত মত বৈশিষ্ট্য ব্যবহার করে:

  • রোগীর বয়স
  • রোগীর লিঙ্গ
  • পূর্বের চিকিৎসা শর্ত
  • হাসপাতালের নাম
  • গুরুত্বপূর্ণ লক্ষণ
  • পরীক্ষার ফলাফল
  • বংশগতি

লেবেলটি নিম্নরূপ:

  • বুলিয়ান: রোগীর কি ক্যান্সার আছে?

আপনি সাবধানে ডেটা বিভাজন করুন, নিশ্চিত করুন যে আপনার প্রশিক্ষণ সেটটি আপনার বৈধতা সেট এবং পরীক্ষার সেট থেকে ভালভাবে বিচ্ছিন্ন। মডেলটি বৈধতা সেট এবং পরীক্ষা সেটে অত্যন্ত ভাল পারফর্ম করে; মেট্রিক্স চমত্কার হয়. দুর্ভাগ্যবশত, মডেল বাস্তব বিশ্বের নতুন রোগীদের উপর ভয়ানক সঞ্চালন.

কেন এই মডেল যে পরীক্ষা সেটে শ্রেষ্ঠত্ব বাস্তব জগতে খারাপভাবে ব্যর্থ হয়েছে?
উত্তর দেখতে এখানে ক্লিক করুন

পাইপলাইন জুড়ে মডেল বয়স নিরীক্ষণ

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

পরীক্ষা করুন যে মডেলের ওজন এবং আউটপুট সংখ্যাগতভাবে স্থিতিশীল

মডেল প্রশিক্ষণের সময়, আপনার ওজন এবং স্তরের আউটপুটগুলি NaN (সংখ্যা নয়) বা Inf (অসীম) হওয়া উচিত নয়। আপনার ওজন এবং স্তর আউটপুটগুলির NaN এবং Inf মান পরীক্ষা করতে পরীক্ষা লিখুন। অতিরিক্তভাবে, পরীক্ষা করুন যে একটি স্তরের অর্ধেকের বেশি আউটপুট শূন্য নয়।

মডেল কর্মক্ষমতা নিরীক্ষণ

আপনার ইউনিকর্ন চেহারা ভবিষ্যদ্বাণী প্রত্যাশিত চেয়ে বেশি জনপ্রিয় হয়েছে! আপনি প্রচুর ভবিষ্যদ্বাণী অনুরোধ এবং এমনকি আরও প্রশিক্ষণ ডেটা পাচ্ছেন। আপনি মনে করেন যে এটি দুর্দান্ত যতক্ষণ না আপনি বুঝতে পারেন যে আপনার মডেল প্রশিক্ষণের জন্য আরও বেশি স্মৃতি এবং সময় নিচ্ছে। আপনি এই পদক্ষেপগুলি অনুসরণ করে আপনার মডেলের কর্মক্ষমতা নিরীক্ষণ করার সিদ্ধান্ত নেন:

  • কোড, মডেল এবং ডেটার সংস্করণ দ্বারা মডেলের কর্মক্ষমতা ট্র্যাক করুন। এই ধরনের ট্র্যাকিং আপনাকে কার্যক্ষমতা হ্রাসের সঠিক কারণ চিহ্নিত করতে দেয়।
  • পূর্ববর্তী সংস্করণের বিপরীতে এবং একটি নির্দিষ্ট থ্রেশহোল্ডের বিপরীতে একটি নতুন মডেল সংস্করণের জন্য প্রতি সেকেন্ডে প্রশিক্ষণের ধাপগুলি পরীক্ষা করুন।
  • মেমরি ব্যবহারের জন্য একটি থ্রেশহোল্ড সেট করে মেমরি লিক ধরুন।
  • API প্রতিক্রিয়া সময় নিরীক্ষণ এবং তাদের শতাংশ ট্র্যাক. যদিও API প্রতিক্রিয়া সময়গুলি আপনার নিয়ন্ত্রণের বাইরে হতে পারে, ধীর প্রতিক্রিয়া সম্ভাব্যভাবে খারাপ বাস্তব-বিশ্বের মেট্রিক্সের কারণ হতে পারে।
  • প্রতি সেকেন্ডে উত্তর দেওয়া প্রশ্নের সংখ্যা নিরীক্ষণ করুন।

পরিবেশিত ডেটাতে লাইভ মডেলের গুণমান পরীক্ষা করুন

আপনি আপনার মডেল যাচাই করেছেন. কিন্তু যদি বাস্তব-বিশ্বের দৃশ্যকল্প, যেমন ইউনিকর্ন আচরণ, আপনার বৈধতা ডেটা রেকর্ড করার পরে পরিবর্তিত হয়? তাহলে আপনার পরিবেশিত মডেলের মান খারাপ হবে। যাইহোক, পরিবেশনের ক্ষেত্রে গুণমান পরীক্ষা করা কঠিন কারণ বাস্তব-বিশ্বের ডেটা সবসময় লেবেল করা হয় না। আপনার পরিবেশন ডেটা লেবেল না থাকলে, এই পরীক্ষাগুলি বিবেচনা করুন:

  • হিউম্যান রেটার ব্যবহার করে লেবেল তৈরি করুন

  • ভবিষ্যদ্বাণীগুলিতে উল্লেখযোগ্য পরিসংখ্যানগত পক্ষপাত দেখায় এমন মডেলগুলি তদন্ত করুন। শ্রেণীবিভাগ দেখুন: ভবিষ্যদ্বাণী পক্ষপাত

  • আপনার মডেলের জন্য বাস্তব-বিশ্বের মেট্রিক্স ট্র্যাক করুন। উদাহরণস্বরূপ, আপনি যদি স্প্যাম শ্রেণীবদ্ধ করেন, তাহলে ব্যবহারকারীর রিপোর্ট করা স্প্যামের সাথে আপনার পূর্বাভাস তুলনা করুন।

  • আপনার প্রশ্নের একটি ভগ্নাংশে একটি নতুন মডেল সংস্করণ পরিবেশন করে প্রশিক্ষণ এবং ডেটা পরিবেশন করার মধ্যে সম্ভাব্য পার্থক্য প্রশমিত করুন। আপনি আপনার নতুন পরিবেশন মডেল যাচাই করার সাথে সাথে, ধীরে ধীরে সমস্ত প্রশ্নগুলিকে নতুন সংস্করণে স্যুইচ করুন৷

এই পরীক্ষাগুলি ব্যবহার করে, ভবিষ্যদ্বাণীর গুণমানে আকস্মিক এবং ধীরগতি উভয়ই নিরীক্ষণ করতে ভুলবেন না।

এলোমেলোকরণ

আপনার ডেটা জেনারেশন পাইপলাইন পুনরুত্পাদনযোগ্য করুন। বলুন আপনি একটি বৈশিষ্ট্য যোগ করতে চান যে এটি মডেলের গুণমানকে কীভাবে প্রভাবিত করে। একটি ন্যায্য পরীক্ষার জন্য, এই নতুন বৈশিষ্ট্য ব্যতীত আপনার ডেটাসেটগুলি অভিন্ন হওয়া উচিত৷ সেই চেতনায়, নিশ্চিত করুন যে ডেটা জেনারেশনের যেকোন র্যান্ডমাইজেশনকে নির্ধারক করা যেতে পারে:

  • আপনার র্যান্ডম সংখ্যা জেনারেটর (RNGs) বীজ . সিডিং নিশ্চিত করে যে RNG আপনি যখনই এটি চালান তখন আপনার ডেটাসেট পুনরায় তৈরি করে একই ক্রমে একই মান আউটপুট করে।
  • অপরিবর্তনীয় হ্যাশ কী ব্যবহার করুন। হ্যাশিং ডেটা বিভক্ত বা নমুনা করার একটি সাধারণ উপায়। আপনি প্রতিটি উদাহরণ হ্যাশ করতে পারেন, এবং উদাহরণটি কোন বিভাজনে স্থাপন করবেন তা সিদ্ধান্ত নিতে ফলাফল পূর্ণসংখ্যা ব্যবহার করতে পারেন। আপনার হ্যাশ ফাংশনের ইনপুটগুলি প্রতিবার যখন আপনি ডেটা জেনারেশন প্রোগ্রাম চালাবেন তখন পরিবর্তন করা উচিত নয়। আপনার হ্যাশে বর্তমান সময় বা র্যান্ডম সংখ্যা ব্যবহার করবেন না, উদাহরণস্বরূপ, যদি আপনি চাহিদা অনুযায়ী আপনার হ্যাশগুলি পুনরায় তৈরি করতে চান।

পূর্ববর্তী পদ্ধতিগুলি আপনার ডেটা নমুনা এবং বিভাজন উভয় ক্ষেত্রেই প্রযোজ্য।

হ্যাশিং জন্য বিবেচনা

আবার কল্পনা করুন যে আপনি অনুসন্ধান প্রশ্নগুলি সংগ্রহ করছেন এবং প্রশ্নগুলি অন্তর্ভুক্ত বা বাদ দিতে হ্যাশিং ব্যবহার করছেন৷ যদি হ্যাশ কী শুধুমাত্র ক্যোয়ারী ব্যবহার করে, তাহলে একাধিক দিনের ডেটা জুড়ে, আপনি হয় সর্বদা সেই ক্যোয়ারীটি অন্তর্ভুক্ত করবেন বা সর্বদা এটি বাদ দেবেন। সর্বদা একটি প্রশ্ন অন্তর্ভুক্ত বা সর্বদা বাদ দেওয়া খারাপ কারণ:

  • আপনার প্রশিক্ষণ সেটটি কম বৈচিত্র্যময় প্রশ্নের সেট দেখতে পাবে।
  • আপনার মূল্যায়ন সেটগুলি কৃত্রিমভাবে কঠিন হবে, কারণ সেগুলি আপনার প্রশিক্ষণের ডেটার সাথে ওভারল্যাপ করবে না। বাস্তবে, পরিবেশন করার সময়, আপনি আপনার প্রশিক্ষণের ডেটাতে কিছু লাইভ ট্র্যাফিক দেখতে পাবেন, তাই আপনার মূল্যায়নে তা প্রতিফলিত হওয়া উচিত।

পরিবর্তে আপনি ক্যোয়ারী + তারিখে হ্যাশ করতে পারেন, যার ফলে প্রতিদিন একটি ভিন্ন হ্যাশিং হবে।

চিত্র 7. অ্যানিমেটেড ভিজ্যুয়ালাইজেশন দেখায় যে কীভাবে শুধুমাত্র ক্যোয়ারীতে হ্যাশ করার ফলে ডেটা প্রতিদিন একই বালতিতে যায়, কিন্তু ক্যোয়ারীতে হ্যাশিং এবং ক্যোয়ারী টাইম প্রতিদিন বিভিন্ন বালতিতে ডেটা যায়। তিনটি বালতি হল প্রশিক্ষণ, মূল্যায়ন এবং উপেক্ষা করা।
চিত্র 7. ক্যোয়ারীতে হ্যাশিং বনাম ক্যোয়ারীতে হ্যাশিং + ক্যোয়ারী সময়।