“Most ML tools fail silently. This one refuses to.”
Benchmark is an AutoML system designed for one purpose:
Take messy, real-world datasets → produce valid ML results without crashing.
No assumptions.
No blind trust in user input.
No silent failures.
Most ML tools assume:
- Clean datasets
- Correct target selection
- Proper task type (classification/regression)
Reality:
| Issue | What Happens |
|---|---|
| Wrong target column | Model crashes |
| Time column as target | Type errors |
| Missing values | Silent data loss |
| Mixed formats | Garbage output |
| Small datasets | Fake accuracy |
Result → Unreliable models + confused users
Fail early. Fail clearly. Never lie.
┌────────────────────┐
│ User Upload CSV │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Target Detection │
│ (Type Inference) │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Guardrail System │
│ (Validation Layer) │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Data Cleaning │
│ (X + y Processing) │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Model Training │
│ (Sklearn Models) │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Results + History │
└────────────────────┘
This is what makes Benchmark different.
| Type | Action |
|---|---|
| Numeric | Regression |
| Categorical (<20 unique) | Classification |
| Time/Datetime | Convert → Regression |
| High-cardinality text | ❌ Reject |
User selects wrong task?
✔ System overrides it
✔ Logs warning
✔ Prevents crash
Before training:
| Metric | Rule |
|---|---|
| Valid rows | ≥ 10 |
| Data retained | ≥ 50% |
| Missing target | Removed |
If failed → hard stop
Time is NOT a valid ML target directly.
We convert:
Example:
| Time | Converted |
|---|---|
| 21:30:32 | 77432 |
| 09:15:00 | 33300 |
- Drop empty columns
- Drop constant columns
- Encode categorical features
- Extract datetime features:
| Feature | Example |
|---|---|
| Hour | 21 |
| Day | 15 |
| Month | 4 |
Raw Data ↓ Validation ↓ Cleaning ↓ Feature Engineering ↓ Model Training ↓ Evaluation
- Target:
Time - Mixed formats
- 80% invalid rows
Error: Too many invalid time values in target column. Suggestion: Select a different target column.
- Next.js 14
- Tailwind CSS
- shadcn/ui
- FastAPI
- WebSockets
- scikit-learn
- Upload CSV
- Select target column
- System analyzes:
- Data type
- Distribution
- Validity
- Guardrails activate
- Data cleaned
- Model trained
- Results stored in history
Input:
100 rows 30 invalid target values
After Processing:
70 valid rows Model trained successfully
| Scenario | Outcome |
|---|---|
| Wrong target | Auto-correct |
| Too many NaN | Stop |
| Invalid time | Convert or reject |
| Small dataset | Stop |
| Text target | Reject |
Most tools optimize for:
“Looks good in demo”
Benchmark optimizes for:
“Works on real data”
- No silent fixes
- No fake success
- No blind assumptions
- Always explain failure
| Feature | Typical AutoML | Benchmark |
|---|---|---|
| Handles dirty data | ❌ | ✅ |
| Prevents crashes | ❌ | ✅ |
| Explains errors | ❌ | ✅ |
| Auto-corrects task | ❌ | ✅ |
| Time handling | ❌ | ✅ |
- Auto feature engineering
- Model selection optimization
- Dataset profiling UI
- Explainable AI layer
- Dataset recommendations
benchmark/ ├── app/ ├── benchmark-api/ ├── public/ ├── dataclean/ ├── package.json └── README.md
Avik Ghosh
Building real-world AI tools that don’t break under pressure.
“Anyone can build a model.
Very few can build a system that survives bad data.”
Benchmark is built for the second category.