নেপচুনের সাথে আপনার মেশিন লার্নিং প্রকল্পের পরিবর্তনগুলি ট্র্যাক করা

উত্স নোড: 1216273

ভূমিকা

এমএল ইঞ্জিনিয়ার হিসাবে কাজ করা, এমন পরিস্থিতিতে হওয়া সাধারণ যেখানে আপনি একাধিক পুনরাবৃত্তি এবং হাইপারপ্যারামিটার টিউনিং করার পরে পছন্দসই মেট্রিক্স সহ একটি দুর্দান্ত মডেল তৈরি করতে ঘন্টা ব্যয় করেন তবে একই মডেলের সাথে একই ফলাফলে ফিরে যেতে পারবেন না শুধুমাত্র কারণ আপনি মিস করেছেন একটি ছোট হাইপারপ্যারামিটার রেকর্ড করুন।

এই ধরনের পরিস্থিতি থেকে একজনকে কী বাঁচাতে পারে তা হল একটি এমএল সমস্যা সমাধানের প্রক্রিয়ায় আপনি যে পরীক্ষাগুলি করেন তার একটি ট্র্যাক রাখা।

  • আপনি যদি কোনো এমএল প্রজেক্টে কাজ করে থাকেন, তাহলে আপনি জানেন যে সবচেয়ে চ্যালেঞ্জিং অংশ হল ভালো পারফরম্যান্সে পৌঁছানো - যা বিভিন্ন পরামিতি টুইকিং এবং সেগুলির প্রতিটি ট্র্যাক করার জন্য বেশ কয়েকটি পরীক্ষা চালানোর জন্য প্রয়োজনীয় করে তোলে।
  • আপনি অতীতে যে একটি ভাল মডেল পেয়েছেন তা খুঁজতে সময় নষ্ট করতে চান না - অতীতে আপনার করা সমস্ত পরীক্ষা-নিরীক্ষার একটি রেপো এটিকে ঝামেলামুক্ত করে তোলে।
  • শুধু আলফা এবং মডেল সঠিকতা একটি ছোট পরিবর্তন ছাদ স্পর্শ - আমাদের মডেলে আমরা যে ছোট পরিবর্তনগুলি করি এবং তাদের সম্পর্কিত মেট্রিকগুলি ক্যাপচার করা অনেক সময় সাশ্রয় করে৷
  • এক ছাদের নিচে আপনার সব পরীক্ষা - এক্সপেরিমেন্ট ট্র্যাকিং সমস্ত তথ্য এক ছাদের নিচে এনে আপনার করা বিভিন্ন রানের তুলনা করতে সাহায্য করে।

আমাদের কি শুধু মেশিন লার্নিং মডেল প্যারামিটার ট্র্যাক করা উচিত?

ঠিক আছে, না। আপনি যখন কোনো ML পরীক্ষা চালান, তখন আপনার আদর্শভাবে একাধিক সংখ্যক জিনিস ট্র্যাক করা উচিত পরীক্ষাগুলি পুনরুত্পাদন সক্ষম করতে এবং একটি অপ্টিমাইজড মডেলে পৌঁছাতে:

নেপচুন | এমএল মডেল প্যারামিটার
চিত্র 1
  • কোড: পরীক্ষা চালানোর জন্য ব্যবহৃত কোড
  • ডেটা: প্রশিক্ষণ এবং মূল্যায়নের জন্য ব্যবহৃত ডেটার সংস্করণ সংরক্ষণ করা
  • পরিবেশ: 'ডকারফাইল', 'requirements.txt' ইত্যাদির মতো পরিবেশ কনফিগারেশন ফাইল সংরক্ষণ করা।
  • পরামিতি: মডেলের জন্য ব্যবহৃত বিভিন্ন হাইপারপ্যারামিটার সংরক্ষণ করা হচ্ছে।
  • মেট্রিক্স: সমস্ত পরীক্ষামূলক রানের জন্য লগিং প্রশিক্ষণ এবং বৈধতা মেট্রিক্স।

 

কেন একটি এক্সেল শীট ব্যবহার করবেন না?

এক্সেল শীট ব্যবহার করবেন না | নেপচুন

স্প্রেডশীটগুলি এমন কিছু যা আমরা সকলেই পছন্দ করি কারণ এটি খুব সহজ! যাইহোক, একটি স্প্রেডশীটে পরীক্ষা সংক্রান্ত সমস্ত তথ্য রেকর্ড করা তখনই সম্ভব যখন আমরা সীমিত সংখ্যক পুনরাবৃত্তি করি।

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

সৌভাগ্যবশত, আপনাকে সাহায্য করার জন্য অনেক টুল উপলব্ধ আছে। নেপচুন এমন একটি টুল যা আমাদের একটি প্রকল্পের মধ্যে আমাদের সমস্ত এমএল পরীক্ষাগুলি ট্র্যাক করতে সাহায্য করতে পারে।

 

এর কর্ম এটি দেখুন!

পাইথনে নেপচুন ইনস্টল করুন

নেপচুন ইনস্টল করার জন্য, আমরা নিম্নলিখিত কমান্ডটি চালাতে পারি:

পিপ ইনস্টল নেপচুন-ক্লায়েন্ট

নেপচুন ক্লায়েন্ট আমদানি করার জন্য, আমরা নিম্নলিখিত লাইনটি ব্যবহার করতে পারি:

নেপচুন হিসাবে neptune.new আমদানি করুন

 

এটা শংসাপত্র প্রয়োজন?

নেপচুনে মেটাডেটা লগিং সক্ষম করতে neptune.init() পদ্ধতিতে আমাদের শংসাপত্রগুলি পাস করতে হবে।

রান = neptune.init(project='',api_token='')

আমরা লগ ইন করে একটি নতুন প্রকল্প তৈরি করতে পারি https://app.neptune.ai/ এবং তারপর প্রকল্পের নাম এবং API টোকেন আনুন।

 

নেপচুনে পরামিতি লগ করা হচ্ছে

আমরা এখানে আইরিস ডেটাসেট ব্যবহার করি এবং ডেটাসেটে একটি র্যান্ডম ফরেস্ট ক্লাসিফায়ার প্রয়োগ করি। আমরা ফলস্বরূপ নেপচুন ব্যবহার করে মডেলের প্যারামিটার, মেট্রিক্স লগ করি।

sklearn.datasets থেকে sklearn.ensemble থেকে লোড_আইরিস আমদানি করুন sklearn.model_selection থেকে RandomForestClassifier আমদানি করুন sklearn.metrics থেকে sklearn.metrics আমদানি করুন f1_score থেকে joblib আমদানি ডাম্প ডেটা = load_iris() X_train, X_train, X_train, X_dest_dest. ta, data.target , test_size=0.4, random_state=1234) params = {'n_estimators': 10, 'max_depth': 3, 'min_samples_leaf': 1, 'min_samples_split': 2, 'max_features': 3, } clf = র‍্যান্ডম ** র্যান্ডম ) clf.fit(X_train, y_train) y_train_pred = clf.predict_proba(X_train) y_test_pred = clf.predict_proba(X_test) train_f1 = f1_score(y_train, y_train_pred.argmax'_1=croba) = f1_score(x_1) গড়, f1_score y_test, y_test_pred.argmax(axis=XNUMX), গড়='ম্যাক্রো')

উপরের মডেলের প্যারামিটারগুলি লগ করার জন্য, আমরা নীচের মত আগে শুরু করা রান অবজেক্টটি ব্যবহার করতে পারি:

রান ['প্যারামিটার'] = প্যারাম

নিম্নরূপ রান অবজেক্ট তৈরি করার সময় নেপচুন কোড এবং পরিবেশ ট্র্যাকিংয়ের অনুমতি দেয়:

run = neptune.init(project=' stateasy005/iris',api_token=', source_files=['*.py', 'requirements.txt'])

 

আমি কি মেট্রিক্সও লগ করতে পারি?

প্রশিক্ষণ এবং মূল্যায়ন মেট্রিকগুলি আমাদের তৈরি করা রান অবজেক্ট ব্যবহার করে আবার লগ করা যেতে পারে:

রান['train/f1'] = train_f1 রান['test/f1'] = test_f1

 

একবারে সবকিছু লগ করার শর্টকাট?

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

এই সারাংশ নিম্নলিখিত কোড ব্যবহার করে প্রাপ্ত করা যেতে পারে:

npt_utils হিসাবে neptune.new.integrations.sklearn আমদানি করুন
চালান["cls_summary"] = npt_utils.create_classifier_summary(clf, X_train, X_test, y_train, y_test)

এটি নিম্নলিখিত সৃষ্টির দিকে পরিচালিত করে
নীচে দেখানো হিসাবে নেপচুন UI এর ফোল্ডারগুলি:

 

ফোল্ডারের ভিতরে কি আছে? 

সার্জারির 'ডায়াগনস্টিক চার্ট' ফোল্ডারের ক্লাসিফায়ারের সারাংশে কোডের একটি লাইন দিয়ে একাধিক মেট্রিক্স ব্যবহার করে তাদের পরীক্ষাগুলি মূল্যায়ন করতে পারে বলে কাজে আসে।

সার্জারির 'সব_পরম' ফোল্ডারের মডেলের বিভিন্ন হাইপারপ্যারামিটার নিয়ে গঠিত। এই হাইপারপ্যারামিটারগুলি একজনকে তুলনা করতে সাহায্য করে যে মডেলটি মানগুলির একটি সেটে কীভাবে পারফর্ম করে এবং কিছু স্তরে তাদের টিউন করার পরে। হাইপারপ্যারামিটারের ট্র্যাকিং অতিরিক্তভাবে একজনকে যখন প্রয়োজন হয় ঠিক একই মডেলে (হাইপারপ্যারামিটারের একই মান সহ) ফিরে যেতে সাহায্য করে।

প্রশিক্ষিত মডেল একটি '.pkl' ফাইলের আকারে সংরক্ষিত হয় যা পরে ব্যবহার করার জন্য আনা যেতে পারে। দ্য 'পরীক্ষা' ফোল্ডারের ভবিষ্যদ্বাণী, ভবিষ্যদ্বাণী সম্ভাব্যতা এবং পরীক্ষার ডেটাসেটে স্কোর রয়েছে।

 

নেপচুন ব্যবহার করে রিগ্রেশন এবং ক্লাস্টারিং সম্পর্কে কীভাবে?

আমরা একটি অনুরূপ সারাংশ পেতে পারি যদি আমাদের নিম্নলিখিত লাইনগুলি ব্যবহার করে একটি রিগ্রেশন মডেল থাকে:

npt_utils হিসাবে neptune.new.integrations.sklearn আমদানি করুন
চালান['rfr_summary'] = npt_utils.create_regressor_summary(rfr, X_train, X_test, y_train, y_test)

একইভাবে, ক্লাস্টারিংয়ের জন্যও, আমরা কোডের নিম্নলিখিত লাইনগুলির সাহায্যে একটি সারাংশ তৈরি করতে পারি:

npt_utils রান হিসাবে neptune.new.integrations.sklearn আমদানি করুন['kmeans_summary'] = npt_utils.create_kmeans_summary(km, X, n_clusters=5)

এখানে, km হল k- মানে মডেলের নাম।

 

আমি কিভাবে নেপচুনে আমার ডেটা আপলোড করব?

আমরা csv ফাইলগুলিকে একটি রানে লগ করতে পারি এবং নিম্নলিখিত কোডের লাইনগুলি ব্যবহার করে নেপচুন UI-তে সেগুলি দেখতে পারি:

চালান['test/preds'].upload('path/to/test_preds.csv')

নেপচুনে আর্টিফ্যাক্ট আপলোড করা হচ্ছে

ম্যাটপ্লটলিব, প্লটলি ইত্যাদির মতো লাইব্রেরি ব্যবহার করে একটি প্লট যে কোনও চিত্র নেপচুনেও লগ করা যেতে পারে।

matplotlib.pyplot plt plt.plot(data) রান হিসাবে আমদানি করুন["dataset/distribution"].log(plt.gcf())

একই ফাইলগুলি পরবর্তীতে প্রোগ্রামগতভাবে ডাউনলোড করার জন্য, আমরা কোডের নিম্নলিখিত লাইন ব্যবহার করে 'রান' অবজেক্টের ডাউনলোড পদ্ধতি ব্যবহার করতে পারি:

চালান['artifacts/images'].download()

 

সর্বশেষ ভাবনা

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

রান ট্র্যাক করার জন্য অবশ্যই অনলাইনে অনেক অনুরূপ লাইব্রেরি উপলব্ধ রয়েছে যা আমি আমার পরবর্তী নিবন্ধগুলিতে কভার করার চেষ্টা করব।

লেখক সম্পর্কে

নিবেদিতা দত্ত

নিবেদিতা আইআইটি খড়গপুর থেকে কেমিক্যাল ইঞ্জিনিয়ারিংয়ে স্নাতকোত্তর এবং বর্তমানে অ্যাবসোলুটডেটা অ্যানালিটিকসে সিনিয়র কনসালটেন্ট হিসেবে কাজ করছেন। তার বর্তমান ক্ষমতায়, তিনি বিভিন্ন শিল্পের ক্লায়েন্টদের জন্য AI/ML-ভিত্তিক সমাধান তৈরিতে কাজ করেন।

চিত্র উত্স

ছবি 1: https://tinyurl.com/em429czk

এই নিবন্ধে দেখানো মিডিয়া Analytics বিদ্যার মালিকানাধীন নয় এবং লেখকের বিবেচনার ভিত্তিতে ব্যবহার করা হয়।

সূত্র: https://www.analyticsvidhya.com/blog/2021/10/tracking-your-machine-learning-project-changes-with-neptune/

সময় স্ট্যাম্প:

থেকে আরো বিশ্লেষণ বিদ্যা