Chinmay Rawat

AI Researcher Intern at PocketFM (San Francisco), May 2026 – Present. Undergraduate at the University of Illinois Urbana-Champaign, B.S. Computer Science with a minor in Statistics, Aug 2024 – May 2027.

About

The through-line across this work is a preference for finding out whether a result is real over finding out that it is impressive.

It shows up most clearly in the two papers, which reach the same methodological conclusion from opposite ends of the stack. One takes a near-perfect probe accuracy on reasoning traces and asks what else could produce that number, then builds a controlled dataset specifically designed to strip away the alternatives — and reports that most of the signal goes with them. The other takes an LLM agent that produces fluent individual audience predictions and refuses to grade it on fluency, insisting first that it beat a cheap statistical baseline, and then that the event it is being scored against actually means what its name says. Both papers commit their thresholds before looking, and both report the collapse rather than the headline. Publishing a result that undercuts your own approach is the part most people skip.

The same instinct is visible in the engineering. The policy simulator's premise is that you should be able to see what a coverage rule would have cost before it ships, by replaying claims that already happened rather than estimating. The migration work benchmarks a graph model against three conventional alternatives instead of assuming the fancier method wins. Even the open-source pull requests follow the pattern: several fix bugs that produce no error message and quietly corrupt whatever comes downstream — a tokenizer adding a token the model does not expect, prompt caching silently ceasing to match.

Two threads recur across otherwise unrelated projects. ReAct loops appear in the interpretability work as an object of study and in the pentesting agent as a working mechanism. Careful evaluation — held-out splits, grouped folds, matched baselines, honest uncertainty — appears wherever there is a number to defend.

Skills

Languages
PythonC++JavaSQLTypeScriptR
sourceRésumé · RESUME (Technical Skills)
Backend & Infra
FastAPIDockerKubernetesAWS (RDS, EC2)PostgreSQLSlurmdistributed multi-GPU trainingGit/CI
sourceRésumé · RESUME (Technical Skills)
ML
PyTorchHugging FaceLoRA fine-tuningRAGGNNsensemblesTransformerLens/SAEsLLM evaluation & calibration
sourceRésumé · RESUME (Technical Skills)

Education

University of Illinois Urbana-Champaign

B.S. Computer Science, Minor in Statistics

Aug 2024 – May 2027 · Urbana, IL

  • GPA: 3.80/4.0
  • James Scholar Honors
  • Dean’s List (Fall 2024, Spring 2025, Fall 2025)

Coursework: Data Structures & Algorithms, System Programming, Database Systems, Compilers, Machine Learning, NLP, AI

sourceRésumé · RESUME (Education)

Awards

Selected work

13 projects

When ReAct Phase Probes Look Abstract

scale 3

Mechanistic Interpretability ResearcherAI Interpretability @ Illinois (UIUC)Apr 2026 – PresentWork in progress

A preregistered test of whether a linear probe that decodes ReAct reasoning phase at 98% accuracy is reading an abstract reasoning state or a correlated surface cue.

Overview

Linear probing is the workhorse of interpretability: train a simple classifier on a model's internal activations and see whether some property can be read out. The permissiveness is the point — and also the trap. A probe that predicts a label has not proven the model uses that label; it may be latching onto anything correlated with it.

This paper aims that critique at a specific, tempting result. ReAct traces alternate labelled Thought / Action / Observation segments, and a probe can decode which phase a token belongs to almost perfectly. That invites the reading that the model maintains an internal "I am thinking now / acting now" state. But phase is confounded by construction: thoughts contain prose and arithmetic, actions contain calls, observations contain structured results. Marker text, position in the template, and content type all move together.

An earlier one-week pilot on GPT-2 Small — the ReAct Interp repository — had already found phase trivially decodable at every layer and flagged exactly this confound; this paper is the controlled follow-up that pilot called for.

The response is a decorrelation ladder — a procedurally generated dataset that crosses every phase with mathematics, code, and prose, shuffles order and repetition, and must clear frozen lexical, position, and content-balance gates before any activation is examined. Thresholds and headline layers were committed to version control before confirmatory runs. Accuracy is then normalised against a matched natural-trace denominator into a retained-signal score, and markers are stripped rung by rung.

The result inverts the initial story, and the paper reports the collapse rather than the headline.

Terms, in plain English

Linear probe
A simple classifier trained on a model’s internal activations to test whether some piece of information is present there in an easily readable form.
ReAct
A prompting format in which a model alternates between writing a Thought, taking an Action, and reading an Observation, rather than answering in one shot.
Residual stream
The running vector each transformer layer reads from and writes back into — effectively the model’s working memory as text passes through it.
Base vs. instruction-tuned (IT)
The same model before and after being fine-tuned to follow instructions. Comparing them isolates what that fine-tuning changed inside.
Sparse autoencoder (SAE)
A tool that decomposes a dense activation vector into a large set of mostly-inactive, more individually interpretable features.
Activation patching
Copying an internal activation from one run into another to test whether that component actually causes a behaviour, rather than merely correlating with it.
Preregistration
Committing the analysis plan and pass/fail thresholds in advance, so results cannot be reinterpreted after seeing them.
Balanced accuracy
Accuracy averaged per class, so a classifier cannot score well by favouring whichever label happens to be most common.
Bootstrap interval
A range of plausible values produced by repeatedly resampling the data; if it crosses zero, the effect is not distinguishable from none.

Figures

The headline result. Retained signal R at fixed relative-depth layers across the decorrelation ladder, with 95% paired-bootstrap intervals and the frozen illusion / partial / abstract bands. Removing markers roughly halves retention at both scales.

Paper · resources/116_When_ReAct_Phase_Probes_Lo.pdf p.5, Figure 2

Natural-trace probe accuracy stays near-ceiling even after markers and newlines are removed — the appearance of an abstract phase variable, before the controlled test undercuts it.

Paper · resources/116_When_ReAct_Phase_Probes_Lo.pdf p.5, Figure 1

Feature-level corroboration at 2B: the top phase-selective sparse-autoencoder features are overwhelmingly content detectors, and the causal patch effect is small and L20-driven.

Paper · resources/116_When_ReAct_Phase_Probes_Lo.pdf p.6, Figure 3

Matched-denominator retention for every scale × rung cell.

Paper · resources/116_When_ReAct_Phase_Probes_Lo.pdf p.6, Table 1

Links

Related work

  • mechanistic-interpretability
  • probing
  • sparse-autoencoders
  • gemma-2
  • preregistration
  • transformerlens
  • slurm
  • negative-result

More Context Is Not Validation

scale 3

AI Researcher Intern, Production LLM Systems & Evaluation InfrastructurePocketFM (Pocket Entertainment) · University of Illinois Urbana-ChampaignMay 2026 – PresentWork in progress

A three-gate audit of whether LLM agents that simulate individual listeners actually predict them, or only sound like they do.

Overview

An LLM can describe an audience member fluently long before it can forecast one. That gap is the subject here. Given a listener's history and a candidate show, an agent will happily produce an individualised, confident judgement about whether that person keeps listening — and the fluency of the output tells you nothing about its accuracy.

The paper refuses to grade that output on its own terms. It sets three gates that must be cleared in order. Temporal validity: the predictor only sees evidence from before the cutoff, and the outcome stays hidden. Predictive validity: the agent must beat a cheap, prospective, non-LLM alternative on the same cohort and target — not merely another prompt. Construct validity: the logged event being predicted must actually measure the behaviour it is named after.

Each gate is tested and each result is reported as found. A richer representation does help some models. A calibrated statistical prior nonetheless remains the better probability estimator. Adding more historical context makes things worse, not better. And the audit then turns upstream to the label itself, examining what the platform's event log actually records.

Two ideas do the load-bearing work. Ranking (does the model order listeners correctly?) and calibration (are its stated probabilities honest?) are separated throughout, because a model can win one while losing the other. And listener-grouped cross-fitting keeps the same person out of both train and test, so repeated tasks cannot masquerade as independent evidence.

Terms, in plain English

ROC AUC
How well a model ranks: the chance it scores a randomly chosen positive case above a randomly chosen negative one. 0.5 is coin-flip.
Brier score
How honest a model’s stated probabilities are, measured as squared error against the actual outcome. Lower is better, and it is a different question from ranking.
Calibration
Whether "70% likely" events actually happen about 70% of the time. A model can rank well and still be badly calibrated.
Calibrated prior / base rate
A cheap statistical predictor that just uses how often the outcome occurs, tuned to be well-calibrated. The baseline a fancier model has to beat.
Cross-fitting (listener-grouped)
Splitting data into folds so that a given person never appears in both the training and test half, preventing the model from having effectively seen the answer.
Construct validity
Whether the thing you measured is actually the thing you meant to measure — here, whether a logged event really means "this person kept listening".
Cold start
A user with little or no prior history, so there is nothing personal for the model to condition on.
Action memory
Feeding the model a bounded list of the user’s actual recorded behaviours instead of a prose summary of who they are.

Figures

The calibration stress test. A plain cross-fitted calibrated prior (Brier 0.216) beats the grounded LLM hybrid (0.235) — the result that fails the predictive-validity gate.

Paper · resources/36_More_Context_Is_Not_Validat (1).pdf p.3, Table 2

Action memory versus summary personas on 1,199 tasks. Only the stronger models show ROC AUC gains whose intervals exclude zero.

Paper · resources/36_More_Context_Is_Not_Validat (1).pdf p.3, Table 1

More context, measured. Adding historical digests worsens probability error relative to the raw-candidate arm.

Paper · resources/36_More_Context_Is_Not_Validat (1).pdf p.4, Table 3

Related work

  • llm-evaluation
  • calibration
  • agent-simulation
  • baselines
  • construct-validity
  • bootstrap
  • first-author
  • negative-result

Medical Policy Digital Twin

scale 3

Tech Projects Lead, Technology Partner (4 concurrent tech companies) — engineering lead on this projectOTCR ConsultingAug 2025 – Present

A policy simulator that replays a payer’s historical claims against proposed policy edits and forecasts the cost impact before the policy ships.

Overview

Health insurers write coverage policies — the rules that decide which claims get paid — and then find out what those rules cost once they are live and denials start landing on real patients. The premise here is that this order can be reversed.

The simulator replays a payer's historical claims against a proposed edit to the policy text, so the question "what would this rule have done?" gets a concrete answer drawn from claims that already happened rather than an actuarial estimate. A cost engine turns that replay into forecast movements in the denial rate and in per-member-per-month spend, the standard unit insurers budget in.

The public demo repository shows the shape of the pipeline from the outside. It walks three stages: structured extraction from source policy PDFs, vision-model extraction of the fields on prior-authorisation forms, and a comparison stage that puts approve/deny decisions side by side with a gap-analysis table. It ships with cached outputs precisely so the interface can be demonstrated without paying for the live extraction pass — a small, practical decision that says something about how the thing is actually operated.

The second public repository is the deployment surface: a containerised dashboard plus a numbered pipeline that populates analytics tables from claims data, wired to a build-and-deploy flow. The last stage of that pipeline turns a completed run into a written memo, so the output lands as something an executive reads rather than a table they have to interpret.

Terms, in plain English

Payer
The insurer or health plan that decides which claims get paid.
PMPM
Per member per month — average cost per enrolled person per month, the unit health plans budget and compare in.
Denial rate
The share of submitted claims a payer refuses to pay.
Prior authorisation (PA)
A form a provider files to get approval before delivering treatment, so the payer can decide coverage in advance.
Digital twin
A simulation faithful enough to a real system that you can try changes on the copy and trust what you see.
ETL
Extract, transform, load — the plumbing that pulls messy source data, reshapes it to a fixed schema, and writes it where the application can query it.

Related work

  • healthcare
  • simulation
  • etl
  • postgresql
  • aws
  • streamlit
  • docker
  • llm-application
  • vision-llm

Predicting Internal Migration in the Brazilian Amazon

scale 3

ML Lead & SPIN Research Fellow, Distributed Training & Data InfrastructureNational Center for Supercomputing Applications (NCSA), University of IllinoisAug 2025 – PresentNCSA Research Conference 2026 (poster)

A graph neural network that predicts internal migration in the Brazilian Amazon as directed flows between municipality pairs — paired with gradient-boosted trees and SHAP for feature-level explanation across 5,570 municipalities and 300K+ town-to-town flows.

Project poster — NCSA Research Conference 2026. Click to read it full size.

Source · POSTER (NCSA, Spring 2026) — Predicting Internal Migration in the Brazilian Amazon

Overview

Migration is directional and relational: when conditions change in one municipality, the people who leave go somewhere specific, and where they go depends on what that destination looks like and who already went there. So the work models migration not as a per-place score but as directed flows between origin–destination pairs — dyads. Across Brazil's 5,570 municipalities there are more than 300,000 pairs with non-zero flows, and that framing captures not just how many people leave but the direction they move.

Before modelling, the team looked at who is actually leaving, grouping municipalities into quintiles by temperature, income, and electricity access. The patterns are consistent: the hottest quintile loses population roughly three times faster than the coolest; the poorest fifth declines about 2.2% while the richest gains about 2.0%; and areas without electricity show the highest out-migration. Local Moran's I shows strong spatial clustering — deforestation runs along the Amazon arc, pasture through the cerrado, and out-migration overlaps both — which is the argument for a model that respects geography. The poster is careful to call these correlations, not causal mechanisms.

Two models do two jobs. A graph neural network (GraphSAGE with attention, two layers, 64-dimensional hidden state) represents municipalities as nodes and flows as edges, letting message passing carry signal between neighbours — the piece that captures spatial and network structure. Alongside it, XGBoost with SHAP does the explaining, identifying which of 135 features move predictions most, under a 5-fold spatial cross-validation whose folds are large contiguous regions so geography can't leak between train and test. The GNN predicts; the tree explains. The features themselves are assembled from four sources that were never designed to be joined — Copernicus NDVI (a satellite deforestation proxy), the IBGE 2010 census, ERA5 climate, and IBGE SIDRA agriculture — linked by municipality code across 2005–2025.

Results are preliminary and stated as such: on held-out data the GNN reaches R² 0.453 on log-flows and 0.657 on the original scale up to the 95th percentile, with error growing on the largest flows, and it is still training. The intended payoff is a ranked list of at-risk Amazon towns to direct climate-adaptation funding, aligned to programs like PPCDAm, Bolsa Verde and REDD+. Next steps move from 2010 to 2022 census data and from correlation toward causal inference.

Terms, in plain English

Graph neural network (GNN)
A model that learns over a network of connected entities, letting each node’s prediction draw on its neighbours instead of treating every row as independent.
XGBoost / Random Forest
Two standard tree-based models. Strong, fast baselines on tabular data — and the ones a graph model has to beat to justify itself.
LSTM
A recurrent network designed for sequences, used here as the baseline that captures change over time but not relationships between places.
Slurm
The job scheduler on shared supercomputers. You submit work to a queue with a resource request rather than running it interactively.
Delta
An NCSA supercomputer, used here for training split across multiple GPUs.
Census microdata
Individual- or household-level census records, as opposed to pre-aggregated published totals.
GeoPandas
A Python library for working with geographic data — shapes and coordinates — in the same style as ordinary data tables.
Dyad (origin–destination pair)
A pair of places treated as one unit — here, a flow from one municipality to another — so the model learns where people go, not just how many leave.
SHAP
A method that attributes a model’s prediction to its individual input features, showing which factors pushed a given prediction up or down.
Local Moran’s I
A statistic for spatial clustering: it tests whether places with high (or low) values sit next to other such places rather than being scattered at random.
NDVI
A satellite vegetation index; falling NDVI over time is used here as a proxy for deforestation.

Links

Related work

  • graph-neural-networks
  • graphsage-attention
  • xgboost
  • shap
  • geospatial
  • migration
  • climate
  • interpretability
  • data-engineering
  • pytorch

ReAct Interp — the GPT-2 pilot

scale 2

Sole committer on the public repositoryApr 2026 (repository created and last pushed 2026-04-28)

A one-week interpretability sprint on GPT-2 Small that found ReAct phase trivially decodable at every layer — and said so, listing the controls it had not run.

Overview

This is the small, honest study that comes before the careful one. The question is narrow: when a language model reads a ReAct-formatted trace as plain text, does its residual stream separate which phase of the trace each token belongs to?

The repository is structured as three escalating tiers. Tier 1 caches activations at every layer and projects them down to two dimensions to look for visible clustering. Tier 2 fits a linear probe per layer, splitting train and test by whole trace rather than by token so that neighbouring tokens cannot leak the answer across the split. Tier 3 loads a pretrained sparse autoencoder and ranks its features by how much more they fire on one phase than overall, writing out links so each candidate feature can be inspected individually.

What makes it worth showing is the README's own reading of its results. It notes that the accuracy curve is nearly flat across depth, and argues that flatness is a warning sign rather than a finding — a signal available everywhere is probably a signal that was cheap to obtain. It then lists exactly what would be needed to do better: formatting controls that hold content fixed while varying markers, and causal interventions rather than correlational probes.

That list became the specification for the preregistered Gemma-2 study that followed — the paper “When ReAct Phase Probes Look Abstract.” This pilot is that project's precursor: the quick, exploratory pass whose weaknesses it was built to fix. The scope-boundaries section states the limits up front rather than in a footnote.

Terms, in plain English

PCA / UMAP
Two ways of squashing high-dimensional activations down to a 2D picture so you can look for clusters. PCA keeps directions of greatest spread; UMAP tries to preserve local neighbourhoods.
Majority-class baseline
The score you get by always guessing the most common label. Any real result has to beat it.
Neuronpedia
A public catalogue of sparse-autoencoder features with descriptions, used to look up what a numbered feature appears to respond to.

Figures

Tier 2. The probe hits ~93% at every layer against a 25% baseline. The README reads that flatness as a warning sign, not a finding.

Repository · github.com/Chinmayrawat15/ReAct_interp — figures/tier2_probe_accuracy.png

Tier 1. Per-layer PCA and UMAP projections coloured by phase.

Repository · github.com/Chinmayrawat15/ReAct_interp — figures/tier1_pca_umap.png

Tier 3. Top differential SAE features per phase at blocks.7.hook_resid_pre.

Repository · github.com/Chinmayrawat15/ReAct_interp — figures/tier3_top_differential_features.png

Links

Related work

  • mechanistic-interpretability
  • gpt-2
  • sparse-autoencoders
  • probing
  • exploratory
  • python

Beyond Gravity Models

scale 2

Co-authorUniversity of Illinois Urbana-Champaign (NSF REU)2026

A co-authored paper on a graph neural network for internal migration in Mexico that beats gravity-model baselines by adding a spatial gate and an income-conditioned climate gate — with a built-in interpretability boost.

Figure 1 from the paper — mean temperature, precipitation, and GDP per capita across Mexican municipalities. Click to enlarge.

Source · PAPER-C p.2, Figure 1 — Beyond Gravity Models

Overview

Classic gravity and radiation models predict how many people move between two places from population and distance. Their modern deep-learning successors — Deep Gravity, Deep Radiation — fit that relationship with neural networks but keep two blind spots: they ignore spatial correlation between neighbouring regions, and they treat climate as just another input, leaving any interaction between climate and a region's economic circumstances implicit and uninterpretable.

This co-authored paper proposes the Spatially-Gated Deep Graph Network (SGDG) to close both gaps on Mexican internal migration. The spatial gap is handled by feeding each municipality not only its own features but the spatially-lagged features of its neighbours (an SLX design, a single hop over the 15 nearest municipalities), so a prediction is informed by its surroundings. The climate gap is handled by a deliberate architectural choice: the climate variables bypass the encoder and enter through a coefficient conditioned on the municipality's income percentile — a logistic gate, in the spirit of feature-wise linear modulation — so the model can express, and then expose, how a climate shock's effect on migration depends on how poor a place is.

The dataset is its own contribution: a complete directed panel of migration flows harmonised from ten institutional sources across Mexico's municipalities, with flows modelled as overdispersed counts under a negative-binomial likelihood. Splits are stratified by GDP per capita and made at the municipality level to avoid leakage, with negative sampling for the many zero-flow pairs.

The result is competitive where it counts. Against Deep Gravity and Deep Radiation, SGDG wins on the common-part-of-commuters metric and on the log-scale error and R² that reflect the small flows making up most of the data — the gravity model still fits the largest flows better on raw RMSE. The interpretable gate reads out a substantive finding: climate weighs more heavily on out-migration from poorer source municipalities than richer ones. This is the Mexico counterpart to the Brazilian-Amazon migration work elsewhere in this town — the same research group, a different country, and a gated architecture.

Terms, in plain English

Gravity model
The classic model of movement: flow between two places grows with their populations and falls with the distance between them.
Radiation model
A parameter-free alternative to the gravity model that predicts movement from the population sitting "in between" an origin and destination.
Spatial lag (SLX)
Adding a place's neighbours' features to its own, so the model sees local context instead of treating each place in isolation.
Income-conditioned gate
Letting the weight the model puts on climate depend on a place's income — so climate can matter more for poorer regions — and be read off afterwards.
Negative binomial
A count distribution that, unlike Poisson, lets the variance exceed the mean — a fit for migration flows, which are highly overdispersed.
CPC (Common Part of Commuters)
A 0–1 score for how well predicted flows match observed ones overall, without a few huge city-to-city flows dominating the error.

Related work

  • graph-neural-networks
  • migration
  • gravity-models
  • spatial-lag
  • climate
  • interpretability
  • negative-binomial
  • mexico

Open Source Contributions

scale 2

Open Source Contributor, ML frameworks & agent toolingJan 2026 – Sep 2026 (dates of first and most recent pull requests found)

Merged bug fixes to TransformerLens, marimo, OpenClaw and pylint, plus open pull requests to PyTorch, LiteLLM, Prefect, vLLM and Hermes.

Two of the upstream projects contributed to. Logos are the trademarks of their respective projects and appear here to identify them, not to imply endorsement.

Source · Project logos (provided) — OpenClaw and PyTorch

Overview

The pull requests here share a recognisable shape: someone hit a specific, reproducible defect while using a tool for real work, then went and fixed it upstream instead of routing around it.

Two of the merged fixes are in TransformerLens, the standard library for mechanistic interpretability research — the same library used in the Gemma-2 phase-probing work. One concerns a model adapter that ignored an architectural flag, causing a hook point to go missing for an entire family of checkpoints; it was filed as a bug report first and fixed in a follow-up. The other stops the tokenizer wrapper from prepending a beginning-of-sequence token when the underlying tokenizer has none. Both are the kind of quiet correctness bug that silently corrupts downstream experiments rather than throwing an error.

The marimo contribution follows the same two-step pattern of report-then-fix, replacing a bare Python KeyError with an actionable message. Three OpenClaw fixes are merged — one for prompt caching breaking on specific model versions (a failure that costs money and latency without announcing itself), plus two infrastructure fixes disclosed as AI-assisted. A merged pylint change refines its too-many-ancestors check.

The open pull requests span PyTorch's FX graph visualiser and checkpoint loading, LiteLLM's auth error codes, Prefect's client connection retries, vLLM's multimodal fallback, and Hermes' agent configuration. Several PRs are unmerged or closed, which is ordinary for drive-by contributions to large projects and is recorded here as such rather than glossed.

Terms, in plain English

TransformerLens
The standard Python library for mechanistic interpretability — it exposes a model’s internal activations at named hook points so you can read and edit them.
BOS token
A special "beginning of sequence" marker some tokenizers prepend. Adding one a model does not expect shifts every position and quietly changes results.
Prompt caching
Reusing the provider-side computation for a repeated prompt prefix, which cuts cost and latency. When it silently stops matching, you pay full price without an error.
marimo
A reactive Python notebook stored as plain Python, so notebooks can be diffed, versioned, and run as scripts.
Merged vs. open vs. closed
Merged means the maintainers accepted the change into the project. Open means still under review. Closed without merge means it was not taken — common for unsolicited fixes to very large projects.

Links

Related work

  • open-source
  • transformerlens
  • pytorch
  • marimo
  • openclaw
  • litellm
  • upstream-fixes
  • python

Phantom

scale 2

Team Lead (team HackVoyagers)2026 (repository commits Feb–Mar 2026)HackIllinois 2026 · YC Summer School 2026

An autonomous penetration-testing agent: point it at a target and it crawls the attack surface, plans and executes multi-step exploit chains in a ReAct loop, and returns CVSS-scored findings with reproduction steps in under 60 seconds.

The live Phantom demo. Intended for authorised testing of targets you own or have permission to test.

Web · https://phantom-hackillinois.pages.dev (live site, retrieved 2026-08-26)

Overview

A penetration test is a loop, not a checklist. You look at what a site exposes, form a hypothesis about where it is weak, try something, read what came back, and let that reshape the next attempt. Automated scanners historically struggle here because they run a fixed battery of probes and cannot follow a chain that only becomes visible two steps in.

Phantom's design puts an LLM in that loop. A headless browser crawler first maps what the target actually exposes — pages, endpoints, forms, technologies — because you cannot reason about an attack surface you have not enumerated. The agent then runs a ReAct cycle over that map: reason about what to try, act, observe the response, and revise. The vulnerability classes it targets are the common web ones, and several of them are precisely the kind that need multi-step chains rather than single probes.

Findings come back scored on the standard industry severity scale with reproduction steps, which is the difference between a list of alarms and a report someone can act on. The interface streams the agent's intermediate reasoning live as it works rather than presenting only a final verdict — the right choice for a tool whose trustworthiness depends on a human being able to audit how it reached a conclusion.

Phantom was built at HackIllinois 2026 by a team led here, ships as a working live demo, and turns a cold target URL into a ranked, CVSS-scored report in under a minute — measured, not aspirational. It is meant for authorised testing of targets the operator owns or has permission to test.

Terms, in plain English

Penetration test
An authorised simulated attack on a system you are permitted to test, run to find weaknesses before someone hostile does.
Attack surface
Everything about a system that an outsider can reach and interact with — every page, form, and endpoint.
SQLi / XSS / IDOR / CSRF
Four common web vulnerability classes: injecting database commands, injecting scripts that run in another user’s browser, reaching another user’s data by changing an identifier, and tricking a logged-in user’s browser into issuing a request they did not intend.
CVSS
The Common Vulnerability Scoring System — the industry-standard 0–10 severity scale, so findings can be triaged consistently.
Playwright
A browser-automation library that drives a real headless browser, so it sees pages the way a user does, including content rendered by JavaScript.
Server-Sent Events (SSE)
A one-way channel that lets a server push updates to a page as they happen, used here to stream the agent’s reasoning live.

Links

Related work

  • security
  • agents
  • react-loop
  • playwright
  • cloudflare-workers
  • modal
  • typescript
  • python
  • hackathon

Adaptation

scale 2

AI Researcher Intern, Production LLM Systems & Evaluation InfrastructurePocketFMMay 2026 – Present

A production LLM service that rewrites full scripts into a target language, adapting cultural references rather than translating them.

PocketFM’s public "Copilot" writing product, which advertises adapting stories to 10+ languages.

Source · PocketFM — Copilot product marketing image ("COPILOT by PocketFM")

Overview

Translation and localisation are different problems, and the gap between them is where adapted media usually fails. A literal translation preserves the words and loses the story: a joke that depends on a pun stops being funny, a character name carries the wrong associations, a setting that signalled something specific to the original audience signals nothing to the new one.

The stated design goal here is the harder one. The service takes a full script and produces a version for a different language in which names, settings, and references have been adapted to the target culture rather than carried across intact. That framing — adapted, not translated — is the whole specification, and it is what makes the problem well suited to a language model in the first place: the decision about whether a reference should be replaced, and with what, requires knowing what it was doing in the original.

Two things about the scope are worth stating plainly. It operates on full scripts rather than isolated lines, which means consistency has to hold across a long document — a name changed in one scene has to stay changed, and a running reference has to keep working. And it is described as shipped and in use on the platform, which places it in a different category from a prototype: it has real users with editorial standards, on real content.

Terms, in plain English

Localisation vs. translation
Translation converts the words; localisation changes references, names, and settings so the result lands the same way for a new audience.

Related work

  • llm-application
  • localization
  • production
  • nlp

Blockbuster Engine

scale 2

Software Engineer Intern, GenAIPocketFM (Bangalore, India)May 2025 – Jul 2025

An ensemble of fine-tuned LLMs and tree/neural models predicting content launch outcomes, deployed as containerised microservices.

PocketFM’s audio-series app — the catalogue whose launch outcomes the Blockbuster Engine is built to forecast. Illustrative product image, not the engine itself.

Source · PocketFM — app / product marketing image

Overview

Deciding what to publish is a forecasting problem with an expensive error term. Launch something that does not find an audience and you have spent production budget and a slot in the catalogue; the cost of a wrong call is concrete.

The approach combines two model families that fail differently. A language model fine-tuned with a lightweight adaptation technique can read the content itself — the text, the premise, the things that make a story work or not — and pick up signal that never appears in a structured table. Gradient-boosted trees and neural networks read the tabular side: the metadata and behavioural aggregates that describe how comparable content performed. Ensembling them is a hedge, because the cases where a text model is confidently wrong are not usually the cases where a tabular model is.

The engineering constraint shapes the design as much as the modelling does. Serving this over a large daily stream means the models cannot live in a notebook; packaging them as containerised microservices is what makes them callable by the rest of the platform and independently deployable.

Note what the two accuracy-shaped numbers in the record actually measure. One is a change in launch outcomes; the other is the classifier's accuracy at predicting them. They are different quantities and the record does not connect them causally.

Terms, in plain English

LoRA fine-tuning
Low-Rank Adaptation — training a small number of extra parameters instead of the whole model, which makes adapting a large model to a specific task far cheaper.
Gradient-boosted trees
A model that builds many small decision trees in sequence, each correcting the last. Consistently strong on tabular data.
Ensemble
Combining several different models’ predictions, on the bet that their mistakes are uncorrelated enough to cancel out.
Microservice
A small independently deployable service that does one job and is called over the network, rather than being compiled into one large application.

Related work

  • lora
  • ensembles
  • gradient-boosting
  • microservices
  • docker
  • production-ml
  • recommendation

BeClear

scale 2

Co-Founder2024 – 2025

An AI college-admissions agent, built on a RAG pipeline with LoRA fine-tuning; sold in 2025 to a group of schools in India.

BeClear — brand wordmark. Logo supplied by the founder; no public product page was found.

Source · BeClear — brand logo (provided)

Overview

College admissions advice is a retrieval problem wearing a counselling problem's clothes. The information a student needs is specific, scattered, and changes yearly — deadlines, requirements, what a given programme actually looks for — and it is exactly the kind of thing a general language model will answer confidently and wrongly.

Retrieval-augmented generation is the standard response to that failure mode. Rather than relying on what the model absorbed during training, the system looks up relevant source material at question time and answers from what it retrieved. The answer stays anchored to real documents, and updating the knowledge means updating the documents rather than retraining anything. Pairing that with lightweight fine-tuning addresses the other half: retrieval controls what the model knows, fine-tuning shapes how it responds.

The latency target in the record is a product decision more than a technical one. A conversational tool that takes long enough for the user to notice stops feeling like a conversation, and for a retrieval system that budget is genuinely constraining, because the lookup happens before generation starts. Hitting it means the retrieval step cannot be an afterthought.

The record for this project is short: a distribution figure, a partner count, and an outcome. The work is dated to a period before all the other projects here.

Terms, in plain English

RAG (retrieval-augmented generation)
Look up relevant documents first, then have the model answer from what it retrieved — so answers stay anchored to real sources instead of the model’s recollection.
Latency
How long the user waits between asking and seeing an answer.

Related work

  • rag
  • lora
  • startup
  • edtech
  • llm-application

Multi-Agent Systems & Security

scale 1

Researcher, Multi-Agent Systems & SecurityAlta Research Group, UIUC (advisor: Prof. Hao Peng)Aug 2026 – Present

Two connected questions in multi-agent coding safety, with Prof. Hao Peng: whether sub-agents can covertly pass confidential data past an LLM monitor, and whether the reasoning agents write down is what actually drives what they do.

Overview

When a coding system is decomposed into several cooperating agents, one common safety design is to put a monitor on the channel between them: another model that reads what the sub-agents say to each other and flags anything it should not see passing through.

The question this work poses is whether that monitor actually holds. A channel that carries arbitrary natural language is a channel with enormous capacity for encoding things it was not meant to carry — meaning can be hidden in phrasing, in ordering, in choices that look innocuous individually. A monitor that reads for obvious leakage may pass all of it. This is an adversarial evaluation problem: the honest way to find out is to actively train and stress-test agents that try to get data past the monitor, rather than to assume good behaviour and check for accidents.

Two pieces have to be built to ask the question at all. An agent harness — the scaffolding that runs the multi-agent system, defines what each agent can do, and carries messages between them. And a monitor evaluation, which is the harder half: you have to measure what the monitor catches and what it misses, which means constructing cases where you know the ground truth about whether information was actually leaked.

A connected thread, developed as a research proposal with Prof. Hao Peng, asks a more basic question about systems like this: when an agent writes down its reasoning before it acts, is that reasoning what actually drives the action — or fluent narration alongside a decision the model already made? It matters because oversight of agents, the monitor above included, works by reading what agents say. The direction measures this at the moment an agent commits to an action, and treats the harness — the scaffolding around the model — as something to evaluate by what it does to the decision, not only by task success. In the two-agent case the question sharpens to the handoff: when one agent passes work to another, does a flaw in what crosses between them propagate into an unsafe action?

The work is early and the proposal is a private draft; it is described here only at a high level.

Terms, in plain English

Multi-agent system
Several LLM agents working together on one task, each with its own role, passing messages between them.
Monitor
A model whose job is to watch what other agents say to each other and flag anything disallowed — a safety layer on the channel.
Covert channel
A way of smuggling information through a communication path that was not designed to carry it, by hiding meaning in choices that look innocent.
Agent harness
The scaffolding that actually runs agents: what tools each can call, how messages move between them, and how a run is recorded.
Faithful (load-bearing) reasoning
Reasoning that actually causes the action it precedes, rather than a plausible explanation written alongside a decision the model already made.

Links

Related work

  • multi-agent
  • ai-safety
  • security
  • evaluation
  • llm-monitoring
  • reasoning-faithfulness
  • agent-harness
  • early-stage

Test-Time Scaling for Coding Agents

scale 1

Researcher — Agentic Systems (with Prof. Hao Peng)Alta Research Group, UIUC (advisor: Prof. Hao Peng)Sep 2026 – Present

An early system that lets coding agents explore a codebase over many interactions to surface new, reusable knowledge about a task — with exploration pushed into the background so it stays cheap for users.

Overview

Coding agents are unusually sensitive to the environment they run in. Faced with a new issue in an unfamiliar repository, most of what an agent needs — the conventions the codebase already follows, the way a similar problem was solved before — is sitting in the repository itself, but a single pass tends to skate over it. The premise of this work is that letting an agent interact with that environment over many steps, rather than answering in one shot, can surface knowledge about the task that a single attempt misses.

Two engineering ideas carry it. The first is partitioning: rather than one agent reasoning over a whole repository at once, a task is split so that sub-agents each reason over a smaller, focused slice, which makes it easier for each to reach a correct, well-grounded conclusion. The second is orchestration: those sub-agents’ findings then have to be recombined and scaffolded back together into a single coherent solution.

The design constraint is cost. Exploration is only worth doing if the user does not pay for it in latency, so the intent is to run it in the background — in downtime, ahead of when it is needed — rather than on the critical path of a request. The project is early and deliberately provisional: approaches are expected to change as it is tested.

Terms, in plain English

Test-time scaling
Spending more computation while a model is answering — more steps, attempts, or exploration — rather than making the model itself bigger.
Exploration vs. exploitation
Exploration spends effort gathering new information about a task; exploitation uses what is already known to act. This work invests up front in exploration.
Partitioning
Splitting a large task into smaller, focused pieces so each can be worked on — and reasoned about — more reliably.
Orchestration
Coordinating several agents or sub-tasks and combining their separate results into one coherent solution.

Links

Related work

  • agents
  • coding-agents
  • test-time-scaling
  • multi-agent
  • orchestration
  • early-stage