6.2 মেশিন লার্নিং প্রকৌশল (MLOps)
পরিচিতি ও প্রেরণা
মেশিন লার্নিং প্রকৌশল, সাধারণত MLOps বলা হয়, হলো মেশিন লার্নিং-কে নোটবুক ও পরীক্ষা থেকে নির্ভরযোগ্য, পর্যবেক্ষণযোগ্য, রক্ষণাবেক্ষণযোগ্য প্রোডাকশন সিস্টেমে নিয়ে যাওয়ার শৃঙ্খলা। ঐতিহ্যবাহী সফটওয়্যার তার কোড যেমন বলে তেমন আচরণ করে। একটি ML সিস্টেম আচরণ করে তার কোড, তার ডেটা এবং তার শেখা মডেল প্যারামিটার একসঙ্গে যেমন বলে তেমন। এটি ML সিস্টেমকে পরীক্ষা করা কঠিন, পুনরুৎপাদন করা কঠিন এবং জগৎ যে ডেটায় তারা প্রশিক্ষিত হয়েছিল তা থেকে সরে গেলে নীরবে ব্যর্থ হওয়ার প্রবণ করে। MLOps কোড, ডেটা ও মডেলের এই তিন-অংশের বাস্তবতায় সফটওয়্যার প্রকৌশলের কঠোরতা (সংস্করণ নিয়ন্ত্রণ, টেস্টিং, নিরন্তর ডেলিভারি ও মনিটরিং) আনে।
বড় দলের জন্য MLOps হলো একটি ডেমোতে ধাঁধিয়ে দেওয়া এককালীন মডেল এবং অনেক দল নিরাপদে গড়তে, ডিপ্লয় করতে ও পরিচালনা করতে পারে এমন মডেলের বহরের মধ্যকার পার্থক্য। ভাগ করা প্ল্যাটফর্ম ও চর্চা ছাড়া প্রতিটি দল ডেটা পাইপলাইন, প্রশিক্ষণ লুপ ও ডিপ্লয়মেন্ট পুনরাবিষ্কার করে, এবং আপনি ছয় মাস পরে কেউ পুনরুৎপাদন করতে পারে না এমন ভঙ্গুর সিস্টেম নিয়ে শেষ হন। এন্টারপ্রাইজ ডজন ডজন মডেল জুড়ে স্কেল করতে, সেবা-স্তরের উদ্দেশ্য পূরণ করতে এবং একটি নির্দিষ্ট পূর্বাভাস কীভাবে তৈরি হয়েছিল জিজ্ঞেস করা নিরীক্ষকদের সন্তুষ্ট করতে MLOps-এর ওপর নির্ভর করে।
সরকার ও নিয়ন্ত্রিত শিল্পে MLOps প্রায়ই ছদ্মবেশে একটি সম্মতি প্রয়োজন। পুনরুৎপাদনযোগ্যতা, বংশধারা ও সংস্করণই একটি সংস্থাকে আইনত গুরুত্বপূর্ণ প্রশ্নের উত্তর দিতে দেয়: ঠিক কোন মডেল, কোন ডেটায় প্রশিক্ষিত, কোন কোড দিয়ে, একজন নাগরিককে প্রভাবিত করা সিদ্ধান্ত তৈরি করেছিল? একটি পরিণত MLOps চর্চা সেই প্রশ্ন বছর পরেও উত্তরযোগ্য রাখে, যা ভালো প্রকৌশল ও আইনি সুরক্ষা দুটিই।
আরও দেখুন: অধ্যায় 8.1 (CI/CD ও ডেলিভারি), অধ্যায় 9.2 (পর্যবেক্ষণযোগ্যতা ও মনিটরিং), এবং অধ্যায় 6.6 (AI অবকাঠামো ও পরিচালনা)।
মূল নীতিসমূহ
- ডেটা, কোড ও মডেলকে যৌথভাবে সংস্করণ করা নিদর্শন গণ্য করুন; যেকোনো একটি বদলালে সিস্টেম আচরণ বদলায়।
- ডেটা থেকে প্রশিক্ষিত মডেল থেকে ডিপ্লয়মেন্ট পর্যন্ত পথ স্বয়ংক্রিয় করুন যাতে তা পুনরাবৃত্তিযোগ্য ও নিরীক্ষণযোগ্য।
- প্রতিটি মডেল তা তৈরি করা ঠিক ডেটা, কোড ও কনফিগারেশনে ট্রেসযোগ্য করুন।
- ডিপ্লয়মেন্টের আগে প্রতিনিধিত্বমূলক, আলাদা-রাখা ডেটার বিপরীতে মডেল মূল্যায়ন করুন, এবং পরেও মূল্যায়ন চালিয়ে যান।
- ধরে নিন মডেল অবনত হয়; প্রথম দিন থেকে ড্রিফট (লাইভ ডেটা বা ইনপুট-আউটপুট সম্পর্কের মডেল যে ডেটায় প্রশিক্ষিত হয়েছিল তা থেকে ক্রমশ সরে যাওয়া), ডেটা মান সমস্যা এবং কর্মক্ষমতা ক্ষয় পর্যবেক্ষণ করুন।
- চতুর, অপুনরুৎপাদনযোগ্য পরীক্ষার চেয়ে নিরস, পুনরুৎপাদনযোগ্য পাইপলাইন পছন্দ করুন।
- পরীক্ষার গতি ও প্রোডাকশন নির্ভরযোগ্যতার উদ্বেগ আলাদা করুন, এবং সুচিন্তিতভাবে তাদের সেতুবন্ধন করুন।
সুপারিশ
পুরো ML জীবনচক্র সুস্পষ্টভাবে পরিচালনা করুন
প্রতিটি পর্যায় সংজ্ঞায়িত ও যন্ত্রসজ্জিত করুন: ডেটা গ্রহণ ও যাচাই, ফিচার প্রকৌশল, প্রশিক্ষণ, মূল্যায়ন, ডিপ্লয়মেন্ট ও মনিটরিং। পর্যায়ের মধ্যকার সীমানা সুস্পষ্ট করুন যাতে প্রতিটি পরীক্ষা, পুনঃচেষ্টা ও নিরীক্ষা করা যায়। একটি অ্যাড হক নোটবুকে প্রশিক্ষিত এবং পরিচালনায় দেয়ালের ওপর দিয়ে ছুঁড়ে দেওয়া মডেলের সাধারণ ব্যর্থতা এড়ান। বদলে জীবনচক্রকে একটি অর্কেস্ট্রেটেড পাইপলাইনে মুড়ুন যা যেকোনো অনুমোদিত ইঞ্জিনিয়ার একটি পরিষ্কার চেকআউট থেকে চালাতে পারে।
ফিচার স্টোর, পরীক্ষা অনুসরণ ও মডেল রেজিস্ট্রি ব্যবহার করুন
একটি ফিচার স্টোর ফিচার সংজ্ঞা কেন্দ্রীভূত করে যাতে একই রূপান্তর প্রশিক্ষণ ও সার্ভিং দুটিতেই চলে। এটি প্রশিক্ষণ-সার্ভিং স্কিউ (প্রশিক্ষণ বনাম লাইভ পূর্বাভাসের জন্য ফিচার কীভাবে গণনা হয় তার অসঙ্গতি) দূর করে এবং দলগুলোকে ফিচার পুনর্গণনার বদলে পুনর্ব্যবহার করতে দেয়। পরীক্ষা অনুসরণ প্রতিটি প্রশিক্ষণ রানের প্যারামিটার, কোড সংস্করণ, ডেটা সংস্করণ ও মেট্রিক রেকর্ড করে, যাতে ফল তুলনাযোগ্য ও পুনরুৎপাদনযোগ্য হয়। একটি মডেল রেজিস্ট্রি প্রশিক্ষিত মডেলের সত্য-রেকর্ড সিস্টেম, সংস্করণ, বংশধারা, মূল্যায়ন ফল, অনুমোদন অবস্থা ও ডিপ্লয়মেন্ট পর্যায় ধরে। একসঙ্গে এগুলো আচরণ বদলালে “কী বদলেছে?” উত্তর দিতে এবং শাসিত পর্যায়ের মাধ্যমে মডেল উন্নীত বা ফিরিয়ে নিতে দেয়।
বংশধারাসহ ডেটা ও মডেল পুনরুৎপাদনযোগ্য এবং সংস্করণ করা করুন
কেবল কোড নয়, আপনার ডেটাসেট সংস্করণ করুন। কনটেন্ট-ঠিকানাযুক্ত সংরক্ষণ বা ডেটা-সংস্করণ টুল ব্যবহার করুন যাতে একটি প্রশিক্ষণ রান একটি অপরিবর্তনীয় স্ন্যাপশট উল্লেখ করে। git কমিট দিয়ে কোড পিন করুন, এবং লক করা নির্ভরতা ও কন্টেইনার ইমেজ দিয়ে পরিবেশ পিন করুন। শুরু থেকে শেষ পর্যন্ত বংশধারা ধরুন: কোন কাঁচা ডেটা কোন ফিচার খাইয়েছে, কোন ফিচার ও কোড কোন মডেল তৈরি করেছে, এবং সেই মডেল কোথায় ডিপ্লয় করা। একটি ঘটনা বা নিরীক্ষা এলে বংশধারা একটি ফরেনসিক দুঃস্বপ্নকে একটি সরল কোয়েরিতে পরিণত করে। ফল যেখানে এর ওপর নির্ভর করে সেখানে এলোমেলোতা (সিড) ও হার্ডওয়্যার রেকর্ড করুন।
কাজের সঙ্গে মেলাতে ডিপ্লয়মেন্ট প্যাটার্ন বাছুন
- ব্যাচ স্কোরিং বড় ডেটাসেটের ওপর একটি সূচিতে চলে; পরিচালনায় সরলতম, বিলম্ব সহনশীল, প্রতিবেদন ও পর্যায়ক্রমিক সিদ্ধান্তের জন্য আদর্শ।
- অনলাইন (রিয়েল-টাইম) সার্ভিং আঁটো বিলম্ব বাজেটের মধ্যে পৃথক অনুরোধে সাড়া দেয়; কম-বিলম্ব ফিচার পুনরুদ্ধার ও সতর্ক ক্ষমতা পরিকল্পনা লাগে।
- স্ট্রিমিং ইভেন্ট আসার সঙ্গে সঙ্গে নিরন্তর স্কোর করে; প্রতারণা শনাক্তকরণ ও পর্যবেক্ষণের জন্য মানায় যেখানে সতেজতা জটিল।
- এজ বিলম্ব, গোপনীয়তা, সংযোগ বা ডেটা-সার্বভৌমত্বের কারণে ডিভাইস বা অন-প্রেম হার্ডওয়্যারে মডেল চালায়, সরকারি ও ক্ষেত্র পরিবেশে সাধারণ।
প্রয়োজন পূরণ করে এমন সরলতম প্যাটার্ন বাছুন, এবং ছায়া ডিপ্লয়মেন্ট, ক্যানারি ও তাৎক্ষণিক রোলব্যাক দিয়ে আপনার রোলআউট নকশা করুন।
ড্রিফট, অবনতি ও ডেটা মান পর্যবেক্ষণ করুন
প্রোডাকশনে ইনপুট ও আউটপুট যন্ত্রসজ্জিত করুন। ডেটা ড্রিফট (ইনপুট বিতরণ সরে যাওয়া), কনসেপ্ট ড্রিফট (ইনপুট ও লক্ষ্যের মধ্যকার সম্পর্ক বদলানো), ডেটা মান ব্যর্থতা (নাল, স্কিমা পরিবর্তন, ভাঙা উজান উৎস), এবং যেখানে আছে সেখানে বিলম্বিত মূল সত্যের বিপরীতে মাপা কর্মক্ষমতা অবনতি লক্ষ করুন। সতর্কতা সীমা ঠিক করুন, রানবুক লিখুন, এবং মনিটরিং আপনার পুনঃপ্রশিক্ষণ ট্রিগারের সঙ্গে জুড়ুন। নীরব অবনতি ক্লাসিক ML ব্যর্থতা ধরন, এবং মনিটরিংই এর বিরুদ্ধে আপনার একমাত্র প্রতিরক্ষা।
ট্রেড-অফ: সুবিধা ও অসুবিধা
| সিদ্ধান্ত | বিকল্প A | বিকল্প B | বিনিময় |
|---|---|---|---|
| সার্ভিং প্যাটার্ন | ব্যাচ | অনলাইন | সরলতা ও খরচ বনাম সতেজতা ও বিলম্ব |
| ফিচার গণনা | ফিচার স্টোর | প্রতি-মডেল পাইপলাইন | সামঞ্জস্য ও পুনর্ব্যবহার বনাম সেটআপ বাড়তি বোঝা |
| প্ল্যাটফর্ম | একটি ম্যানেজড MLOps প্ল্যাটফর্ম কিনুন | ওপেন-সোর্স টুল জোড়া লাগান | গতি ও সমর্থন বনাম নমনীয়তা ও আবদ্ধতা |
| পুনঃপ্রশিক্ষণ | নির্ধারিত | ড্রিফট দ্বারা ট্রিগার | পূর্বাভাসযোগ্যতা বনাম সাড়া ও জটিলতা |
| পুনরুৎপাদনযোগ্যতা কঠোরতা | পূর্ণ ডেটা সংস্করণ | হালকা অনুসরণ | নিরীক্ষা শক্তি বনাম সংরক্ষণ ও পরিশ্রম |
সর্বব্যাপী বিনিময় এখন বিনিয়োগ বনাম পরে ভঙ্গুরতা। ভারী পুনরুৎপাদনযোগ্যতা ও মনিটরিং অবকাঠামো অগ্রিম পরিশ্রম খরচ করে, কিন্তু সেগুলো অব্যাখ্যেয় ব্যর্থতা, অপুনরুৎপাদনযোগ্য মডেল ও ক্ষয় হওয়া আস্থার অনেক বড় খরচ ঠেকায়। ম্যানেজড প্ল্যাটফর্ম দলগুলোকে দ্রুত করে কিন্তু আবদ্ধতা তৈরি করতে পারে; ওপেন-সোর্স স্ট্যাক ইন্টিগ্রেশন কাজের মূল্যে নিয়ন্ত্রণ দেয়। বড় প্রতিষ্ঠান সাধারণত একটি ভাগ করা প্ল্যাটফর্ম দল থেকে লাভবান হয় যা পাকা-পথ ডিফল্টের পেছনে এই জটিলতা লুকায়।
আপনার দলের সঙ্গে আলোচনার প্রশ্ন
একজন গ্রাহক বা নাগরিক ক্ষতিগ্রস্ত হওয়ার আগে একটি ডিপ্লয় করা মডেল নীরবে অবনত হয়েছে আমরা কীভাবে জানব, এবং সেই সতর্কতার মালিক কে? নীরব ক্ষয় ক্লাসিক ML ব্যর্থতা ধরন: কোড এখনো চলে, মডেল এখনো আত্মবিশ্বাসী স্কোর ফেরত দেয়, এবং জগৎ প্রশিক্ষণ ডেটা থেকে সরলে মান পিছলে যায়। অনেক মডেল চালানো একটি বড় দলের জন্য এর উত্তর প্রতি মডেলে দরকার, পুরো বহরের জন্য একবার নয়, কারণ প্রতিটির নিজস্ব ড্রিফট প্রোফাইল ও নিজস্ব মূল-সত্য বিলম্ব আছে। ডেটা ড্রিফট, কনসেপ্ট ড্রিফট ও ডেটা-মান ভাঙনের জন্য আপনার বর্তমান মনিটর, সতর্কতা সীমা এবং কে সাড়া দেয় বলা রানবুক আনুন। যে নিয়ন্ত্রিত পরিবেশে লেবেল সপ্তাহ দেরিতে আসে সেখানে ইতিমধ্যে আপনি যে প্রক্সি সংকেত দেখতে পারেন তা আলোচনা করুন, কারণ বিলম্বিত মূল সত্যের জন্য অপেক্ষা মানে ক্ষতি আবিষ্কারের জন্য অপেক্ষা। একটি মডেলের ড্রিফট সতর্কতার জন্য কোনো একক মালিকের নাম না থাকলে সেই মডেল কার্যত অপর্যবেক্ষিত।
একজন নিরীক্ষক আমাদের আঠারো মাস আগের একটি নির্দিষ্ট পূর্বাভাস পুনরুৎপাদন করতে বললে, আমরা কি সত্যিই শুরু থেকে শেষ পর্যন্ত তা করতে পারতাম? পুনরুৎপাদনযোগ্যতা ভালো প্রকৌশলের ভেতর লুকানো সম্মতি প্রয়োজন: এটি একটি সংস্থাকে ঠিক কোন মডেল, কোন ডেটায় প্রশিক্ষিত, কোন কোড দিয়ে, কাউকে প্রভাবিত করা সিদ্ধান্ত তৈরি করেছিল উত্তর দিতে দেয়। একটি প্রকৃত উদাহরণ আনুন এবং অনুসরণ করার চেষ্টা করুন: অপরিবর্তনীয় ডেটা স্ন্যাপশট, git কমিট, লক করা নির্ভরতা ও কন্টেইনার ইমেজ, রেকর্ড করা সিড, এবং কাঁচা ডেটা থেকে ফিচার হয়ে ডিপ্লয় করা মডেল পর্যন্ত বংশধারা। সংকেত হলো সেই শৃঙ্খলের কোনো সংযোগ অনুপস্থিত বা ম্যানুয়াল কি না। সরকার ও নিয়ন্ত্রিত শিল্পের জন্য আইন আসলে যে ধারণ সময়কাল দাবি করে তা ঠিক করুন এবং নিশ্চিত করুন আপনার সংরক্ষণ সেই পুরো জানালায় বংশধারা উত্তরযোগ্য রাখে, কারণ একটি ফাঁক একটি নিয়মিত কোয়েরিকে ফরেনসিক জরুরি অবস্থায় পরিণত করে।
একটি মডেল প্রোডাকশনে উন্নীত করা ও ফিরিয়ে নেওয়ার জন্য আমাদের নিয়ম কী, এবং তা কি রেজিস্ট্রি দ্বারা প্রয়োগ হয় নাকি কেবল বিশ্বাসে? অশাসিত উন্নীতকরণই নোটবুক পরীক্ষা প্রোডাকশনে চুঁইয়ে ঢোকার এবং একটি খারাপ মডেল কেউ পরিচ্ছন্নভাবে ফেরাতে না পারায় টিকে থাকার উপায়। অনেক দলের জন্য পরিণত ও ভঙ্গুরের পার্থক্য হলো মডেল রেজিস্ট্রি বাধ্যতামূলক অনুমোদন ও মূল্যায়ন দিয়ে উন্নীতকরণ গেট করে কি না, নাকি একজন ইঞ্জিনিয়ার হাতে ওজন ঠেলতে পারে। আপনার বর্তমান উন্নীতকরণ পথ, আপনার রোলব্যাক ব্যবস্থা, এবং পূর্ণ ট্রাফিকের আগে ছায়া ডিপ্লয়মেন্ট বা ক্যানারি আসলে চলে তার প্রমাণ আনুন। পুনঃপ্রশিক্ষণ নির্ধারিত নাকি ড্রিফট-ট্রিগার করা, এবং পুনঃপ্রশিক্ষিত মডেল ডিপ্লয়মেন্টের আগে যাচাই গেট পাস করে কি না আলোচনা করুন, কারণ যাচাই ছাড়া লাইভ ডেটায় পুনঃপ্রশিক্ষণ ড্রিফট বা বিষাক্তকরণ বিবর্ধিত করে। উত্তর প্ল্যাটফর্মে প্রয়োগ করা হওয়া উচিত, মানুষকে অনুসরণ করতে বিশ্বাস করা একটি উইকি পাতায় নয়।
আমরা কি ওপেন-সোর্স টুলে আমাদের MLOps প্ল্যাটফর্ম গড়ি, একটি ম্যানেজড কিনি, নাকি দুটি মেশাই, এবং আবদ্ধতা কে ওজন করেছে? এই পছন্দ নির্ধারণ করে প্রতিটি ভবিষ্যৎ মডেল কত দ্রুত পাঠানো হবে এবং আপনার ডেটা ও পাইপলাইনের ওপর আপনি কতটা নিয়ন্ত্রণ রাখবেন তার সীমা। একটি ম্যানেজড প্ল্যাটফর্ম দলগুলোকে দ্রুত প্রোডাকশনে পৌঁছায় এবং সমর্থন বহন করে, কিন্তু আপনার ফিচার সংজ্ঞা, বংশধারা রেকর্ড ও মডেল নিদর্শন একটি মালিকানাধীন ফরম্যাটে আটকাতে পারে যা সহজে ছাড়তে পারবেন না; একটি জোড়া-লাগানো ওপেন-সোর্স স্ট্যাক প্রকৃত ইন্টিগ্রেশন ও রক্ষণাবেক্ষণ শ্রমের মূল্যে আপনাকে বহনযোগ্য রাখে। প্রতিটি পথের জন্য মালিকানার মোট খরচ (লাইসেন্স বা গড়া, সংরক্ষণ, পুনঃপ্রশিক্ষণের জন্য কম্পিউট, এবং তা চালাতে প্ল্যাটফর্ম কর্মী), অবকাঠামো চালানোর আপনার দলের সামর্থ্যের একটি সৎ পাঠ, এবং একটি সুনির্দিষ্ট প্রস্থান পরীক্ষা আনুন: আপনি কি আপনার রেজিস্ট্রি, ফিচার স্টোর ও বংশধারা রপ্তানি করে অন্যত্র পুনর্নির্মাণ করতে পারবেন? এন্টারপ্রাইজ ও সরকারি পরিবেশে ক্রয় সীমাবদ্ধতা ও ডেটা-সার্বভৌমত্ব নিয়ম যোগ করুন, কারণ আপনার নিয়ন্ত্রক নিষিদ্ধ করে এমন অঞ্চলে বা ফরম্যাটে প্রশিক্ষণ ডেটা সংরক্ষণকারী প্ল্যাটফর্ম যতই সুবিধাজনক হোক অযোগ্য।
আমাদের ফিচার স্টোর ও মডেল রেজিস্ট্রি কি একটি কেন্দ্রীভূত প্ল্যাটফর্ম হওয়া উচিত নাকি প্রতি-দলে ফেডারেটেড, এবং প্রশিক্ষণ-সার্ভিং স্কিউ আজ আমাদের কত খরচ করছে? ফিচার সংজ্ঞা কেন্দ্রীভূত করা সেই স্কিউ দূর করে যেখানে একটি ফিচার প্রশিক্ষণে এক উপায়ে এবং সার্ভিংয়ে অন্য উপায়ে গণনা হয়, যা নির্ভুলতা হারানোর একটি নীরব ও ব্যয়বহুল উৎস, কিন্তু একটি একক প্ল্যাটফর্ম বাধা হতে পারে যা প্রতিটি দলকে ধীর করে। ফেডারেটিং দলকে স্বায়ত্তশাসন দেয় নল বহুগুণ করে এবং দুটি দল একই ফিচার অসঙ্গতভাবে সংজ্ঞায়িত করার সম্ভাবনা বাড়িয়ে। স্কিউ ইতিমধ্যে কোথায় কামড়েছে, কতগুলো দল ফিচার পুনর্নির্মাণের বদলে পুনর্ব্যবহার করে, এবং একটি ভাগ করা প্ল্যাটফর্ম দল যে পাকা-পথ ডিফল্ট দিতে পারে তার প্রমাণ আনুন। একটি বড় প্রতিষ্ঠানের জন্য একটি নিরীক্ষণযোগ্য সত্য-রেকর্ড সিস্টেমের শাসন সুবিধা একটি কেন্দ্রীয় সারির ডেলিভারি খরচের বিপরীতে ওজন করুন, এবং নিয়ন্ত্রিত পরিবেশে কেন্দ্রীভূত বংশধারা পছন্দ করুন যা একজন নিরীক্ষককে যেকোনো পূর্বাভাস তা তৈরি করা ঠিক ফিচার কোডে ট্রেস করতে দেয়।
আমরা কি প্রতিটি মডেলের ডিপ্লয়মেন্ট প্যাটার্ন তার প্রকৃত বিলম্ব, সতেজতা ও সার্বভৌমত্ব প্রয়োজনের সঙ্গে মিলিয়েছি, নাকি সবকিছু একটি আকারে ডিফল্ট করেছি? ব্যাচ, অনলাইন, স্ট্রিমিং ও এজ প্রতিটি অনেক ভিন্ন পরিচালনগত খরচ ও জটিলতা বহন করে, এবং ভুলটি বাছা হয় একটি রাতের প্রতিবেদনের কখনো দরকার না হওয়া রিয়েল-টাইম অবকাঠামোতে বেশি খরচ করে নয়তো একটি প্রতারণা স্কোরারকে তার নির্ভর করা সতেজতা থেকে বঞ্চিত করে। প্রতি ওয়ার্কলোডে ঠিক করুন প্রয়োজন কোন প্যাটার্ন আসলে যথার্থ করে, এবং আধুনিক মনে হয় বলে সবচেয়ে জটিলটিতে প্রমিত করা প্রতিরোধ করুন। প্রতিটি মডেলের বিলম্ব বাজেট, পরিমাণ, একটি বাসি উত্তরের খরচ এবং মূল-সত্য বিলম্ব আনুন। সরকারি ও ক্ষেত্র পরিবেশে এজ ও অন-প্রেম ডিপ্লয়মেন্ট সুচিন্তিতভাবে ওজন করুন, কারণ ডেটা-সার্বভৌমত্ব নিয়ম বা বিরতিহীন সংযোগ মডেলকে স্থানীয় হার্ডওয়্যারে বাধ্য করতে পারে, এবং সেই পছন্দ আপনি সেখানে ঠেলা প্রতিটি মডেল কীভাবে সংস্করণ, পর্যবেক্ষণ ও রোলব্যাক করবেন তা নতুন আকার দেয়।
খাতভেদে দৃষ্টিভঙ্গি
স্টার্টআপ। আপনার দুর্লভতম সম্পদ প্রকৌশল মনোযোগ, তাই MLOps হালকা রাখুন এবং কিনুন। একটি সরল হোস্টেড টুলে পরীক্ষা অনুসরণ করুন, git-এ প্রতিটি ডিপ্লয় করা মডেল তার প্রশিক্ষণ ডেটা স্ন্যাপশট ও কোড কমিটে পিন করুন, এবং একটি প্ল্যাটফর্মের বদলে একটি সস্তা ড্রিফট পরীক্ষা যোগ করুন। দ্বিতীয় বা তৃতীয় মডেল পুনর্ব্যবহার যথার্থ না করা পর্যন্ত ফিচার স্টোর ও বিশেষায়িত পাইপলাইন এড়ান; আপনি রক্ষণাবেক্ষণ করতে পারবেন না এমন একটি ভঙ্গুর স্ট্যাক একটি অনুপস্থিত সামর্থ্যের চেয়ে দ্রুত আপনাকে ডোবাবে।
ছোট ব্যবসা। আপনার সম্ভবত কোনো ML প্ল্যাটফর্ম বিশেষজ্ঞ নেই এবং বাজেট কম, তাই MLOps-কে আপনি কর্মী দেওয়া সিস্টেমের বদলে ইতিমধ্যে চালানো টুলে এমবেড করা কিছু গণ্য করুন। আপনার জন্য সংস্করণ, ডিপ্লয়মেন্ট ও মনিটরিং সামলায় এমন একটি ম্যানেজড সেবা পছন্দ করুন, এবং শৃঙ্খলাকে ডেটা-স্বাস্থ্যবিধি ও পুনরুৎপাদনযোগ্যতার প্রশ্ন হিসেবে ফ্রেম করুন: জানুন কোন মডেল ও ডেটা একটি নির্দিষ্ট ফল তৈরি করেছে, এবং রোলব্যাক করার সামর্থ্য রাখুন। আপনাকে আপনার ডেটা ও মডেল রপ্তানি করতে দেয় এমন বিক্রেতা পছন্দ করুন যাতে পরে বদলানো সম্ভব থাকে।
এন্টারপ্রাইজ। সমস্যা ডজন ডজন মডেল ও অনেক দল জুড়ে পরিসর: একটি ভাগ করা ফিচার স্টোর, পরীক্ষা অনুসরণ, এবং শাসিত উন্নীতকরণসহ একটি মডেল রেজিস্ট্রি যাতে গোষ্ঠীগুলো পাইপলাইন পুনরাবিষ্কার বন্ধ করে। পাকা-পথ ডিফল্ট দেওয়া একটি প্ল্যাটফর্ম দল বাজেট করুন, বংশধারা ও মনিটরিং প্রমিত করুন যাতে প্রতিটি মডেল নিরীক্ষণযোগ্য এবং প্রতিটি ঘটনা ব্যাখ্যাযোগ্য, এবং অন্তর্নিহিত টুল বদলানো যায় এমন ইন্টারফেসের পেছনে গড়া-বনাম-কেনা ও আবদ্ধতা সুচিন্তিতভাবে পরিচালনা করুন। রীতিতে নয়, প্ল্যাটফর্মে যাচাই গেট ও রোলব্যাক প্রয়োগ করুন।
সরকার। পুনরুৎপাদনযোগ্যতা, বংশধারা ও সংস্করণ ছদ্মবেশে সম্মতি প্রয়োজন, তাই প্রথম দিন থেকে এগুলোকে প্রথম-শ্রেণির গণ্য করুন। প্রতিটি ডিপ্লয় করা মডেলের পেছনের ঠিক ডেটাসেট ও কোড সংস্করণ করুন, আইনত প্রয়োজনীয় সময়কাল সেই বংশধারা ধরে রাখুন, এবং একজন নাগরিককে প্রভাবিত করা যেকোনো ঐতিহাসিক পূর্বাভাস পুনরুৎপাদন করতে সক্ষম হোন। গুরুত্বপূর্ণ সিদ্ধান্ত পর্যালোচনা করতে একজন মানুষকে রাখুন, ডেটা-সার্বভৌমত্ব নিয়ম যেখানে দাবি করে সেখানে এজ ও অন-প্রেম ডিপ্লয়মেন্ট ওজন করুন, এবং যেকোনো বিক্রেতা প্ল্যাটফর্মকে আপনার ডেটা, ফিচার ও বংশধারার পূর্ণ বহনযোগ্যতা দিতে দাবি করুন।
উদাহরণ
স্টার্টআপ। একটি ছোট বিশ্লেষণ স্টার্টআপ একজন ডেটা বিজ্ঞানী ও একটি হালকা সেটআপ নিয়ে তার প্রথম চার্ন-পূর্বাভাস মডেল পাঠায়। এটি একটি সরল হোস্টেড টুলে পরীক্ষা অনুসরণ করে, git-এ প্রতিটি ডিপ্লয় করা মডেল তার প্রশিক্ষণ ডেটা স্ন্যাপশট ও কোড কমিটে পিন করে, এবং সাম্প্রতিক ইনপুটকে প্রশিক্ষণ বিতরণের সঙ্গে তুলনা করা একটি মৌলিক সাপ্তাহিক কাজ যোগ করে। একটি ডেটা উৎস তার তারিখ বিন্যাস বদলে পূর্বাভাস সরতে শুরু করলে সেই সরল পরীক্ষা একজন ক্ষুব্ধ গ্রাহকের ফোনের পরের বদলে কয়েক দিনে তা ধরে, এবং দলটি শেষ ভালো মডেল পুনরুৎপাদন করে ফিরিয়ে নিতে পারে।
এন্টারপ্রাইজ। একটি খুচরা ব্যাংক ডজন ডজন ঋণ ও প্রতারণা মডেল চালায়। এটি দল জুড়ে ভাগ করা একটি ফিচার স্টোর, একটি পরীক্ষা-অনুসরণ সেবা এবং বাধ্যতামূলক অনুমোদন গেটসহ একটি মডেল রেজিস্ট্রিতে প্রমিত করে। প্রোডাকশনের প্রতিটি মডেল তার প্রশিক্ষণ ডেটা স্ন্যাপশট ও কোড কমিটে ফিরে ট্রেস করে। প্রতারণা মডেল স্ট্রিমিং স্কোরার হিসেবে ডিপ্লয় হয়; ঋণ মডেল ব্যাচে চলে। একটি মনিটরিং স্তর ইনপুট ড্রিফট দেখে এবং একটি ডেটা উৎসের স্কিমা বদলালে সতর্ক করে, যা একবার সিদ্ধান্ত নষ্ট করার আগে একটি ভাঙা উজান ফিড ধরেছিল।
সরকার। একটি সরকারি সুবিধা সংস্থা কেস পর্যালোচনা অগ্রাধিকার দিতে একটি ML মডেল ব্যবহার করে। কারণ এই সিদ্ধান্ত সেবায় নাগরিকদের অ্যাক্সেস প্রভাবিত করে, সংস্থা প্রতিটি ডিপ্লয় করা মডেলের পেছনের ঠিক ডেটাসেট ও কোড সংস্করণ করে, আইনত প্রয়োজনীয় সময়কাল এই বংশধারা রাখে, এবং চাহিদামতো যেকোনো ঐতিহাসিক পূর্বাভাস পুনরুৎপাদন করতে পারে। মডেল ব্যাচে ডিপ্লয় হয় একজন মানুষ চিহ্নিত কেস পর্যালোচনা করে, এবং আগত জনগোষ্ঠী সরলে একটি ড্রিফট মনিটর বাধ্যতামূলক পুনর্মূল্যায়ন বাধ্য করে, তাই মডেল যে শর্তে যাচাই হয়েছিল তার বাইরে কখনো নীরবে প্রয়োগ হয় না।
ব্যবসায়িক যুক্তি: প্রেরণা, ROI ও TCO
MLOps ভঙ্গুর পরীক্ষাকে নির্ভরযোগ্য সম্পদে পরিণত করে নিজের খরচ তোলে। ROI আসে নতুন মডেলের জন্য প্রোডাকশনে দ্রুততর সময়, কম ব্যয়বহুল ঘটনা, কম নকল অবকাঠামো এবং একটি ছোট প্ল্যাটফর্ম দলের সঙ্গে অনেক মডেল পরিচালনার সামর্থ্য থেকে। একটি ভাগ করা ফিচার স্টোর ও রেজিস্ট্রি প্রতি-মডেল ডেলিভারি সময় নাটকীয়ভাবে কমাতে পারে, কারণ দলগুলো একই নল পুনর্নির্মাণ বন্ধ করে।
TCO-তে প্ল্যাটফর্ম গড়া বা লাইসেন্স, সংস্করণ করা ডেটা ও মডেলের সংরক্ষণ, পুনঃপ্রশিক্ষণের জন্য কম্পিউট এবং সব চালানোর কর্মী আছে। গ্রহণ না করার খরচের বিপরীতে তা ওজন করুন: পুনরুৎপাদন বা নিরীক্ষা করতে না পারা মডেল, গ্রাহক বা নাগরিকদের ক্ষতি করা নীরব ব্যর্থতা এবং নিয়ন্ত্রক পর্যবেক্ষণ। নিয়ন্ত্রিত পরিবেশে একটি নিরীক্ষায় অব্যাখ্যেয় মডেলের খরচ পুরো MLOps বিনিয়োগকে ছাড়িয়ে যেতে পারে। নেতৃত্বের কাছে যুক্তি দিতে MLOps-কে বাড়তি বোঝা নয়, ঝুঁকি হ্রাস ও ডেলিভারি ত্বরণ হিসেবে ফ্রেম করুন: একটি পাকা পথ যা প্রতিটি ভবিষ্যৎ মডেল ভ্রমণ করবে।
অ্যান্টি-প্যাটার্ন ও ফাঁদ
- নোটবুক-থেকে-প্রোডাকশন লাফ। পুনরুৎপাদনযোগ্যতা ছাড়া অশাসিত নোটবুকে প্রশিক্ষিত মডেল ডিপ্লয়।
- প্রশিক্ষণ-সার্ভিং স্কিউ। প্রশিক্ষণ ও সার্ভিংয়ে ভিন্ন ফিচার কোড, নীরব নির্ভুলতা ক্ষতি ঘটায়।
- ডেটা সংস্করণ নেই। কোড সংস্করণ কিন্তু ডেটা নয়, তাই রান পুনরুৎপাদন করা যায় না।
- ডিপ্লয় করে ভুলে যাওয়া। মনিটরিং ছাড়া মডেল পাঠানো, ব্যবহারকারী অভিযোগ করলেই অবনতি আবিষ্কার।
- স্বয়ংক্রিয় পাইলটে পুনঃপ্রশিক্ষণ। যাচাই ছাড়া লাইভ ডেটায় স্বয়ংক্রিয়ভাবে পুনঃপ্রশিক্ষণ, ড্রিফট বা বিষাক্তকরণ বিবর্ধিত করে।
- এককালীন অবকাঠামো। প্রতিটি দল নিজস্ব পাইপলাইন গড়ছে, খরচ ও ভঙ্গুরতা বহুগুণ করে।
- বিলম্বিত লেবেল উপেক্ষা। মূল সত্য সপ্তাহ পরে এলে নির্ভুলতা তাৎক্ষণিক মাপা যায় ধরে নেওয়া।
পরিপক্বতা মডেল
- সূচনা। নোটবুকে অ্যাড হক গড়া মডেল; ম্যানুয়াল ডিপ্লয়মেন্ট; ডেটা বা মডেলের সংস্করণ নেই; কোনো মনিটরিং নেই; একটি অতীত পূর্বাভাস পুনরুৎপাদন অনুমান।
- বিকাশ। কিছু পরীক্ষা অনুসরণ ও একটি মডেল রেজিস্ট্রি দেখা দেয়, কিন্তু চর্চা দল অনুযায়ী ভিন্ন; ডিপ্লয়মেন্ট আধা-স্বয়ংক্রিয়; মৌলিক মনিটরিং কয়েকটি মডেল ঢাকে; ডেটা সংস্করণ আংশিক এবং বংশধারায় ফাঁক আছে।
- মানসম্মতকরণ। একটি ফিচার স্টোর, রেজিস্ট্রি, পুনরুৎপাদনযোগ্য পাইপলাইন এবং শুরু-থেকে-শেষ বংশধারাসহ একটি ভাগ করা প্ল্যাটফর্ম নথিবদ্ধ ও প্রতিষ্ঠান-ব্যাপী প্রয়োগ করা; ড্রিফট ও ডেটা মানের জন্য মনিটরিং মডেল জুড়ে চলে; উন্নীতকরণ ও রোলব্যাক প্রতিটি দলের ব্যবহৃত একটি শাসিত পথ অনুসরণ করে।
- ব্যবস্থাপনা। বহর ভিত্তিরেখার বিপরীতে মাপা: ড্রিফট হার, ডেটা-মান ভাঙন, বিলম্বিত মূল সত্যের বিপরীতে মডেল নির্ভুলতা, প্রশিক্ষণ-সার্ভিং স্কিউ, প্রোডাকশনে সময় এবং প্রতি-মডেল পরিচালনা খরচ মেট্রিক হিসেবে অনুসরণ করা; সতর্কতা সীমা ও যাচাই গেট প্রমাণের ওপর প্রয়োগ করা, এবং প্রতিটি মডেলের স্বাস্থ্য একজন নামকরা মালিকসহ একটি নির্দিষ্ট ছন্দে পর্যালোচিত।
- সমন্বয়। জীবনচক্র সম্পূর্ণ স্বয়ংক্রিয়, নিরীক্ষণযোগ্য ও অভিযোজিত; ড্রিফট-ট্রিগার করা পুনঃপ্রশিক্ষণ যাচাই গেটের পেছনে চলে; স্ব-সেবা পাকা পথ দলগুলোকে নিরাপদে পাঠাতে দেয়; নিরন্তর মূল্যায়ন মডেল কর্মক্ষমতা ব্যবসায়িক মেট্রিকের সঙ্গে বাঁধে, এবং প্ল্যাটফর্ম ডেলিভারি, ঝুঁকি ও সম্মতির সঙ্গে একীভূত তাই ডেটা ও শর্ত সরলে মডেল নিয়মিত অবসর, প্রতিস্থাপন ও পুনর্নির্ধারিত হয়।
আলোচনার ভাবনা
- পরীক্ষার স্বাধীনতা ও প্রোডাকশন পুনরুৎপাদনযোগ্যতা আপনি কীভাবে ভারসাম্য করেন?
- আপনার ব্যবহার ক্ষেত্রের জন্য সঠিক পুনঃপ্রশিক্ষণ ট্রিগার কী (সূচি, ড্রিফট বা কর্মক্ষমতা ক্ষয়)?
- আপনাকে কতদিন ডেটা ও মডেল বংশধারা ধরে রাখতে হবে, এবং কী সেই প্রয়োজন চালায়?
- ফিচার স্টোর ও রেজিস্ট্রি কি কেন্দ্রীভূত প্ল্যাটফর্ম হওয়া উচিত নাকি প্রতি-দলে ফেডারেটেড?
- মূল-সত্য লেবেল দীর্ঘ বিলম্বে এলে আপনি নির্ভুলতা কীভাবে পর্যবেক্ষণ করেন?
- এজ ডিপ্লয়মেন্ট কখন তার বাড়তি পরিচালনগত জটিলতার যোগ্য?
প্রধান শিক্ষা
- ML আচরণ কোড, ডেটা ও মডেল থেকে আসে; তিনটি একসঙ্গে সংস্করণ ও শাসন করুন।
- ফিচার স্টোর, পরীক্ষা অনুসরণ ও রেজিস্ট্রি পুনরুৎপাদনযোগ্য ML-এর মেরুদণ্ড।
- বংশধারা মডেল নিরীক্ষণযোগ্য ও ঘটনা ব্যাখ্যাযোগ্য করে: নিয়ন্ত্রিত পরিবেশে অপরিহার্য।
- বিলম্ব, সতেজতা ও সার্বভৌমত্ব প্রয়োজনের সঙ্গে মেলাতে ব্যাচ, অনলাইন, স্ট্রিমিং বা এজ বাছুন।
- মডেল অবনত হয়; ড্রিফট, ডেটা মান ও ক্ষয়ের জন্য মনিটরিং ঐচ্ছিক নয়।
তথ্যসূত্র ও আরও পড়ার জন্য
- Chip Huyen, Designing Machine Learning Systems.
- Andriy Burkov, Machine Learning Engineering.
- D. Sculley et al., Hidden Technical Debt in Machine Learning Systems.
- Mark Treveil et al., Introducing MLOps.
- Valliappa Lakshmanan, Sara Robinson ও Michael Munn, Machine Learning Design Patterns.
- Emmanuel Ameisen, Building Machine Learning Powered Applications.