Chapter 8 of 16
When the search itself becomes automated end-to-end
আগের chapter-গুলো মিলিয়ে একটা পূর্ণাঙ্গ HPO pipeline দাঁড় করানো হয়েছে — hyperparameter কী, performance সততার সাথে কীভাবে মাপতে হয়, আর কোন search algorithm ব্যবহার করতে হয়। এখন বাকি চ্যালেঞ্জটা হলো পরিশ্রম — প্রতিটা model-এর জন্য, প্রতিটা dataset-এ, এই পুরো প্রক্রিয়া হাতে চালানো ব্যয়বহুল আর একঘেয়ে। AutoML এই সমস্যার উত্তর — এটা পুরো machine learning pipeline-টাই স্বয়ংক্রিয় করে ফেলে, model selection, feature engineering, hyperparameter optimization, এমনকি কখনো কখনো neural architecture design পর্যন্ত।
AutoML system machine learning workflow-এর কিছু বা সবগুলো ধাপ স্বয়ংক্রিয় করে দেয়:
Data preprocessing
Missing value, categorical encoding, feature scaling, আর outlier detection স্বয়ংক্রিয়ভাবে সামলানো।
Feature engineering
Raw input থেকে feature স্বয়ংক্রিয়ভাবে তৈরি করা আর বাছাই করা।
Model selection
একাধিক algorithm family (linear, tree-based, neural network) try করে সেরাটা বেছে নেওয়া।
Hyperparameter optimization
আগের chapter-এ শেখা algorithm ব্যবহার করে ভালো hyperparameter configuration খোঁজা।
Ensemble building
একাধিক model (প্রায়ই ভিন্ন ভিন্ন algorithm family থেকে) মিলিয়ে যেকোনো একক মডেলের চেয়ে ভালো prediction দেওয়া।
AutoML tool সবচেয়ে বেশি কাজে লাগে তখনই, যখন যিনি ব্যবহার করছেন তিনি জানেন ভেতরে ভেতরে কী হচ্ছে। কোনো AutoML system validation set-এর ওপর overfit করলে, বা data-র assumption ভঙ্গ হওয়ায় ব্যর্থ হলে, সেটা ঠিক করতে মানুষের বোঝাপড়াই লাগবে। এই chapter-এর লক্ষ্য আপনাকে এই টুলগুলোর একজন বুদ্ধিমান ব্যবহারকারী বানানো, শুধু ব্যবহারকারী নয়।
Auto-sklearn scikit-learn-কে ঘিরে কাজ করে, Bayesian optimization ব্যবহার করে (SMAC আর ensemble selection মিলিয়ে) scikit-learn component-গুলোর একটা পুরো pipeline স্বয়ংক্রিয়ভাবে বেছে নেয় আর configure করে। এটা preprocessing, feature selection, আর model + hyperparameter — সবকিছু একসাথে search করে, শেষে সেরা কয়েকটা মডেল মিলিয়ে একটা ensemble বানায়, যেটা প্রায়ই একক সেরা মডেলের চেয়ে ভালো ফল দেয়।
Optuna পুরোপুরি AutoML framework নয় — এটা একটা HPO library, যেকোনো model বা training code-এর সাথে কাজ করে। Default হিসেবে TPE ব্যবহার করে, pruning সাপোর্ট করে (সম্ভাবনাহীন trial আগেই থামিয়ে দেওয়া), আর visualization/analysis-এর জন্য চমৎকার টুলিং দেয়।
FLAML (Microsoft Research-এর তৈরি) cost-efficient search-এ মনোযোগ দেয় — দ্রুত বুঝে ফেলে কোন configuration-গুলো সম্ভাবনাময়, আর সেখানেই বাজেট concentrate করে। খুব সীমিত সময়ের budget-এ (কয়েক মিনিট) এটা বিশেষভাবে কার্যকর।
Hyperparameter নয়, যখন architecture নিজেই খোঁজার বিষয় হয়ে দাঁড়ায়, তখন সেটা হয়ে যায় Neural Architecture Search। NAS হয়ে ওঠে HPO-র চেয়ে অনেক বেশি ব্যয়বহুল, কারণ search space-এ কতগুলো layer থাকবে, কোন layer-এ কোন operation বসবে, আর কীভাবে সেগুলো সংযুক্ত হবে — এই ধরনের discrete choice থাকে।
| NAS পদ্ধতি | ধারণা | খরচ |
|---|---|---|
| Random NAS | Random architecture sample করে প্রতিটাকে সম্পূর্ণভাবে train করা | খুব বেশি (ImageNet-এ দিন থেকে সপ্তাহ) |
| Reinforcement learning (প্রথমদিকের NAS) | একটা controller network architecture-এর বর্ণনা তৈরি করে; ভালো generalize করা architecture-এর জন্য RL দিয়ে controller-কে reward দেওয়া হয় | খুব বেশি (Google-এর ২০১৭ সালের NAS paper-এ ৪৫০টা GPU ৩-৪ দিন ধরে ব্যবহৃত হয়েছিল) |
| DARTS (Differentiable Architecture Search) | Discrete architecture choice-কে continuous weight-এ শিথিল করে; gradient descent দিয়ে architecture আর model weight একসাথে optimize করা | মাঝারি (CIFAR-10-এ কয়েক ঘণ্টা) |
| One-shot NAS / weight sharing | একটা 'supernet' train করা যার মধ্যে সব সম্ভাব্য architecture নিহিত থাকে; supernet-এর মধ্য দিয়ে path sample করে sub-network evaluate করা | কম-মাঝারি; production NAS system-এ প্রধান পদ্ধতি |
NAS খোঁজে architecture-এর জগৎ, fixed architecture-এর মধ্যে hyperparameter-এর জগৎ নয়। এতে লাগে অনেক বেশি compute আর অনেক বেশি সতর্ক problem formulation। বেশিরভাগ applied ML সমস্যায়, একটা standard architecture-এ (ResNet, Transformer) ভালোভাবে tune করা hyperparameter, NAS চালানোর খরচকে হার মানায়।
| পরিস্থিতি | প্রস্তাবিত পদ্ধতি |
|---|---|
| নতুন dataset-এ দ্রুত baseline চাই | AutoML (FLAML বা Auto-sklearn): সবচেয়ে কম পরিশ্রমে প্রতিযোগিতামূলক baseline দ্রুত পাওয়া যায়। |
| Model family আগে থেকেই জানা (ধরুন GBM-ই লাগবে জানেন) | Optuna বা RandomizedSearchCV দিয়ে manual HPO: বেশি নিয়ন্ত্রণ, interpretable ফলাফল। |
| খুব সীমিত compute budget (<১০ মিনিট) | ছোট time budget-এর AutoML, অথবা Optuna দিয়ে manual random search। |
| Reproducibility জরুরি | Manual HPO: প্রতিটা try করা configuration-এর ওপর পুরো নিয়ন্ত্রণ থাকে। |
| একাধিক algorithm family explore করা | AutoML: একসাথে একাধিক algorithm family-জুড়ে search করে। |
| Neural architecture design | NAS টুল (যেমন Auto-PyTorch, KerasTuner), তবে তার বিশাল compute cost মাথায় রেখে। |