setup-automl-pipeline
About
This skill automates hyperparameter tuning and model selection using Optuna or Ray Tune with efficient search algorithms like Hyperband/ASHA. It's designed to quickly find optimal configurations for new ML projects or when retraining with new data. Use it to compare algorithms efficiently or when your team lacks deep hyperparameter expertise.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-automl-pipelineCopy and paste this command in Claude Code to install this skill
Documentation
Setup AutoML Pipeline
See Extended Examples for complete config + templates.
Automate hyperparam tune + model selection → Optuna|Ray Tune w/ efficient search.
Use When
- New ML project → find good configs fast
- Retrain w/ new data → re-opt hyperparams
- Compare algos + their optimal configs
- Limited tune time but need near-optimal
- Team lacks deep hyperparam expertise
- Need reproducible documented opt
In
- Required: Train data (features + labels)
- Required: Val data → objective eval
- Required: Model type(s) (XGBoost, LightGBM, NN)
- Required: Opt objective (max|min metric)
- Required: Compute budget (time|trial count)
- Optional: Search space constraints (min|max)
- Optional: Prior knowledge of good ranges
Do
Step 1: Install Deps + Env
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Option 1: Optuna (simpler, good for single-machine)
pip install optuna optuna-dashboard
pip install scikit-learn xgboost lightgbm
# Option 2: Ray Tune (distributed, good for multi-machine/GPU)
pip install "ray[tune]" optuna hyperopt bayesian-optimization
pip install torch torchvision # if optimizing neural networks
# Visualization and tracking
pip install mlflow tensorboard plotly
Project structure:
mkdir -p automl/{configs,experiments,models,results}
→ Clean env w/ pkgs installed, no conflicts.
If err: Py 3.8-3.11 (compat issues 3.12+); CUDA errs → install CPU-only first; M1|M2 → conda not pip for sklearn.
Step 2: Search Space + Objective (Optuna)
# automl/optuna_config.py
import optuna
from optuna.pruners import HyperbandPruner
from optuna.samplers import TPESampler
import xgboost as xgb
from sklearn.metrics import roc_auc_score, mean_squared_error
import numpy as np
# ... (see EXAMPLES.md for complete implementation)
→ Search space covers reasonable ranges, objective runs w/o errs, pruning stops unpromising early.
If err: trials crash → ↓search space (lower max n_estimators); verify no NaN|inf; check mem (↓batch if OOM); eval_metric matches task.
Step 3: Run Opt w/ Advanced Samplers
# automl/run_optimization.py
import optuna
from optuna.samplers import TPESampler, CmaEsSampler, NSGAIISampler
from optuna.pruners import HyperbandPruner, MedianPruner, SuccessiveHalvingPruner
import joblib
import pandas as pd
from pathlib import Path
# ... (see EXAMPLES.md for complete implementation)
→ Opt completes w/ 50-70% trials pruned, best params found, viz plots show convergence.
If err: no pruning → verify objective reports intermediate vals; no improvement → try diff sampler (TPE→CmaES); n_jobs>1 crashes → n_jobs=1 for debug.
Step 4: Ray Tune Distributed (Alternative)
Multi-GPU|node opt.
# automl/ray_tune_config.py
from ray import tune
from ray.tune.schedulers import ASHAScheduler, PopulationBasedTraining
from ray.tune.search.optuna import OptunaSearch
from ray.tune.search import ConcurrencyLimiter
import xgboost as xgb
from sklearn.metrics import roc_auc_score
import os
# ... (see EXAMPLES.md for complete implementation)
→ Trials parallel CPUs|GPUs, ASHA stops bad early, best config logged.
If err: Ray crashes → start ray.init(num_cpus=2, num_gpus=0) for debug; ↓concurrent if OOM; train fn doesn't modify shared data; use tune.report() not return.
Step 5: Track w/ MLflow
# automl/mlflow_tracking.py
import mlflow
import mlflow.xgboost
from mlflow.tracking import MlflowClient
import optuna
from pathlib import Path
# ... (see EXAMPLES.md for complete implementation)
→ All trials logged w/ params+metrics, best registered, viewable in MLflow UI.
If err: start mlflow ui --backend-store-uri file:./automl/mlruns; check write perms mlruns; reg fails → verify registry config; artifact <2GB.
Step 6: Deploy Best + Monitor
# automl/deploy_model.py
import joblib
import json
from pathlib import Path
import optuna
import xgboost as xgb
# ... (see EXAMPLES.md for complete implementation)
→ Model saved prod-ready, config documented, inference script ready.
If err: file >100MB → compress|feature select; verify loads in fresh Py session; test inference w/ sample pre-deploy.
Check
- Optuna|Ray Tune installs no conflicts
- Search space reasonable
- Objective runs single trial OK
- Opt completes 50+ trials in budget
- Pruning stops 40-70% unpromising
- Best params improve >5% over default
- Viz shows convergence (history flattens)
- MLflow logs all w/ params+metrics
- Final model saves+loads
- Deploy pkg has all needed files
Traps
- Overfit to val: 1000s trials implicitly optimizes for val; use holdout test|time-split for final eval
- Ignore feature eng: AutoML finds best hyperparams but doesn't create features; invest in eng first
- Search space too wide: Unbounded|wide ranges waste trials on unrealistic; use domain knowledge
- No early stopping: Training full epochs every trial wasteful; enable in objective
- Ignore compute cost: 100 trials × 10 min = 16h; consider budget when setting n_trials
- Categoricals not encoded: Most algos need numeric; encode pre-opt
- Imbalanced data: Default metrics mislead; use F1, AUC, custom
- No save intermediate: Crashes lose all; persistent storage (Optuna SQLite, MLflow) to resume
→
track-ml-experiments— MLflow tracking + versioningorchestrate-ml-pipeline— Airflow|Kubeflow for prod AutoML
GitHub Repository
Related Skills
llamaguard
OtherLlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
quantizing-models-bitsandbytes
OtherThis skill quantizes LLMs to 8-bit or 4-bit precision using bitsandbytes, achieving 50-75% memory reduction with minimal accuracy loss. It's ideal for running larger models on limited GPU memory or accelerating inference, supporting formats like INT8, NF4, and FP4. The skill integrates with HuggingFace Transformers and enables QLoRA training and 8-bit optimizers.
dispatching-parallel-agents
OtherThis Claude Skill dispatches multiple agents to investigate and fix 3+ independent problems concurrently. It is designed for scenarios involving unrelated failures that can be resolved without shared state or dependencies. The core capability is parallel problem-solving, assigning one agent per independent problem domain to maximize efficiency.
