VIEW PROJECT · VIEW PROJECT · VIEW PROJECT ·

Systems built to expect an adversary.

Selected work
About

MS student, UW–Madison. ML/AI engineer.

Every project below reports a held-out number, not a training-split screenshot. Most of them are also built around an opponent on purpose: a fraudster routing around detection, a paraphraser trained to evade a classifier, a model that hallucinates the moment nobody's checking.

The rest is full-stack work, shipped past the notebook and reachable behind a live URL. Scroll on — each project below is one screen, pinned until the next one covers it.

Part one

Built against an adversary

Fraud, forensics, steering, survival — four systems designed against something actively working against them.

01 – 04
fmcc‑fraud‑detection
Production
Telecom SIM-box fraud
Airflow · Lambda · Terraform
MLflow · Evidently AI

Fraud detection

Built to run in production, not just pass code review. Airflow orchestrates ingestion through to a Lambda-served model behind FastAPI, with MLflow tracking every version and Evidently AI watching for drift once it's live. The infrastructure — Terraform, S3, PostgreSQL — is part of the deliverable, not an afterthought.

8
Services orchestrated
IaC
Infra as code, Terraform
Live
Drift-monitored in prod
01 / 08
ai‑text‑forensics
Validated
MAGE · 435K rows · 14 domains
LoRA · LightGBM · SHAP
RL red-team (REINFORCE)

Text forensics

A machine-generated text detector hardened by its own adversary: an RL-trained paraphraser learns to evade it, round after round, until the detector is retrained against exactly what it learned. Held-out splits withhold entire domains and generators — not a random shuffle — so the numbers measure generalization, not memorization.

435K
Rows, MAGE dataset
14
Domains held out
30+
Generators seen
02 / 08
Probe‑Controlled‑TSV
Paper — CS762
TruthfulQA 64.6% → 58.5%
~75% tokens touched
Baselines: ITI, CAA, TSV

Hallucination steering

A real-time risk probe steers a language model away from hallucination only at the moment it's about to happen, instead of applying a fixed correction to every token like prior activation-steering methods. Written up as a CS762 (UW–Madison) paper formatted for ICML, with ITI and CAA reproduced here as baselines rather than taken on faith.

64.6→58.5
Hallucination rate, %
~75%
Tokens touched
3
Baselines reproduced
03 / 08
RL‑embodied‑cost
Simulation
reflex / cheap / full planner
llama-3.1-8b, llama-3.3-70b
learned RL vs. fixed baselines

Survival economics

A creature in a grid world with one energy meter, hazards, and a predator that hunts — every decision point it chooses between a free reflex, a cheap short-horizon plan, or a full-sight route, each costing energy in proportion to the model doing the thinking. The routing policy is learned by RL and compared against fixed baselines and a hand-tuned heuristic, not assumed to win by default.

3
Decision tiers
8B / 70B
Planner model sizes
RL
Learned vs. fixed policy
04 / 08
Part two

Shipped past the notebook

Full-stack ML, live behind a URL — real backends, real users in mind.

05 – 08
earnings‑call‑intelligence
Live — 108 tests
43 linguistic signals
4 LLM agents vs. SEC filings
XGBoost + LightGBM, AUC 0.643

Earnings intelligence

Turns a raw earnings call into an analyst-grade report: 43 deterministic linguistic signals plus four LLM agents that cross-check what was said against the company's own SEC filings and prior calls. An optional calibrated XGBoost + LightGBM overlay is validated walk-forward on 46K calls — built as reading and diligence support, not a trading signal.

46K
Calls, walk-forward
0.643
AUC
108
Tests passing
05 / 08
aerial‑road‑segmentation
Live demo
UNet + EfficientNet-B0
IoU 0.520 · Dice 0.684
React + Leaflet, one Docker image

Road extraction

Pick any point on a real map — or upload your own aerial photo — and a UNet with an EfficientNet-B0 encoder extracts the roads live, vectorizing them into GeoJSON centerlines with real-world length and coverage stats. The results shown are the model's own output on real neighborhoods, not the dataset's held-out set.

0.520
IoU, road class
0.684
Dice coefficient
1
Docker image, deploy
06 / 08
multimodal‑fashion‑recommender
Live demo
Amazon Reviews 2023, k-core
Transformer + CLIP two-tower
FastAPI + FAISS serving

Fashion recommender

A two-tower recommender for Amazon Fashion: a transformer encodes purchase history, an attention-fused item tower combines text, CLIP image embeddings, and learned IDs. Trained on real Amazon Reviews 2023 data — k-core filtered down to a dense subset from over two million raw users — and served live over FastAPI and FAISS.

5,015
Items, k-core subset
5,277
Users, k-core subset
2M+
Raw reviews filtered
07 / 08
AgenticDataAnalyst
Live demo
CSV/JSON/Parquet → SQL
AST-level safety layer
async FastAPI + PySpark

Ask your data

Upload a CSV, JSON, Parquet, or Excel file, ask a question in plain English, and get SQL back — generated by Gemini or Groq, checked by an AST-level safety layer before it's allowed to touch data, and executed on Spark. Built so a wrong or destructive query fails before execution, not after.

4
Input formats
2
LLM backends
AST
Query safety check
08 / 08
Equipment manifest

Instruments on file

CategoryInstruments
Languages & MLPython · PyTorch · TensorFlow · scikit-learn · XGBoost / LightGBM
Systems & ServingFastAPI · React · TypeScript · Docker · Streamlit
Data & InfraAWS (Lambda, S3, EC2) · Terraform · PostgreSQL · Apache Spark · Airflow
ML Ops & EvalMLflow · Evidently AI · SHAP · Isotonic Calibration
End of file

Full archive
on request

Eight projects summarized here; fourteen on record. Source, commit history, and READMEs live in the repository.

→ github.com/Sonith-Bingi