M.S. student, University of Michigan
I work on post-training of large language models with Prof. Jie Liu at Michigan. Before that, I spent a year at the Institute of Automation, Chinese Academy of Sciences (CASIA), studying why RL-trained reasoning models degrade in ways their benchmark scores don't show.
Most of my research keeps returning to one question: where should a model's task knowledge and computation live? Prompts are modular but re-interpreted on every call; weights are effective but hard to load, unload, or share. My recent paper, KV-Skill, treats expertise as a third thing — an external operator that a frozen model reads through a small interface, built from written text or learned directly from reward. The same question, at smaller scales, runs through the rest of my work: how RL credit should be split across reasoning depths and across tokens, and when reasoning can leave token space for latent space at all — including a negative result I think is as useful as the positive ones.
External task knowledge (KV-Skill). The paper above, but it started as a simpler engineering question: we kept re-sending the same long "how to do this task" prompt to a frozen model and paying for it every call. Compressing that knowledge into KV-cache states, then asking what those states really are, led to the operator view — and to the surprise that a text-derived operator survives truncation to a single task-aligned direction per injection layer.
Credit assignment in GRPO. At CASIA I noticed that a model's aggregate Pass@1 can rise while its pass rate falls in every reasoning-depth bin — a Simpson's-paradox collapse hidden by the headline number. I derived a variance-update identity that explains the mode-seeking behavior, then built STAGE-GRPO, a stratified-advantage variant that removes the per-bin degradation (MATH-500 Pass@1 0.826 → 0.868). A per-token follow-up — contrasting branch positions where same-prefix correct and incorrect rollouts diverge — is in ablations now. codereport
Latent-space reasoning, and why it breaks at 1.5B. I built MCIG, a training-free per-token redundancy signal, and a latent <SKIP> adapter meant to fold redundant reasoning steps into hidden states. It doesn't work at this scale, and I wrote up exactly why: four separate mechanisms (a signal that discriminates offline but is useless as an RL reward, error accumulation, KV-cache poisoning, and a RoPE-manifold mismatch), each isolated by ablation. The write-up argues for selective latent↔explicit switching instead of pure latent skipping. codereport
Faithful deep research over biomedical literature. A training-free multi-module agent for GLKB where every claim passes a mechanical faithfulness gate before it can be emitted. Higher fact-level completeness (0.442 → 0.645) and entity coverage at 55% lower cost, with zero fabricated citations — the constraint that actually matters in this domain. code