Chapter 14 of 16
Where the field is going and open problems worth knowing
HPO research machine learning-এর সবচেয়ে সক্রিয় গবেষণা ক্ষেত্রগুলোর একটা। এই course-এ যা শেখানো হয়েছে — grid search, random search, Bayesian optimization, Hyperband — এগুলো এই মুহূর্তের mainstream পদ্ধতি, কিন্তু এই ক্ষেত্রের frontier দ্রুত এগোচ্ছে। এই chapter-এ এমন কিছু open problem আর emerging direction নিয়ে কথা বলা হবে, যেগুলো আগামী কয়েক বছরে practitioner-দের HPO করার পদ্ধতিটাই পাল্টে দিতে পারে।
এই course-এর প্রতিটা algorithm প্রতিটা নতুন সমস্যায় শূন্য থেকে search শুরু করে — যা বেশ ব্যয়বহুল। স্বাভাবিক প্রশ্ন হলো — অন্য dataset-এ আগের search থেকে পাওয়া জ্ঞান কাজে লাগিয়ে কি কোনো trial চালানোর আগেই ভালো configuration আন্দাজ করা সম্ভব? Meta-learning for HPO এই প্রশ্নের উত্তর খোঁজে — dataset-এর বৈশিষ্ট্য (feature সংখ্যা, class সংখ্যা, imbalance ratio) থেকে সরাসরি hyperparameter configuration-এ একটা mapping শিখে নেওয়া, যেসব dataset একই রকম, সেখানে যা আগে কাজ করেছে তার ভিত্তিতে। অনেকটা সেই ডাক্তারের মতো, যিনি একজন রোগীর নির্দিষ্ট কিছু বৈশিষ্ট্য দেখেই বুঝে যান কোন টেস্টগুলো সবচেয়ে বেশি diagnostic হবে — সব সম্ভাব্য টেস্ট ক্রমান্বয়ে না চালিয়ে।
কোনো নতুন dataset-এ না চালিয়েই কোন ML algorithm ভালো কাজ করবে তা আন্দাজ করতে dataset-এর 'meta-feature' ব্যবহার করার শুরুর দিককার গবেষণা।
Sequential Model-based Algorithm Configuration সম্পর্কিত আগের run থেকে HPO warm-start করার ধারণা নিয়ে আসে।
BOHB (Bayesian Optimization and Hyperband)-কে meta-learning দিয়ে সম্প্রসারিত করে অন্য task থেকে surrogate model warm-start করা হয়।
কোনো বাড়তি evaluation ছাড়াই dataset feature থেকে সরাসরি hyperparameter prediction-এ regression করে প্রতিযোগিতামূলক ফলাফল।
ML paper আর code-এ train হওয়া large language model-কে hyperparameter proposer হিসেবে ব্যবহার করা, তাদের implicit জ্ঞান কাজে লাগিয়ে।
এই ধারণাটা বেশ পুরনো — ২০০৮ সালে dataset-এর "meta-feature" ব্যবহার করে কোন ML algorithm ভালো কাজ করবে সেটা আগেভাগে আন্দাজ করার গবেষণা শুরু হয়েছিল। এরপর ২০১৪ সালে SMAC আগের সম্পর্কিত task থেকে HPO warm-start করার ধারণা আনে, ২০১৮ সালে BOHB সেটাকে meta-learning দিয়ে সম্প্রসারিত করে, আর সাম্প্রতিক বছরগুলোতে dataset feature থেকে সরাসরি hyperparameter predict করা এবং large language model-কে hyperparameter proposer হিসেবে ব্যবহার করার মতো পদ্ধতিও দেখা যাচ্ছে।
Successive Halving আর Hyperband — যা আগের chapter-এ দেখা হয়েছে — আসলে multi-fidelity optimization-এর প্রাথমিক উদাহরণ। প্রতিটা configuration পূর্ণ খরচে evaluate না করে, একটা সস্তা, আনুমানিক সংস্করণ (proxy) দিয়ে দ্রুত খারাপ configuration-গুলো বাদ দেওয়া। এই proxy হতে পারে কম epoch, ছোট data subset, ছোট model, বা কম sample। মূল ধারণাটা হলো — সস্তা proxy-তে configuration-গুলোর আপেক্ষিক ক্রম, পূর্ণ evaluation-এর ক্রমকেই প্রতিফলিত করে। কিন্তু এই ধারণা সবসময় সত্যি নয় — যখন এটা ভাঙে, তখন multi-fidelity পদ্ধতি random search-এর চেয়েও খারাপ হতে পারে। এখনো খোলা প্রশ্ন — proxy-র ক্রম কখন সত্যিকারের ক্রম প্রতিফলিত করে, একাধিক fidelity কীভাবে একসাথে মেলানো যায়, আর epoch সংখ্যার মতো hyperparameter fidelity dimension-এর সাথে কীভাবে interact করে।
এতদিন objective function-কে একটা black box হিসেবে ধরা হয়েছে — evaluate করতে হলে পুরো একটা training run লাগে, কোনো gradient পাওয়া যায় না। কিন্তু validation loss-এর derivative সরাসরি hyperparameter-এর সাপেক্ষে বের করা গেলে কেমন হতো? DARTS-এর মতো gradient-based পদ্ধতি discrete hyperparameter choice-কে continuous variable-এ রূপান্তরিত করে, পুরো training procedure-এর মধ্য দিয়ে gradient বের করে, model parameter-এর পাশাপাশি hyperparameter-কেও gradient descent দিয়ে optimize করে। সম্ভাবনা বিশাল — একটামাত্র gradient step অনেক black-box evaluation-এর সমান তথ্য দিতে পারে। কিন্তু চ্যালেঞ্জও কম নয় — লম্বা training run-এর মধ্য দিয়ে differentiate করা memory-intensive, আর optimization landscape অত্যন্ত non-convex।
CIFAR-10-এর জন্য একটা ResNet tune করা একজন practitioner, ResNet সম্পর্কে সাধারণভাবে ভালো learning rate আর batch size সম্পর্কে কিছু শিখে ফেলেন। এই জ্ঞান কি অন্য কোনো image dataset-এর ResNet-এ শূন্য থেকে শুরু না করেই কাজে লাগানো যায়? Hyperparameter transfer এই ধারণাটাকেই formal রূপ দেয় — কতগুলো source task থেকে hyperparameter-এর ওপর একটা prior distribution শিখে, সেটা দিয়ে নতুন target task-এর search warm-start করা। বড় model family নিয়ে কাজ করা প্রতিষ্ঠানের জন্য, বা যেখানে compute budget খুবই সীমিত, সেখানে এটা বিশেষভাবে মূল্যবান।
বাস্তবে model প্রায়ই একাধিক objective দিয়ে মূল্যায়ন করা হয় — accuracy আর inference latency (real-time system-এর জন্য), accuracy আর model size (edge deployment-এর জন্য), অথবা accuracy আর বিভিন্ন demographic group-এ fairness (regulatory compliance-এর জন্য)। সাধারণ HPO একটামাত্র objective-কে optimize করে এমন একটা configuration খোঁজে। Multi-objective HPO খোঁজে Pareto front — এমন সব configuration-এর সেট, যাদের কোনোটাকেই সব objective-এ একসাথে হারানো যায় না।
| Framework | পদ্ধতি | ব্যবহার |
|---|---|---|
| Optuna (multi-objective) | NSGA-II evolutionary algorithm; একগুচ্ছ Pareto-optimal সমাধান ফেরত দেয় | যেকোনো model type-এর জন্য সাধারণ multi-objective HPO |
| MOTPE | Multi-objective TPE; tree-structured Parzen estimator-কে একাধিক objective-এ সম্প্রসারিত করে | একাধিক objective-এর সাথে TPE-র conditional search space handling দরকার হলে |
| BoTorch / Ax | Expected Hypervolume Improvement ব্যবহার করে multi-objective Bayesian optimization; expensive evaluation-এ efficient | Neural network আর অন্যান্য ব্যয়বহুল model-এর জন্য |
Optuna-তে optuna.create_study(directions=["maximize", "maximize"])-এর মতো একাধিক direction দিয়ে study তৈরি করা যায়, objective function accuracy আর negative model size (দুটোই maximize করতে) ফেরত দেয়, আর শেষে optuna.visualization.plot_pareto_front-এ Pareto front দেখা যায়।
ML paper, ডকুমেন্টেশন, আর কোড দিয়ে train হওয়া large language model-এর মধ্যে implicitly এই জ্ঞান আছে যে কোন model type-এর জন্য কোন hyperparameter মান সাধারণত ভালো কাজ করে। সাম্প্রতিক কিছু গবেষণা LLM-কে hyperparameter proposer হিসেবে ব্যবহার করার চেষ্টা করছে — model, dataset, আর এখন পর্যন্ত সেরা configuration-এর বর্ণনা দিয়ে LLM-কে পরের configuration সাজেস্ট করতে বলা, অথবা search space-এর reasonable bound ঠিক করতে LLM-এর literature-জ্ঞান কাজে লাগানো। এটা এখনো একটা সক্রিয় গবেষণাক্ষেত্র — reliability, reproducibility, আর LLM জনপ্রিয় (কিন্তু হয়তো নির্দিষ্ট task-এর জন্য optimal নয়) configuration প্রস্তাব করার প্রবণতা নিয়ে খোলা প্রশ্ন এখনো আছে।
Distribution shift-এর অধীনে robust HPO
সাধারণ HPO training/validation distribution-এর জন্য optimize করে। Deployment-এর সময় distribution বদলে গেলেও ভালো generalize করবে এমন configuration কীভাবে খুঁজে পাওয়া যায়?
Sample-efficient NAS
Neural Architecture Search এখনো বিশাল compute দাবি করে। Standard HPO যতটা efficient ঠিক ততটা efficient-এ architecture খোঁজা এখনো একটা খোলা চ্যালেঞ্জ।
Human feedback-সহ HPO
গুণগত মানবিক পছন্দ (যেমন 'এই মডেল গ্রাহককে ব্যাখ্যা করতে খুব ধীর') আগে থেকে সংখ্যায় রূপান্তর না করেই HPO objective-এ কীভাবে যোগ করা যায়?
Privacy-preserving HPO
একাধিক প্রতিষ্ঠানের sensitive data নিয়ে, সেই data বা trained model শেয়ার না করেই কীভাবে HPO চালানো যায়?