যারা মেশিন লার্নিং ডেভেলপমেন্টের চেষ্টা করেছে তারা সবাই বুঝতে পারে এটা কতটা কঠিন। সফ্টওয়্যার ডেভেলপমেন্টে স্ট্যান্ডার্ড সমস্যাগুলি ছাড়াও, মেশিন লার্নিং (এমএল) ডেভেলপমেন্ট অনেকগুলি অতিরিক্ত বাধা প্রবর্তন করে।
মডেল প্রশিক্ষণের মাধ্যমে ডেটা প্রস্তুতি থেকে শুরু করে এমএল জীবনচক্রের প্রতিটি পর্যায়ে সাহায্য করার জন্য শত শত ওপেন সোর্স টুল উপলব্ধ।
প্রথাগত সফ্টওয়্যার ডেভেলপমেন্টের বিপরীতে, যখন দলগুলি প্রতিটি ধাপের জন্য একটি টুল বেছে নেয়, ML এর সাথে আপনি সাধারণত প্রতিটি উপলব্ধ টুল (যেমন, অ্যালগরিদম) অন্বেষণ করতে চান যে এটি ফলাফলের উন্নতি করে কিনা।
ফলস্বরূপ, এমএল ডেভেলপারদের অবশ্যই শত শত লাইব্রেরি ব্যবহার এবং উত্পাদন করতে হবে।
মেশিন লার্নিং অ্যালগরিদমগুলিতে হাজার হাজার কাস্টমাইজযোগ্য প্যারামিটার রয়েছে এবং আপনি একা বা একটি দলে কাজ করুন না কেন, একটি মডেল তৈরি করতে প্রতিটি পরীক্ষায় কোন প্যারামিটার, কোড এবং ডেটা এসেছে তা সনাক্ত করা কঠিন।
যথাযথ মনিটরিং ছাড়া, দলগুলি প্রায়ই একই কোড আবার কাজ করার জন্য লড়াই করে। আপনি একজন ডেটা সায়েন্টিস্ট হোন না কেন প্রোডাকশন ব্যবহারের জন্য আপনার ট্রেনিং কোড একজন প্রকৌশলীর কাছে হস্তান্তর করছেন, অথবা আপনি কোনো সমস্যা নির্ণয় করার জন্য আপনার আগের কাজে ফিরে যাচ্ছেন, এমএল ওয়ার্কফ্লো-এর পদক্ষেপগুলি পিছিয়ে নেওয়া অত্যন্ত গুরুত্বপূর্ণ।
একটি মডেলকে উৎপাদনে স্থানান্তর করা কঠিন হতে পারে কারণ অনেক স্থাপনার পদ্ধতি এবং পরিবেশ ব্যবহার করা আবশ্যক (যেমন, REST পরিবেশন, ব্যাচ অনুমান, বা মোবাইল অ্যাপ)। যেকোন লাইব্রেরি থেকে এই টুলগুলির যেকোনো একটিতে মডেলগুলি সরানোর জন্য কোনও সাধারণ পদ্ধতি নেই এবং এইভাবে প্রতিটি নতুন স্থাপনা একটি ঝুঁকির পরিচয় দেয়।
এই সমস্যাগুলির কারণে, এটা স্পষ্ট যে এমএল বিকাশকে স্থিতিশীল, অনুমানযোগ্য এবং ঐতিহ্যগত সফ্টওয়্যার বিকাশ হিসাবে ব্যাপকভাবে ব্যবহৃত হওয়ার জন্য উল্লেখযোগ্যভাবে উন্নতি করতে হবে।
এমএল চ্যালেঞ্জ
- বিভিন্ন সরঞ্জামের আধিক্য রয়েছে। মেশিন লার্নিং লাইফসাইকেলের প্রতিটি ধাপে সাহায্য করার জন্য শত শত সফ্টওয়্যার সমাধান পাওয়া যায়, ডেটা প্রস্তুতি থেকে মডেল প্রশিক্ষণ পর্যন্ত। উপরন্তু, প্রথাগত সফ্টওয়্যার বিকাশের বিপরীতে, যখন দলগুলি প্রতিটি ধাপের জন্য একটি টুল বেছে নেয়, মেশিন লার্নিং (ML), আপনি প্রায়শই প্রতিটি উপলব্ধ টুল (যেমন, অ্যালগরিদম) অন্বেষণ করতে চান যে এটি ফলাফলগুলিকে উন্নত করে কিনা। ফলস্বরূপ, এমএল ডেভেলপারদের অবশ্যই শত শত লাইব্রেরি ব্যবহার এবং উত্পাদন করতে হবে।
- পরীক্ষার ট্র্যাক রাখা কঠিন। মেশিন লার্নিং অ্যালগরিদমগুলিতে হাজার হাজার কাস্টমাইজযোগ্য প্যারামিটার রয়েছে এবং আপনি একা বা একটি দলে কাজ করুন না কেন, একটি মডেল তৈরি করতে প্রতিটি পরীক্ষায় কোন প্যারামিটার, কোড এবং ডেটা এসেছে তা সনাক্ত করা কঠিন।
- মেশিন লার্নিং বাস্তবায়ন করা কঠিন। একটি মডেলকে উৎপাদনে স্থানান্তর করা কঠিন হতে পারে কারণ অনেক স্থাপনার পদ্ধতি এবং পরিবেশ ব্যবহার করা আবশ্যক (যেমন, REST পরিবেশন, ব্যাচ অনুমান, বা মোবাইল অ্যাপ)। যেকোন লাইব্রেরি থেকে এই টুলগুলির যেকোনো একটিতে মডেল সরানোর জন্য কোন সাধারণ পদ্ধতি নেই। সুতরাং, প্রতিটি নতুন স্থাপনা একটি ঝুঁকির পরিচয় দেয়।
এমএলফ্লো?
MLflow হল মেশিন লার্নিং লাইফ সাইকেলের জন্য একটি ওপেন সোর্স প্ল্যাটফর্ম। এটি একটি ওপেন ইন্টারফেস ধারণার উপর ভিত্তি করে তৈরি করা হয়েছে, অনেকগুলি প্রয়োজনীয় বিমূর্ততা প্রস্তাব করে যা বর্তমান অবকাঠামো এবং মেশিন লার্নিং অ্যালগরিদমগুলিকে সহজেই সিস্টেমের সাথে একত্রিত করার অনুমতি দেয়।
এটি বোঝায় যে আপনি যদি একজন ডেভেলপার হন যিনি MLflow ব্যবহার করতে চান কিন্তু একটি অসমর্থিত ফ্রেমওয়ার্ক ব্যবহার করছেন, ওপেন ইন্টারফেস ডিজাইন সেই ফ্রেমওয়ার্ককে একীভূত করা এবং প্ল্যাটফর্মের সাথে কাজ শুরু করা তুলনামূলকভাবে সহজ করে তোলে। অনুশীলনে, এটি বোঝায় যে এমএলফ্লো যে কোনও সাথে কাজ করার উদ্দেশ্যে মেশিন লার্নিং লাইব্রেরি বা ভাষা।
অধিকন্তু, MLflow পুনরাবৃত্তিযোগ্যতাকে উৎসাহিত করে, যার অর্থ হল একই প্রশিক্ষণ বা উৎপাদন মেশিন লার্নিং কোড একই ফলাফলের সাথে পরিবেশ থেকে স্বাধীনভাবে চালানোর উদ্দেশ্যে, তা মেঘে, স্থানীয় ওয়ার্কস্টেশনে বা একটি নোটবুকে।
অবশেষে, MLflow স্কেলেবিলিটির জন্য তৈরি করা হয়েছে, তাই এটি ডেটা বিজ্ঞানীদের একটি ছোট দল এবং শত শত মেশিন লার্নিং অনুশীলনকারীদের সাথে একটি বড় কোম্পানি ব্যবহার করতে পারে।
MLflow যেকোনো মেশিন লার্নিং লাইব্রেরি, অ্যালগরিদম, ডিপ্লয়মেন্ট টুল বা ভাষার সাথে সামঞ্জস্যপূর্ণ। এছাড়াও এটির নিম্নলিখিত সুবিধা রয়েছে:
- যেকোনো ক্লাউড পরিষেবার সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।
- অ্যাপাচি স্পার্কের সাহায্যে বিশাল ডেটার স্কেল।
- MLflow Apache Spark সহ বিভিন্ন ওপেন সোর্স মেশিন লার্নিং ফ্রেমওয়ার্কের সাথে সামঞ্জস্যপূর্ণ। TensorFlow, এবং SciKit- শিখুন.
আপনার যদি ইতিমধ্যে কোড থাকে তবে এটির সাথে MLflow ব্যবহার করা যেতে পারে। আপনি এমনকি আপনার ফ্রেমওয়ার্ক এবং মডেলগুলি এন্টারপ্রাইজগুলির মধ্যে ভাগ করতে পারেন কারণ এটি ওপেন সোর্স.
MLflow উপাদান: তারা কিভাবে কাজ করে?
এমএলফ্লো হল এমএল লাইফসাইকেল পরিচালনার জন্য একটি বিনামূল্যের এবং ওপেন সোর্স প্ল্যাটফর্ম, যার মধ্যে রয়েছে পরীক্ষা, পুনরুৎপাদনযোগ্যতা, স্থাপনা এবং একটি একক মডেল রেজিস্ট্রি। বর্তমানে, MLflow এর চারটি উপাদান রয়েছে:
1. MLflow ট্র্যাকিং
আমি MLflow ট্র্যাকিং দিয়ে শুরু করতে যাচ্ছি। MLflow একটি কেন্দ্রীভূত প্রশিক্ষণ মেটাডেটা ট্র্যাকিং সংগ্রহস্থলের সাথে সংযুক্ত বিভিন্ন প্রয়োজনীয় ধারণার সংগ্রহকে সমর্থন করে। প্রথম ধারণাটি হল সমালোচনামূলক হাইপারপ্যারামিটার বা কনফিগারেশন নবগুলির একটি সংগ্রহ যা মডেলের কর্মক্ষমতাকে প্রভাবিত করে। MLflow এর APIs এবং একটি কেন্দ্রীভূত ট্র্যাকিং পরিষেবা ব্যবহার করা এই সমস্ত সংরক্ষণ করতে পারে।
ব্যবহারকারীরা তাদের মেশিন লার্নিং মডেলের সাফল্যের অন্তর্দৃষ্টি পেতে পারফরম্যান্স ডেটা রেকর্ড করতে পারে। অধিকন্তু, পুনরাবৃত্তিযোগ্যতার জন্য, MLflow ব্যবহারকারীদের নির্দিষ্ট সোর্স কোড লগ করার অনুমতি দেয় যা একটি মডেল তৈরি করতে ব্যবহৃত হয়েছিল সেইসাথে এর সংস্করণটি গিটের সাথে শক্তভাবে সংহত করে প্রতিটি মডেলকে একটি নির্দিষ্ট কমিট হ্যাশের সাথে বাঁধতে।
MLflow আর্টিফ্যাক্টগুলি লগ করতে ব্যবহার করা যেতে পারে, যেগুলি প্রশিক্ষণ, পরীক্ষার ডেটা এবং পুনরুত্পাদনযোগ্যতার জন্য নিজেরাই মডেল সহ যেকোন স্বেচ্ছাচারী ফাইল।
এর মানে হল যে আমি যদি একজন ডেভেলপার হয়ে থাকি যে শুধুমাত্র একটি মডেলকে প্রশিক্ষণ দিয়েছি, আমি এটিকে কেন্দ্রীভূত ট্র্যাকিং পরিষেবাতে চালিয়ে যেতে পারি এবং আমার একজন সহকর্মী এটিকে পরে লোড করতে পারেন এবং হয় প্রশিক্ষণ এবং পরীক্ষা চালিয়ে যেতে পারেন বা একটি নির্দিষ্ট প্রয়োজন মেটাতে সেই মডেলটি উত্পাদন করতে পারেন। .
আপনার মেশিন লার্নিং কোড কার্যকর করার সময় এবং ফলাফলগুলি দেখার পরে, ট্র্যাকিং হল একটি API যা আপনাকে প্যারামিটার, কোড সংস্করণ, মেট্রিক্স এবং আউটপুট ফাইলগুলি লগ করতে দেয়৷ এটি অন্যান্য ভাষার মধ্যে পাইথন, আর এবং জাভাতে লেখা। এটি একটি REST API হিসাবে অ্যাক্সেসযোগ্য, যা এটির উপরে অ্যাপ তৈরি করতে ব্যবহার করা যেতে পারে।
মুখ্য সুবিধা
- অনেক ডেভেলপার তাদের স্থানীয় পিসিতে MLflow ব্যবহার করে, যেখানে ব্যাকএন্ড এবং আর্টিফ্যাক্ট স্টোরেজ ডিস্কে একটি ডিরেক্টরি শেয়ার করে।
- অনেক ব্যবহারকারী তাদের স্থানীয় পিসিতে MLflow চালানোর জন্য SQLite, একটি SQLAlchemy-সামঞ্জস্যপূর্ণ ডাটাবেস নিয়োগ করে।
- MLflow এছাড়াও বিতরণ করা আর্কিটেকচার সমর্থন করে। ট্র্যাকিং সার্ভার, ব্যাকএন্ড স্টোর এবং আর্টিফ্যাক্ট স্টোর সবই এর মধ্যে বিভিন্ন সার্ভারে হোস্ট করা হয়।
- যদি রানটি একটি MLflow প্রকল্প দ্বারা শুরু করা হয়, গিট কমিট হ্যাশ ব্যবহার করা হয়েছিল। MLflow Python, R, Java, এবং REST APIগুলি চালানোর জন্য ডেটা লগ করতে ব্যবহার করা যেতে পারে।
আরও তথ্যের জন্য, আপনি অফিসিয়াল চেক আউট করতে পারেন ডকুমেন্টেশন.
2. MLFlow প্রকল্প
আমরা ট্র্যাকিং উপাদানগুলির মধ্য দিয়ে যাওয়ার পরে, আমি MLflow প্রকল্পগুলি সম্পর্কে কথা বলতে চাই, যেগুলি সম্পাদনের প্রসঙ্গ নির্বিশেষে মডেল প্রশিক্ষণ সেশনের জন্য একটি পুনরাবৃত্তিযোগ্য প্যাকেজিং কাঠামো।
ব্যবসাগুলি মেশিন লার্নিং প্রশিক্ষণ প্রযুক্তির বিস্তৃত পরিসর ব্যবহার করে, তবে তারা এই প্রশিক্ষণ সরঞ্জামগুলিকে বিভিন্ন প্রেক্ষাপটে ব্যবহার করে। উদাহরণস্বরূপ, তারা ক্লাউডে, স্থানীয় পিসিতে বা একটি নোটবুকে তাদের প্রশিক্ষণের কোড কার্যকর করতে পারে।
এটি সমস্যার দিকে নিয়ে যায় যে মেশিন লার্নিং ফলাফলগুলি প্রতিলিপি করা কঠিন। প্রায়শই, একই অভিন্ন প্রশিক্ষণ কোড দুটি পৃথক স্থানে কার্যকর করে না বা একই ফলাফল দেয় না।
MLflow দ্বারা প্রদত্ত সমাধান হল একটি স্বয়ংসম্পূর্ণ প্রশিক্ষণ কোড প্রকল্প সংজ্ঞা যাতে সমস্ত মেশিন লার্নিং ট্রেনিং কোড, সেইসাথে এর সংস্করণ লাইব্রেরি নির্ভরতা, সেটিংস এবং প্রশিক্ষণ এবং পরীক্ষার ডেটা অন্তর্ভুক্ত থাকে।
MLflow একটি মেশিন লার্নিং প্রশিক্ষণ প্রক্রিয়ার জন্য প্রয়োজনীয়তার পুরো সেটটি স্পষ্টভাবে বর্ণনা করে এক্সিকিউশন প্রসঙ্গ জুড়ে প্রজননযোগ্যতা নিশ্চিত করে। এটি সেই সমস্ত লাইব্রেরি ইনস্টল করে এবং কোডটি চলমান একই সিস্টেম স্থিতি সম্পন্ন করে এটি সম্পন্ন করে।
MLflow প্রকল্পটি একটি ডিরেক্টরি ছাড়া আর কিছুই নয়। এটি এমন একটি ডিরেক্টরি যা প্রশিক্ষণ কোড, লাইব্রেরি নির্ভরতা সংজ্ঞা এবং প্রশিক্ষণ সেশনের জন্য প্রয়োজনীয় অন্যান্য ডেটা, সেইসাথে এই ঐচ্ছিক কনফিগারেশন ফাইলটি অন্তর্ভুক্ত করে।
এই লাইব্রেরি প্রয়োজনীয়তা বিভিন্ন উপায়ে সংজ্ঞায়িত করা যেতে পারে। ব্যবহারকারীরা, উদাহরণস্বরূপ, তাদের প্রশিক্ষণ কোড লাইব্রেরির প্রয়োজনীয়তা তালিকাভুক্ত করার জন্য একটি YAML- ফরম্যাট করা anaconda পরিবেশের স্পেসিফিকেশন সরবরাহ করতে পারে। MLflow পাত্রের মধ্যে প্রশিক্ষণ কোড কার্যকর করবে। এই ধরনের ক্ষেত্রে, তারা একটি ডকার কন্টেইনারও অন্তর্ভুক্ত করতে পারে।
অবশেষে, এই প্রকল্পগুলি চালানোর জন্য MLflow-এর একটি কমান্ড-লাইন ইন্টারফেস (CLI) রয়েছে, সেইসাথে পাইথন এবং জাভা এপিআই। এই প্রকল্পগুলি ব্যবহারকারীর স্থানীয় সিস্টেমের পাশাপাশি বিভিন্ন দূরবর্তী সেটিংস যেমন Databricks কাজের সময়সূচী এবং Kubernetes-এ চালানো হতে পারে। MLflow প্রকল্পগুলি আপনাকে ডেটা সায়েন্স কোডকে পুনরাবৃত্তিযোগ্য এবং পুনঃব্যবহারযোগ্য পদ্ধতিতে প্যাকেজ করার অনুমতি দেয়, বেশিরভাগ মানগুলির উপর ভিত্তি করে।
প্রজেক্ট কম্পোনেন্টে একটি API এবং সেইসাথে প্রজেক্ট পরিচালনার জন্য কমান্ড-লাইন ইউটিলিটি অন্তর্ভুক্ত থাকে। এই ক্ষমতাগুলি গ্যারান্টি দেয় যে মেশিন লার্নিং প্রক্রিয়াগুলি গঠনের জন্য প্রকল্পগুলিকে একত্রে শৃঙ্খলিত করা যেতে পারে।
মুখ্য সুবিধা
- MLflow ডকার কন্টেইনার এনভায়রনমেন্ট, কন্ডা এনভায়রনমেন্ট এবং সিস্টেম এনভায়রনমেন্ট সহ প্রোজেক্ট এনভায়রনমেন্ট সমর্থন করে।
- যেকোন গিট রিপোজিটরি বা স্থানীয় ডিরেক্টরি একটি MLflow প্রকল্প হিসাবে বিবেচিত হতে পারে; গতানুগতিক; আপনি কোন শেল ব্যবহার করতে পারেন বা পাইথন স্ক্রিপ্ট একটি প্রকল্প এন্ট্রি পয়েন্ট হিসাবে ডিরেক্টরিতে.
- নন-পাইথন নির্ভরতা, যেমন জাভা লাইব্রেরি, ডকার কন্টেইনার ব্যবহার করে ক্যাপচার করা যেতে পারে।
- আপনি প্রজেক্টের রুট ডিরেক্টরিতে একটি প্রজেক্ট ফাইল যোগ করে একটি MLflow প্রজেক্টের উপর আরও বেশি নিয়ন্ত্রণ পেতে পারেন, যা YAML সিনট্যাক্সের একটি টেক্সট ফাইল।
আরও তথ্যের জন্য, আপনি অফিসিয়াল চেক আউট করতে পারেন ডকুমেন্টেশন.
3. MLflow মডেল
এখন, আমি MLflow মডেলগুলি নিয়ে আলোচনা করতে চাই, একটি সাধারণ-উদ্দেশ্য মডেল বিন্যাস যা বিস্তৃত উত্পাদন প্রসঙ্গে সমর্থন করে। এমএলফ্লো মডেলগুলির কারণটি এখন প্রকল্পগুলির জন্য মোটামুটি অনুরূপ।
আবার, আমরা দেখতে পাই যে মডেলগুলি বিস্তৃত পরিসরের সরঞ্জাম ব্যবহার করে তৈরি করা যেতে পারে, তবে প্রশিক্ষণের পরিবেশের বিপরীতে সেগুলিকে অনেক বড় পরিসরে তৈরি বা স্থাপন করা যেতে পারে।
এই সেটিংসের মধ্যে রয়েছে রিয়েল-টাইম পরিবেশনের জন্য টুল, যেমন Kubernetes বা Amazon SageMaker, পাশাপাশি স্ট্রিমিং এবং ব্যাচ স্কোরিং, যেমন স্পার্ক। তদ্ব্যতীত, কিছু ব্যবসা একটি প্রি-কনফিগার করা ক্লাউড ইন্সট্যান্সে চলমান একটি RESTful ওয়েব পরিষেবা হিসাবে মডেলগুলি স্থাপন করতে বেছে নিতে পারে।
একটি MLflow মডেল, একটি প্রকল্পের মত, একটি ডিরেক্টরি কাঠামো। এটিতে একটি কনফিগারেশন ফাইল এবং, এই সময়, প্রশিক্ষণ কোডের পরিবর্তে একটি ধারাবাহিক মডেল আর্টিফ্যাক্ট অন্তর্ভুক্ত রয়েছে। এটি একটি প্রকল্প হিসাবে পুনরাবৃত্তিযোগ্যতার জন্য নির্ভরতার এই সেটটিও অন্তর্ভুক্ত করে। এইবার, আমরা কনডা পরিবেশের প্রসঙ্গে মূল্যায়ন নির্ভরতাগুলি দেখব।
উপরন্তু, MLflow জনপ্রিয় ফ্রেমওয়ার্কের একটি পরিসর থেকে MLflow ফর্ম্যাটে মডেলগুলিকে সিরিয়ালাইজ করার জন্য মডেল প্রজন্মের সরঞ্জামগুলি অন্তর্ভুক্ত করে। পরিশেষে, MLflow কোনো MLflow মডেলকে বিভিন্ন পরিসেবাতে উৎপাদন ও সংযোগের জন্য স্থাপনা, API যোগ করে এবং এই APIগুলি পাইথন, জাভা, আর এবং একটি CLI বিন্যাসে অ্যাক্সেসযোগ্য।
মডেলগুলি প্যাকেজিং মডেলগুলির জন্য একটি আদর্শ কাঠামো সহ একটি উপাদান যা ডাউনস্ট্রিম সরঞ্জাম যেমন ইনফারেন্সিং সার্ভার বা ডেটাব্রিক্স ব্যাচ ইনফরেন্সিং প্ল্যাটফর্ম। উত্পাদনের জন্য একটি মডেল প্যাকেজ করার সময় এই উপাদানটি বেসপোক কোডের ঘন্টা বাঁচায়।
এমএলফ্লো মডেল হল "ফ্লেভার" নামে পরিচিত বিভিন্ন ফর্মে মেশিন লার্নিং মডেল প্যাক করার জন্য একটি স্ট্যান্ডার্ড। MLflow বিভিন্ন ধরণের মডেল স্থাপনে আপনাকে সাহায্য করার জন্য প্রচুর সরঞ্জাম সরবরাহ করে। প্রতিটি MLflow মডেলকে একটি ডিরেক্টরি হিসাবে রাখা হয় যাতে ইচ্ছামত ফাইল থাকে এবং সেই সাথে একটি ML মডেল বর্ণনাকারী ফাইল থাকে যার মধ্যে এটি ব্যবহার করা যেতে পারে এমন স্বাদগুলির একটি তালিকা রয়েছে৷
মুখ্য সুবিধা
- MLflow এর সমস্ত বিল্ট-ইন ডিপ্লয়মেন্ট টুল একাধিক "স্ট্যান্ডার্ড" ফ্লেভার অফার করে, যেমন একটি "পাইথন ফাংশন" ফ্লেভার যা ব্যাখ্যা করে কিভাবে মডেলটিকে পাইথন ফাংশন হিসেবে চালাতে হয়।
- প্রতিটি MLflow মডেলের মধ্যে একটি ডিরেক্টরি থাকে যাতে নির্বিচারে ফাইল থাকে, সেইসাথে ডিরেক্টরির মূলে একটি ML মডেল ফাইল থাকে যা মডেলের অসংখ্য স্বাদকে সংজ্ঞায়িত করে।
- একটি মডেল সংরক্ষণ করার সময়, MLflow আপনাকে একটি Conda এনভায়রনমেন্ট প্যারামিটার নির্দিষ্ট করতে দেয় যাতে মডেলের নির্ভরতা থাকে। যদি কোন কনডা পরিবেশ নির্দিষ্ট করা না থাকে, তাহলে মডেলের স্বাদের উপর ভিত্তি করে একটি ডিফল্ট পরিবেশ তৈরি করা হয়। এর পরে, কনডা পরিবেশ conda.yaml এ সংরক্ষণ করা হয়।
আরও তথ্যের জন্য, আপনি অফিসিয়াল চেক আউট করতে পারেন ডকুমেন্টেশন.
4. MLflow মডেল রেজিস্ট্রি
একটি মডেল রেজিস্ট্রি শেখা মেশিন লার্নিং (এমএল) মডেলগুলির জন্য একটি সংগ্রহস্থল। মডেল রেজিস্ট্রি API এবং একটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশন দ্বারা গঠিত যা একটি দল হিসাবে বিভিন্ন পর্যায়ে মডেলগুলি বজায় রাখতে ব্যবহৃত হয়। মডেল লাইনেজ, মডেল সংস্করণ, সহজ পর্যায় স্থানান্তর, এবং টীকা মডেল রেজিস্ট্রিতে উপলব্ধ ক্ষমতার কয়েকটি মাত্র।
একটি মডেল রেজিস্ট্রি, মডেলগুলি ছাড়াও, মডেলটি তৈরি করতে ব্যবহৃত ডেটা এবং প্রশিক্ষণের কাজগুলি সম্পর্কে তথ্য (মেটাডেটা) ধারণ করে। এমএল মডেলের জন্য বংশ তৈরি করতে এই প্রয়োজনীয় ইনপুটগুলির ট্র্যাক রাখা গুরুত্বপূর্ণ। এই বিষয়ে, একটি মডেল রেজিস্ট্রি প্রচলিত সফ্টওয়্যারের মতই কাজ করে ভর্সন নিয্ন্ত্র্ন সিস্টেম (যেমন, Git, SVN) এবং আর্টিফ্যাক্ট রিপোজিটরি (যেমন, আর্টিফ্যাক্টরি, PyPI)।
মডেল রেজিস্ট্রি হল একটি ফ্রেমওয়ার্ক যা ডেটা বিজ্ঞানী এবং মেশিন লার্নিং ইঞ্জিনিয়ারদের অন্যান্য দলের সাথে সহযোগিতার জন্য তাদের মডেলগুলি প্রকাশ, পরীক্ষা, নিরীক্ষণ, পরিচালনা এবং বিতরণ করতে দেয়। অগত্যা, মডেল রেজিস্ট্রি নিযুক্ত করা হয় একবার আপনি আপনার পরীক্ষার পর্যায়টি সম্পূর্ণ করে ফেলেন এবং আপনার ফলাফলগুলি টিম এবং স্টেকহোল্ডারদের সাথে শেয়ার করতে প্রস্তুত হন।
MLflow মডেল রেজিস্ট্রি একটি কেন্দ্রীয় অবস্থান থেকে আপনার মডেল এবং তাদের জীবনকাল পরিচালনা করার জন্য একটি API এবং একটি ব্যবহারকারী ইন্টারফেস প্রদান করে। মডেল বংশ, মডেল সংস্করণ, টীকা এবং পর্যায় রূপান্তর সবই রেজিস্ট্রির মাধ্যমে উপলব্ধ।
MLflow-এ, একটি নিবন্ধিত মডেল হল একটি অনন্য নাম এবং মেটাডেটা, মডেল সংস্করণ, ট্রানজিশনাল ফেজ এবং একটি মডেল বংশ। নিবন্ধিত মডেলে এক বা একাধিক মডেলের সংস্করণ পাওয়া যাবে। একটি নতুন মডেল রেজিস্ট্রিতে নিবন্ধিত হলে সংস্করণ 1 হিসাবে বিবেচিত হয়। নিম্নলিখিত সংস্করণটি একই নামের যেকোনো নতুন মডেলে যুক্ত করা হয়েছে।
আপনি যেকোন সময় যেকোন মডেল সংস্করণে একটি ধাপ বরাদ্দ করতে পারেন। যাইহোক, MLflow পর্যায়গুলির অধীনে পর্যায়গুলি বরাদ্দ করা আবশ্যক যেগুলি আনুষ্ঠানিকভাবে নির্দিষ্ট করা হয়েছে, যেমন স্টেজিং, উত্পাদন এবং সংরক্ষণাগার। একটি মডেল সংস্করণ এক পর্যায় থেকে অন্য রূপান্তরিত হতে পারে।
MLflow আপনাকে শীর্ষ-স্তরের মডেল এবং প্রতিটি নির্দিষ্ট সংস্করণ উভয়ই টীকা করতে মার্কডাউন ব্যবহার করতে দেয়। আপনি বর্ণনার পাশাপাশি অন্যান্য প্রাসঙ্গিক তথ্য অন্তর্ভুক্ত করতে পারেন, যেমন অ্যালগরিদম ব্যাখ্যা, পদ্ধতি এবং ব্যবহৃত ডেটাসেট।
মুখ্য সুবিধা
- আপনার নিজের MLflow সার্ভার হোস্ট করার সময় UI বা API-এর মাধ্যমে মডেল রেজিস্ট্রি অ্যাক্সেস করতে, আপনাকে অবশ্যই একটি ডাটাবেস-ব্যাকড ব্যাকএন্ড স্টোর ব্যবহার করতে হবে।
- মডেল রেজিস্ট্রি MLflow মডেল ফ্লেভার বা MLflow ক্লায়েন্ট ট্র্যাকিং API ইন্টারফেসের মাধ্যমেও অ্যাক্সেস করা যেতে পারে। আপনি, উদাহরণস্বরূপ, একটি MLflow পরীক্ষা চালানোর সময় বা আপনার সমস্ত পরীক্ষা চালানোর পরে একটি মডেল নিবন্ধন করতে পারেন।
- সবাই MLflow ব্যবহার করে তাদের মডেলদের প্রশিক্ষণ দেওয়া শুরু করবে না। ফলস্বরূপ, MLflow ব্যবহার করার আগে আপনার কিছু মডেল প্রশিক্ষিত থাকতে পারে। মডেলগুলিকে পুনরায় প্রশিক্ষণ দেওয়ার পরিবর্তে, আপনি কেবল মডেল রেজিস্ট্রির সাথে আপনার সঞ্চিত মডেলগুলি নিবন্ধন করতে চান৷
আরও তথ্যের জন্য, আপনি অফিসিয়াল চেক আউট করতে পারেন ডকুমেন্টেশন.
উপসংহার
MLflow একটি চমৎকার এবং ক্রমাগত ক্রমবর্ধমান ML জীবনচক্র টুল। আপনি আপনার বর্তমান সরঞ্জাম এবং প্ল্যাটফর্মের পাশাপাশি এটি নিয়োগ করতে পারেন।
এটি পাইথন, জাভা এবং আর সহ বেশ কয়েকটি প্রোগ্রামিং ভাষা সমর্থন করে। এর ব্যবহারকারী-বান্ধব ডিজাইনের জন্য আপনি দ্রুত ট্র্যাক, সংরক্ষণ এবং বিভিন্ন মডেল সংস্করণ তুলনা করতে পারেন।
MLflow একবার চেষ্টা করে দেখুন এবং আপনার অভিজ্ঞতা আমাদের জানান!
নির্দেশিকা সমন্ধে মতামত দিন