হাই হ্যাকারনুন! এই নিবন্ধে, আমি MLOps ধারণাটি বিস্তারিতভাবে আলোচনা করব। তাছাড়া, আমি এটি 3 উপায়ে করব। প্রথমত, তাত্ত্বিকভাবে - সবচেয়ে বুদ্ধিমান MLOps স্কিমের মাধ্যমে। তারপর, ধারণাগতভাবে, পদ্ধতির মধ্যে এমবেড করা শিল্পকর্মের মাধ্যমে। এবং অবশেষে, একটি তথ্য সিস্টেম হিসাবে MLOps বোঝার মাধ্যমে।
সুতরাং শুরু করি.
এই প্রশ্নটি দীর্ঘকাল ধরে অনেক ML সিস্টেম ডেভেলপমেন্ট দলের মন দখল করে আছে। এই নিবন্ধে এই ধরনের একটি সিস্টেম দ্বারা, আমি একটি তথ্য সিস্টেম বুঝতে পারি, যার এক বা একাধিক উপাদানে একটি প্রশিক্ষিত মডেল রয়েছে যা সামগ্রিক ব্যবসায়িক যুক্তির কিছু অংশ সম্পাদন করে।
সিস্টেমের অন্য কোনো উপাদানের মতো, ব্যবসায়িক যুক্তির এই অংশটি পরিবর্তনশীল ব্যবসা এবং গ্রাহকের প্রত্যাশা পূরণের জন্য আপডেট করা প্রয়োজন। MLOps এই নিয়মিত আপডেট সম্পর্কে সব.
MLOps-এর একটি একক এবং সম্মত সংজ্ঞা এখনও আছে। অনেক লেখক এটি দেওয়ার চেষ্টা করেছেন, তবে একই সাথে একটি পরিষ্কার এবং পদ্ধতিগত বর্ণনা খুঁজে পাওয়া চ্যালেঞ্জিং ছিল।
এমন একটি আছে যা বিবেচনা করা যেতে পারে:
MLOps হল একটি ইঞ্জিনিয়ারিং ডিসিপ্লিন যার লক্ষ্য হল ML সিস্টেম ডেভেলপমেন্ট (dev) এবং ML সিস্টেম ডিপ্লোয়মেন্ট (ops) কে একীভূত করা যাতে উৎপাদনে উচ্চ-কার্যকারি মডেলের ক্রমাগত ডেলিভারি প্রমিত করা হয়।
আসুন MLOps সংজ্ঞার গুরুত্বপূর্ণ অংশগুলি হাইলাইট করি:
সুতরাং, MLOps হল ML মডেলের জন্য এক ধরনের DevOps।
এটা বিশ্বাস করা সহজ যে এই ধরনের একটি ইঞ্জিনিয়ারিং ডিসিপ্লিন একটি বড় আইটি কোম্পানিতে উদ্ভূত হয়েছে। সুতরাং আমরা এই তত্ত্বে বিশ্বাস করতে পারি যে MLOps, একটি অর্থপূর্ণ পদ্ধতির হিসাবে, Google-এ উদ্ভূত হয়েছিল, যেখানে D. Sculley তার স্নায়ু এবং সময়কে ML মডেলগুলিকে এক্সটেনশনে আউটপুট করার বিষয়ে জাগতিক কাজ থেকে বাঁচানোর চেষ্টা করছিলেন। D. Sculley এখন ব্যাপকভাবে "MLOps এর গডফাদার" নামে পরিচিত - একই নামের পডকাস্ট অনলাইনে পাওয়া সহজ।
D. Sculley দলের প্রযুক্তিগত ঋণের দৃষ্টিকোণ থেকে মডেলগুলির সাথে কাজটি বিবেচনা করতে শুরু করে। হ্যাঁ, মডেলগুলির নতুন সংস্করণগুলি দ্রুত প্রকাশ করা সম্ভব, তবে ফলস্বরূপ সিস্টেমকে সমর্থন করার খরচ কোম্পানির বাজেটের উপর উল্লেখযোগ্য প্রভাব ফেলবে।
তার কাজের ফলাফল কাগজে "
বেশিরভাগ আইটি প্রক্রিয়ার মতো, এমএলওপের পরিপক্কতার স্তর রয়েছে। তারা কোম্পানিগুলিকে বুঝতে সাহায্য করে যে তারা এখন কোথায় আছে এবং কীভাবে তারা পরবর্তী স্তরে যেতে পারে (যদি এমন একটি লক্ষ্য থাকে)। এছাড়াও, সাধারণত গৃহীত পরিপক্কতা নির্ধারণ পদ্ধতি আপনাকে প্রতিযোগীদের মধ্যে আপনার স্থান নির্ধারণ করতে দেয়।
সবচেয়ে পুঙ্খানুপুঙ্খভাবে বর্ণিত এবং বহুলাংশে বোধগম্য মডেলটি অ্যানালিটিক্স ফার্ম GigaOm থেকে। এটি সমস্ত মডেলের ক্যাপাবিলিটি ম্যাচুরিটি মডেল ইন্টিগ্রেশন (CMMI) এর সবচেয়ে কাছাকাছি। এটি সাংগঠনিক প্রক্রিয়াগুলির উন্নতির জন্য পদ্ধতিগুলির একটি সেট, যা 5টি স্তর নিয়ে গঠিত - 0 থেকে 4 পর্যন্ত।
GigaOm-এর মডেলটি 5টি বিভাগের মাধ্যমে প্রতিটি পরিপক্কতার স্তরকে আনপ্যাক করে: কৌশল, স্থাপত্য, মডেলিং, প্রক্রিয়া এবং শাসন।
একটি ML সিস্টেম তৈরির প্রাথমিক পর্যায়ে এই মডেল দ্বারা পরিচালিত, আপনি প্রয়োজনীয় দিকগুলি সম্পর্কে এগিয়ে চিন্তা করতে পারেন এবং ব্যর্থতার সম্ভাবনা কমাতে পারেন। একটি পরিপক্কতা স্তর থেকে উচ্চতর স্তরে যাওয়া দলকে নতুন চ্যালেঞ্জের সাথে উপস্থাপন করে যা তারা আগে উপলব্ধি করতে পারেনি।
এটা লক্ষনীয় যে Google এর MLOps পরিপক্কতা স্তরের মডেলও রয়েছে। এটি প্রদর্শিত প্রথম এক ছিল. এটি সংক্ষিপ্ত এবং 3টি স্তর নিয়ে গঠিত:
এই মডেলটি একটি পেঁচা আঁকার জন্য একটি নির্দেশ ম্যানুয়াল অনুরূপ যে চিন্তা এড়াতে কঠিন. প্রথমে, হাত দিয়ে সবকিছু করুন, ML পাইপলাইনগুলি একত্রিত করুন এবং MLOps চূড়ান্ত করুন৷ যে বলেন, এটা ভাল বর্ণনা করা হয়েছে.
আজ, ML ব্যবহার করে অনেক বড় কোম্পানি তাদের পরিপক্কতার মডেলগুলি কম্পাইল করেছে।
সমস্ত হাইলাইট করা মডেলগুলি প্রায় একটি জিনিসে একত্রিত হয়। শূন্য স্তরে, তাদের কোনো এমএল অনুশীলনের অনুপস্থিতি রয়েছে। শেষ স্তরে, তাদের কাছে MLOps প্রক্রিয়াগুলির অটোমেশন রয়েছে। মাঝখানে সবসময় ভিন্ন কিছু থাকে যা ক্রমবর্ধমান প্রক্রিয়া অটোমেশনের সাথে সম্পর্কিত। Azure প্রশিক্ষণ প্রক্রিয়ার এই অটোমেশন এবং তারপর মডেল স্থাপনা আছে।
আপনি কিভাবে MLOps ধারণার সাথে যুক্ত সমস্ত প্রক্রিয়া বর্ণনা করবেন? আশ্চর্যজনকভাবে, তিন জার্মান - নিবন্ধের লেখক "
এটি ভীতিকর হতে পারে কারণ এতে একে অপরের সাথে মিথস্ক্রিয়াকারী অনেক উপাদান রয়েছে। যাইহোক, উপরে উল্লিখিত পরিপক্কতা স্তরের বৈশিষ্ট্যগুলির অনেকগুলি এতে পাওয়া যাবে। অন্তত স্বয়ংক্রিয় পাইপলাইন, সিআই/সিডি, মনিটরিং, মডেল রেজিস্ট্রি, ওয়ার্কফ্লো অর্কেস্ট্রেশন এবং পরিবেশন উপাদান।
আসুন এই চিত্রটি আলোচনা করি এবং প্রতিটি সম্পর্কে আরও বিস্তারিতভাবে কথা বলি।
স্কিমের প্রধান অংশগুলি হল অনুভূমিক ব্লক, যার মধ্যে MLOps-এর পদ্ধতিগত দিকগুলি বর্ণনা করা হয়েছে (এগুলিকে A, B, C, এবং D অক্ষর দেওয়া হয়েছে)। তাদের প্রত্যেকটি কোম্পানির এমএল পরিষেবাগুলির মসৃণ অপারেশন নিশ্চিত করার কাঠামোর মধ্যে নির্দিষ্ট কাজগুলি সমাধান করার জন্য ডিজাইন করা হয়েছে। স্কিমটি বোঝার সুবিধার জন্য, অর্ডারের বাইরে শুরু করা ভাল।
যদি একটি কোম্পানির এমএল পরিষেবা থাকে, কর্মচারীরা জুপিটারে কাজ করে। অনেক কোম্পানিতে, এই টুল যেখানে সমস্ত ML উন্নয়ন প্রক্রিয়া কেন্দ্রীভূত হয়। MLOps অনুশীলনগুলি বাস্তবায়নের প্রয়োজন হয় এমন বেশিরভাগ কাজ এখানেই শুরু হয়।
আসুন একটি উদাহরণ বিবেচনা করা যাক। কোম্পানি A কে মেশিন লার্নিং ব্যবহার করে কিছু প্রক্রিয়ার একটি অংশ স্বয়ংক্রিয় করতে হবে (আসুন অনুমান করা যাক যে একটি সংশ্লিষ্ট বিভাগ এবং বিশেষজ্ঞ রয়েছে)। এটি অসম্ভাব্য যে কাজটি সমাধান করার উপায় আগে থেকেই জানা যায়। অতএব, নির্বাহকদের সমস্যা বিবৃতিটি অধ্যয়ন করতে হবে এবং এর উপলব্ধির সম্ভাব্য উপায়গুলি পরীক্ষা করতে হবে।
এটি করার জন্য, একজন এমএল ইঞ্জিনিয়ার/এমএল ডেভেলপার বিভিন্ন টাস্ক বাস্তবায়নের জন্য কোড লেখেন এবং টার্গেট মেট্রিক্স দ্বারা প্রাপ্ত ফলাফলের মূল্যায়ন করেন। এই সব প্রায় সবসময় Jupyter ল্যাবে করা হয়. এই ধরনের ফর্মে, ম্যানুয়ালি অনেক গুরুত্বপূর্ণ তথ্য ক্যাপচার করা এবং তারপর নিজেদের মধ্যে বাস্তবায়ন তুলনা করা প্রয়োজন।
এই ধরনের কার্যকলাপ পরীক্ষা বলা হয়. এর অর্থ হল একটি কার্যকরী এমএল মডেল পাওয়া, যা প্রাসঙ্গিক সমস্যা সমাধানের জন্য আরও ব্যবহার করা যেতে পারে।
ডায়াগ্রামে দেখানো ব্লক সি এমএল পরীক্ষা চালানোর প্রক্রিয়া বর্ণনা করে।
এমএল ডেভেলপমেন্টের অনেক সিদ্ধান্ত কোম্পানিতে উপলভ্য ডেটা বিশ্লেষণের উপর ভিত্তি করে নেওয়া হয়। নিম্ন-মানের ডেটা বা বিদ্যমান নেই এমন ডেটাতে লক্ষ্য মানের মেট্রিক্স সহ একটি মডেলকে প্রশিক্ষণ দেওয়া সম্ভব নয়।
অতএব, আমরা কী ডেটা পেয়েছি এবং এটি দিয়ে আমরা কী করতে পারি তা নির্ধারণ করা গুরুত্বপূর্ণ। এটি করার জন্য, উদাহরণস্বরূপ, আমরা করতে পারি:
শব্দার্থগত এবং কাঠামোগত বিশ্লেষণের সাথে মিলিত হলেই ডেটার আরও ভাল বোঝা পাওয়া যেতে পারে।
শুধুমাত্র কখনও কখনও, তবে, ডেটা প্রস্তুতি প্রকল্প দলের নিয়ন্ত্রণের মধ্যে থাকে। এই ক্ষেত্রে, অতিরিক্ত অসুবিধা নিশ্চিত করা হয়। কখনও কখনও এই পর্যায়ে, এটি পরিষ্কার হয়ে যায় যে প্রকল্পটি আরও বিকাশ করার কোন অর্থ নেই কারণ ডেটা কাজের জন্য উপযুক্ত নয়।
যখন উপলব্ধ ডেটাতে আস্থা থাকে, তখন প্রিপ্রসেসিং নিয়মগুলি সম্পর্কে চিন্তা করা প্রয়োজন। এমনকি যদি উপযুক্ত ডেটার একটি বড় সেট থাকে, তবে কোনও গ্যারান্টি নেই যে এতে বাদ দেওয়া, বিকৃত মান ইত্যাদি থাকবে না৷ "ইনপুট ডেটা গুণমান" শব্দটি এবং সুপরিচিত বাক্যাংশ "গারবেজ ইন - গারবেজ আউট" উল্লেখ করা উচিত। এখানে.
একটি মডেল যতই ভালো ব্যবহার করা হোক না কেন, এটি নিম্ন-মানের ডেটাতে খারাপ ফলাফল দেবে। বাস্তবে, একটি উচ্চ-মানের ডেটাসেট তৈরিতে অনেক প্রকল্প সংস্থান ব্যয় করা হয়।
পূর্ববর্তী পর্যায়ের পরে, পরীক্ষাগুলি পরিচালনা করার সময় প্রশিক্ষিত মডেলের মেট্রিক্স বিবেচনা করা বোধগম্য। বিবেচনাধীন ব্লকের কাঠামোর মধ্যে, পরীক্ষায় ML মডেলের প্রশিক্ষণ এবং বৈধতা লিঙ্ক করা থাকে।
পরীক্ষাটি প্রস্তুত ডেটাসেটে হাইপারপ্যারামিটারের নির্বাচিত সেট সহ মডেলের পছন্দসই সংস্করণকে প্রশিক্ষণের ক্লাসিক্যাল স্কিম নিয়ে গঠিত। এই উদ্দেশ্যে, ডেটাসেট নিজেই প্রশিক্ষণ, পরীক্ষা এবং বৈধতা নমুনায় বিভক্ত:
আপনি বৈধতা নমুনা সম্পর্কে আরও পড়তে পারেন
মডেল শেখার মেট্রিক্স ভাল হলে, মডেল কোড এবং নির্বাচিত প্যারামিটারগুলি একটি কর্পোরেট সংগ্রহস্থলে সংরক্ষণ করা হয়।
পরীক্ষা-নিরীক্ষা প্রক্রিয়ার মৌলিক লক্ষ্য হল মডেল ইঞ্জিনিয়ারিং, যা সেরা অ্যালগরিদম নির্বাচন এবং সেরা হাইপারপ্যারামিটার টিউনিং নির্বাচনকে বোঝায়।
পরীক্ষা চালানোর অসুবিধা হল যে বিকাশকারীকে এমএল-মডেল অপারেশন পরামিতিগুলির অনেকগুলি সমন্বয় পরীক্ষা করতে হবে। এবং আমরা ব্যবহৃত গাণিতিক যন্ত্রপাতির বিভিন্ন রূপের কথা বলছি না।
সাধারণভাবে, কাজ লাগে। এবং মডেল পরামিতিগুলির সংমিশ্রণের কাঠামোর মধ্যে পছন্দসই মেট্রিকগুলি অর্জন না হলে কী করবেন?
যদি এমএল-মডেল অপারেশনের কাঙ্খিত মেট্রিকগুলি অর্জন করা না যায়, আপনি নতুন বৈশিষ্ট্য সহ ডেটাসেট অবজেক্টের বৈশিষ্ট্য বর্ণনা প্রসারিত করার চেষ্টা করতে পারেন। তাদের কারণে, মডেলের প্রসঙ্গ প্রসারিত হবে, এবং সেইজন্য, পছন্দসই মেট্রিক্স উন্নত হতে পারে।
নতুন বৈশিষ্ট্য অন্তর্ভুক্ত হতে পারে:
চলুন ফিচার ইঞ্জিনিয়ারিং এর সাথে সম্পর্কিত চিত্রটির অংশটি দেখি।
ব্লক B1 এর লক্ষ্য হল উপলব্ধ উৎস ডেটা রূপান্তরিত করার জন্য প্রয়োজনীয়তার একটি সেট তৈরি করা এবং তাদের থেকে বৈশিষ্ট্যগুলি প্রাপ্ত করা। উপাদানগুলির গণনা নিজেই এমএল বিকাশকারী দ্বারা প্রবেশ করা "সূত্র" অনুসারে এই খুব প্রাক-প্রসেস করা এবং পরিষ্কার করা ডেটা থেকে সঞ্চালিত হয়।
এটা বলা অপরিহার্য যে বৈশিষ্ট্যগুলির সাথে কাজ করা পুনরাবৃত্তিমূলক। বৈশিষ্ট্যগুলির একটি সেট প্রয়োগ করলে, একটি নতুন ধারণা মাথায় আসতে পারে, অন্য বৈশিষ্ট্যগুলির একটি সেটে উপলব্ধি করা যেতে পারে, এবং তাই, বিজ্ঞাপন অসীম। এটি একটি ফিডব্যাক লুপ হিসাবে ডায়াগ্রামে স্পষ্টভাবে দেখানো হয়েছে।
ব্লক B2 ডেটাতে নতুন বৈশিষ্ট্য যোগ করার তাৎক্ষণিক প্রক্রিয়া বর্ণনা করে।
ডেটা উত্সগুলির সাথে সংযোগ করা এবং পুনরুদ্ধার করা প্রযুক্তিগত ক্রিয়াকলাপ যা বেশ জটিল হতে পারে। ব্যাখ্যার সরলতার জন্য, আমি অনুমান করব যে এই উত্সগুলি থেকে ডেটা আনলোড করার জন্য দলটির কাছে অ্যাক্সেস এবং সরঞ্জাম রয়েছে এমন বেশ কয়েকটি উত্স রয়েছে (অন্তত পাইথন স্ক্রিপ্টগুলি)।
ডেটা পরিষ্কার এবং রূপান্তর। এই পর্যায়টি পরীক্ষা-নিরীক্ষার ব্লকের (C)- ডেটা প্রস্তুতির প্রায় অনুরূপ ধাপটি পায়। ইতিমধ্যেই প্রথম পরীক্ষা-নিরীক্ষার সেটে, এমএল মডেলগুলিকে প্রশিক্ষণের জন্য কোন ডেটা এবং কোন বিন্যাসে প্রয়োজন তা বোঝা যায়। যা অবশিষ্ট থাকে তা হল সঠিকভাবে নতুন বৈশিষ্ট্য তৈরি এবং পরীক্ষা করা, তবে এই উদ্দেশ্যে ডেটা প্রস্তুতির প্রক্রিয়া যতটা সম্ভব স্বয়ংক্রিয় হওয়া উচিত।
নতুন বৈশিষ্ট্যের গণনা। উপরে উল্লিখিত হিসাবে, এই ক্রিয়াগুলি কেবলমাত্র একটি ডেটা টিপলের কয়েকটি উপাদানকে রূপান্তর করতে পারে। আরেকটি বিকল্প হল একই ডেটা টিপলে একটি একক বৈশিষ্ট্য যুক্ত করার জন্য একটি পৃথক বড় প্রক্রিয়াকরণ পাইপলাইন চালানো। যেভাবেই হোক, ক্রমানুসারে সম্পাদিত কর্মের একটি সেট রয়েছে।
ফলাফল যোগ করা হচ্ছে। পূর্ববর্তী কর্মের ফলাফল ডেটাসেটে যোগ করা হয়। প্রায়শই, ডেটাবেস লোড কমাতে ব্যাচের ডেটাসেটে বৈশিষ্ট্য যুক্ত করা হয়। তবে কখনও কখনও ব্যবসায়িক কাজগুলি সম্পাদনের গতি বাড়ানোর জন্য এটি ফ্লাইতে (স্ট্রিমিং) করা প্রয়োজন।
প্রাপ্ত বৈশিষ্ট্যগুলি যথাসম্ভব দক্ষতার সাথে ব্যবহার করা অপরিহার্য: কোম্পানির অন্যান্য ML বিকাশকারীদের কাজে সেগুলি সংরক্ষণ করুন এবং পুনরায় ব্যবহার করুন৷ এই উদ্দেশ্যে স্কিমের একটি ফিচার স্টোর রয়েছে৷ এটি কোম্পানির অভ্যন্তরে পাওয়া উচিত, আলাদাভাবে প্রশাসিত হওয়া উচিত এবং এতে থাকা সমস্ত বৈশিষ্ট্যের সংস্করণ করা উচিত। ফিচার স্টোরের 2টি অংশ রয়েছে: অনলাইন (স্ট্রিমিং স্ক্রিপ্টের জন্য) এবং অফলাইন (ব্যাচ স্ক্রিপ্টের জন্য)।
নিবন্ধের শুরুতে, আমি ইঙ্গিত দিয়েছিলাম যে ML সিস্টেম দ্বারা আমি একটি তথ্য ব্যবস্থাকে বোঝায়, যার এক বা একাধিক উপাদানে একটি প্রশিক্ষিত মডেল রয়েছে যা সামগ্রিক ব্যবসায়িক যুক্তির কিছু অংশ সম্পাদন করে। উন্নয়নের কারণে এমএল মডেলটি যত ভাল, তার অপারেশনের প্রভাব তত বেশি। একটি প্রশিক্ষিত মডেল অনুরোধের আগত প্রবাহ প্রক্রিয়া করে এবং প্রতিক্রিয়া হিসাবে কিছু ভবিষ্যদ্বাণী প্রদান করে, এইভাবে বিশ্লেষণ বা সিদ্ধান্ত গ্রহণের প্রক্রিয়ার কিছু অংশ স্বয়ংক্রিয় করে।
ভবিষ্যদ্বাণী তৈরি করতে একটি মডেল ব্যবহার করার প্রক্রিয়াটিকে অনুমান বলা হয়, এবং একটি মডেলকে প্রশিক্ষণ দেওয়াকে প্রশিক্ষণ বলা হয়। 2 এর মধ্যে পার্থক্যের একটি স্পষ্ট ব্যাখ্যা গার্টনার থেকে ধার করা যেতে পারে। এখানে, আমি বিড়ালদের উপর অনুশীলন করব।
একটি উত্পাদন এমএল সিস্টেমের দক্ষ অপারেশনের জন্য, মডেলের অনুমান মেট্রিক্সের উপর নজর রাখা গুরুত্বপূর্ণ। যত তাড়াতাড়ি তারা ড্রপ শুরু, মডেল হয় পুনরায় প্রশিক্ষণ বা একটি নতুন সঙ্গে প্রতিস্থাপিত করা উচিত. প্রায়শই, এটি ইনপুট ডেটা (ডেটা ড্রিফ্ট) পরিবর্তনের কারণে ঘটে। উদাহরণস্বরূপ, একটি ব্যবসায়িক সমস্যা রয়েছে যেখানে মডেল ফটোতে কাপকেক চিনতে পারে এবং এটি ইনপুট হিসাবে দেওয়া হয়েছে। উদাহরণে চিহুয়াহুয়া কুকুর ভারসাম্যের জন্য:
মূল ডেটাসেটের মডেল চিহুয়াহুয়া কুকুর সম্পর্কে কিছুই জানে না, তাই এটি ভুল ভবিষ্যদ্বাণী করে। সুতরাং, ডেটাসেট পরিবর্তন করা এবং নতুন পরীক্ষা-নিরীক্ষা করা প্রয়োজন। যত তাড়াতাড়ি সম্ভব নতুন মডেল উত্পাদন করা উচিত. কেউ চিহুয়াহুয়া কুকুরের ছবি আপলোড করতে ব্যবহারকারীদের নিষেধ করে না, তবে তারা ভুল ফলাফল পাবে।
এখন আরো বাস্তব বিশ্বের উদাহরণ. আসুন একটি মার্কেটপ্লেসের জন্য একটি সুপারিশ ব্যবস্থার বিকাশ বিবেচনা করি।
ব্যবহারকারীর ক্রয় ইতিহাস, অনুরূপ ব্যবহারকারীদের কেনাকাটা এবং অন্যান্য পরামিতির উপর ভিত্তি করে, একটি মডেল বা মডেলের সংমিশ্রণ সুপারিশ সহ একটি ব্লক তৈরি করে। এটিতে এমন পণ্য রয়েছে যার ক্রয়ের আয় নিয়মিতভাবে গণনা করা হয় এবং ট্র্যাক করা হয়।
কিছু ঘটে, এবং গ্রাহকদের চাহিদা পরিবর্তিত হয়। ফলস্বরূপ, তাদের সুপারিশগুলি আর প্রাসঙ্গিক নয়। প্রস্তাবিত পণ্যের চাহিদা কমে গেছে। এই সব রাজস্ব হ্রাস বাড়ে.
পরবর্তী ম্যানেজাররা চিৎকার করে এবং আগামীকালের মধ্যে সবকিছু পুনরুদ্ধার করার দাবি করে, যার ফলে কিছুই হয় না। কেন? নতুন গ্রাহকের পছন্দের উপর পর্যাপ্ত ডেটা নেই, তাই আপনি একটি নতুন মডেলও তৈরি করতে পারবেন না। আপনি সুপারিশ তৈরির কিছু মৌলিক অ্যালগরিদম (আইটেম-ভিত্তিক সহযোগী ফিল্টারিং) নিতে পারেন এবং সেগুলিকে উত্পাদনে যুক্ত করতে পারেন। এইভাবে, সুপারিশগুলি একরকম কাজ করবে, কিন্তু এটি শুধুমাত্র একটি অস্থায়ী সমাধান।
আদর্শভাবে, প্রক্রিয়াটি এমনভাবে সেট আপ করা উচিত যাতে ম্যানেজারদের তা করতে না বলেই মেট্রিক্সের ভিত্তিতে বিভিন্ন মডেলের সাথে পুনরায় প্রশিক্ষণ বা পরীক্ষা করার প্রক্রিয়া শুরু হয়। এবং সর্বোত্তমটি শেষ পর্যন্ত বর্তমান উৎপাদনের প্রতিস্থাপন করবে। ডায়াগ্রামে, এটি স্বয়ংক্রিয় এমএল ওয়ার্কফ্লো পাইপলাইন (ব্লক ডি), যা কিছু অর্কেস্ট্রেশন টুলে ট্রিগার দ্বারা শুরু হয়।
এটি স্কিমের সবচেয়ে বেশি লোড করা বিভাগ। ব্লক ডি এর অপারেশনে বেশ কয়েকটি মূল তৃতীয় পক্ষের উপাদান জড়িত:
ব্লকের গঠন নিজেই পরীক্ষা এবং বৈশিষ্ট্য উন্নয়ন (B2) ব্লকের পর্যায়গুলিকে একত্রিত করে। এটি আশ্চর্যজনক নয়, বিবেচনা করে যে এইগুলি এমন প্রক্রিয়া যা স্বয়ংক্রিয় হওয়া দরকার। প্রধান পার্থক্য শেষ 2 পর্যায়ে:
অবশিষ্ট ধাপগুলি উপরে বর্ণিতগুলির সাথে অভিন্ন৷
আলাদাভাবে, আমি পরিষেবা নিদর্শনগুলি উল্লেখ করতে চাই যা অর্কেস্ট্রেটর দ্বারা মডেল পুনঃপ্রশিক্ষণ পাইপলাইনগুলি চালানোর জন্য প্রয়োজন৷ এটি সেই কোড যা সংগ্রহস্থলে সংরক্ষণ করা হয় এবং নির্বাচিত সার্ভারে চলে। এটি সফ্টওয়্যার বিকাশের সমস্ত নিয়ম অনুসরণ করে সংস্করণ এবং আপগ্রেড করা হয়েছে। এই কোড মডেল পুনঃপ্রশিক্ষণ পাইপলাইন প্রয়োগ করে, এবং ফলাফল তার সঠিকতার উপর নির্ভর করে।
প্রায়শই নয়, কোডের মধ্যে বিভিন্ন এমএল সরঞ্জাম চালিত হয়, যার মধ্যে পাইপলাইনগুলির পদক্ষেপগুলি সম্পাদন করা হয়, উদাহরণস্বরূপ:
এখানে এটি লক্ষণীয় যে পরীক্ষাগুলি স্বয়ংক্রিয় করা সাধারণত অসম্ভব। অবশ্যই, প্রক্রিয়াটিতে AutoML ধারণা যোগ করা সম্ভব। যাইহোক, বর্তমানে কোন স্বীকৃত সমাধান নেই যা পরীক্ষার যেকোনো বিষয়ের জন্য একই ফলাফলের সাথে ব্যবহার করা যেতে পারে।
সাধারণ ক্ষেত্রে, AutoML এই মত কাজ করে:
অটোমেশন কিছুটা মোকাবিলা করা হয়েছে। এর পরে, আমাদের উত্পাদনে মডেলটির একটি নতুন সংস্করণ সরবরাহের ব্যবস্থা করতে হবে।
ভবিষ্যদ্বাণী তৈরি করতে ML মডেল প্রয়োজন। কিন্তু এমএল মডেল নিজেই একটি ফাইল, যা এত তাড়াতাড়ি তৈরি করা যায় না। আপনি প্রায়শই ইন্টারনেটে এমন একটি সমাধান খুঁজে পেতে পারেন: একটি দল FastAPI নেয় এবং মডেলের চারপাশে একটি পাইথন মোড়ক লিখে যাতে আপনি "পূর্বাভাসগুলি অনুসরণ করতে পারেন"৷
ML মডেল ফাইলটি প্রাপ্ত হওয়ার মুহূর্ত থেকে, বিভিন্ন উপায়ে জিনিসগুলি উন্মোচিত হতে পারে। দল যেতে পারে:
সমস্ত মডেলের জন্য এটি করা এবং ভবিষ্যতে সম্পূর্ণ কোড বেস বজায় রাখা একটি শ্রম-নিবিড় কাজ। এটি সহজ করার জন্য, বিশেষ পরিবেশন সরঞ্জাম উপস্থিত হয়েছে, যা 3টি নতুন সত্ত্বা চালু করেছে:
একটি ইনফরেন্স ইনস্ট্যান্স, বা ইনফারেন্স সার্ভিস হল একটি নির্দিষ্ট এমএল মডেল যা প্রশ্নগুলি গ্রহণ করতে এবং প্রতিক্রিয়া পূর্বাভাস তৈরি করতে প্রস্তুত। এই ধরনের একটি সত্তা প্রয়োজনীয় ML মডেল এবং এটি চালানোর জন্য প্রযুক্তিগত টুলিং সহ একটি ধারক সহ একটি Kubernetes ক্লাস্টারে একটি উপ প্রতিনিধিত্ব করতে পারে।
ইনফারেন্স সার্ভার হল ইনফারেন্স ইনস্ট্যান্স/পরিষেবাগুলির স্রষ্টা। ইনফারেন্স সার্ভারের অনেক বাস্তবায়ন রয়েছে। প্রতিটি নির্দিষ্ট ML ফ্রেমওয়ার্কের সাথে কাজ করতে পারে, তাদের মধ্যে প্রশিক্ষিত মডেলগুলিকে ইনপুট কোয়েরি প্রক্রিয়াকরণ এবং ভবিষ্যদ্বাণী তৈরি করার জন্য প্রস্তুত-টু-ব্যবহারের মডেলগুলিতে রূপান্তর করতে পারে।
সার্ভিং ইঞ্জিন প্রাথমিক ব্যবস্থাপনা কার্য সম্পাদন করে। এটি নির্ধারণ করে যে কোন ইনফারেন্স সার্ভার ব্যবহার করা হবে, ফলাফলের ইনফারেন্স ইনস্ট্যান্সের কত কপি শুরু করা উচিত এবং কীভাবে সেগুলি স্কেল করা যায়।
বিবেচনাধীন স্কিমটিতে, মডেল পরিবেশনকারী উপাদানগুলির এমন কোন বিশদ বিবরণ নেই, তবে অনুরূপ দিকগুলিকে রূপরেখা দেওয়া হয়েছে:
সার্ভিংয়ের জন্য একটি সম্পূর্ণ স্ট্যাকের উদাহরণের জন্য, আমরা সেলডন থেকে স্ট্যাকটি উল্লেখ করতে পারি:
এমনকি সার্ভিং বাস্তবায়নের জন্য একটি প্রমিত প্রোটোকল রয়েছে, যার জন্য সমর্থন এই ধরনের সমস্ত সরঞ্জামগুলিতে বাস্তবিক বাধ্যতামূলক। এটিকে V2 ইনফারেন্স প্রোটোকল বলা হয় এবং এটি বেশ কয়েকটি বিশিষ্ট মার্কেট প্লেয়ার দ্বারা তৈরি করা হয়েছে - KServe, Seldon, এবং Nvidia Triton।
বিভিন্ন নিবন্ধে, আপনি একক সত্তা হিসাবে পরিবেশন এবং স্থাপনার জন্য সরঞ্জামগুলির উল্লেখ পেতে পারেন। যাইহোক, উভয়ের উদ্দেশ্যের পার্থক্য বোঝা অপরিহার্য। এটি একটি বিতর্কিত সমস্যা, কিন্তু এই নিবন্ধটি এটি এভাবে রাখবে:
মডেল স্থাপনের জন্য অনেক কৌশল ব্যবহার করা যেতে পারে , কিন্তু এগুলি ML-নির্দিষ্ট নয়। যাইহোক, সেলডনের প্রদত্ত সংস্করণটি বেশ কয়েকটি কৌশল সমর্থন করে, তাই আপনি কেবল এই স্ট্যাকটি নির্বাচন করতে পারেন এবং সবকিছু কীভাবে কাজ করে তা উপভোগ করতে পারেন।
মনে রাখবেন যে মডেল কর্মক্ষমতা মেট্রিক্স ট্র্যাক করা আবশ্যক. অন্যথায়, আপনি সময়মতো সমস্যার সমাধান করতে পারবেন না। ঠিক কিভাবে মেট্রিক্স ট্র্যাক করতে হবে তা বড় প্রশ্ন। Arize AI এটির উপর একটি সম্পূর্ণ ব্যবসা তৈরি করেছে, কিন্তু কেউ Grafana এবং VictoriaMetrics বাতিল করেনি।
উপরে লেখা সবকিছু দেওয়া, এটা দেখা যাচ্ছে যে ML কমান্ড:
এটি ব্যয়বহুল এবং শুধুমাত্র কখনও কখনও ন্যায়সঙ্গত দেখায়। অতএব, যৌক্তিক লক্ষ্য নির্ধারণের জন্য দায়ী ডায়াগ্রামে একটি পৃথক MLOps প্রকল্প সূচনা (A) ব্লক রয়েছে।
আইটি পরিচালকের যুক্তির একটি উদাহরণ এখানে চিন্তা করার উপায় প্রদর্শন করতে পারে। একজন অনুপ্রাণিত প্রকল্প ব্যবস্থাপক তার কাছে আসেন এবং একটি এমএল সিস্টেম তৈরির জন্য একটি নতুন প্ল্যাটফর্ম ইনস্টলেশনের জন্য জিজ্ঞাসা করেন। যদি উভয়ই কোম্পানির সর্বোত্তম স্বার্থে কাজ করে তবে আইটি পরিচালকের কাছ থেকে স্পষ্ট প্রশ্নগুলি অনুসরণ করা হবে:
আইটি ডিরেক্টরকে বিশ্ববিদ্যালয়ে শিক্ষক হিসেবে নামিয়ে দিলেও কোম্পানির টাকা বাঁচবে। যদি সমস্ত প্রশ্নের উত্তর দেওয়া হয়, তাহলে একটি এমএল সিস্টেমের জন্য একটি বাস্তব প্রয়োজন আছে।
সমস্যার উপর নির্ভর করে। আপনার যদি এককালীন সমাধানের প্রয়োজন হয়, উদাহরণস্বরূপ, PoC (প্রুফ অফ কনসেপ্ট), আপনার MLOps এর প্রয়োজন নেই। যদি অনেক আগত অনুরোধ প্রক্রিয়া করা অপরিহার্য হয়, তাহলে MLOps প্রয়োজন। সংক্ষেপে, পদ্ধতিটি যে কোনও কর্পোরেট প্রক্রিয়াকে অপ্টিমাইজ করার অনুরূপ।
ব্যবস্থাপনায় MLOps-এর প্রয়োজনীয়তাকে ন্যায্যতা দেওয়ার জন্য, আপনাকে প্রশ্নগুলির উত্তর প্রস্তুত করতে হবে:
এর পরের কাজটি হল আইটি ডিরেক্টরের পরীক্ষা পুনরায় নেওয়া।
চ্যালেঞ্জগুলি অব্যাহত রয়েছে কারণ দলটিকে অবশ্যই তাদের কাজের প্রক্রিয়া এবং প্রযুক্তি স্ট্যাক পরিবর্তন করার প্রয়োজনীয়তার বিষয়ে নিশ্চিত হতে হবে। কখনও কখনও, এটি একটি বাজেটের জন্য ব্যবস্থাপনা জিজ্ঞাসা করার চেয়ে আরও কঠিন।
দলকে বোঝানোর জন্য, প্রশ্নগুলির উত্তর প্রস্তুত করা মূল্যবান:
আপনি দেখতে পাচ্ছেন, এই প্রক্রিয়াটি সহজ নয়।
আমি এখানে MLOps স্কিমের বিস্তারিত অধ্যয়ন করেছি। যাইহোক, এগুলি শুধুমাত্র তাত্ত্বিক দিক। ব্যবহারিক বাস্তবায়ন সবসময় অতিরিক্ত বিবরণ প্রকাশ করে যা অনেক কিছু পরিবর্তন করতে পারে।
পরবর্তী নিবন্ধে, আমি আলোচনা করব:
আপনার মনোযোগের জন্য আপনাকে ধন্যবাদ!