I am a Researcher at the Indian Institute of Science (IISc), working on reinforcement learning, model distillation, and mechanistic interpretability for reasoning and language models.
My research spans the full stack around reasoning models โ post-training methods that build reasoning (RLVR, preference optimization, reasoning distillation), the test-time strategies that make it efficient (compute allocation, deciding when to stop deliberating), and the empirical/evaluation work needed to trust any of it. Right now I'm going deeper into mechanistic interpretability โ studying the internal circuits and representations behind multi-step reasoning in large language models, to understand failure modes like reward hacking and unfaithful chain-of-thought well enough to actually fix them, not just detect them. A specific thread I'm pulling on: disentangling memorization from genuine reasoning mechanistically โ which circuits are doing lookup versus computation โ and using that understanding to work toward guiding reasoning safely, so models can be steered away from unfaithful or unsafe reasoning traces rather than just penalized after the fact.
I build and release everything in the open โ training/eval systems, checkpoints, and datasets โ in lieu of formal publications, via GitHub and Substack.
2025.01 - 2025.06: Data Science Intern, iNeuron.ai, Bengaluru.
2023.02 - 2023.12: Data Scientist, NIELIT, Jammu & Kashmir.
๐ ๏ธSelected Projects
Open Post-TrainingPython ยท PyTorch ยท Transformers ยท TRL ยท vLLM ยท SGLang ยท 2026A single reusable system that takes a base model through the full post-training recipe, stage by stage, rather than one-off scripts per experiment: evaluation, preference tuning, reasoning distillation, and RLVR training all share the same components. I use it as a research testbed โ running hypotheses through the pipeline and producing demos/proof-of-output for specific ideas. One such run: a GRPO ablation on a base model (64.0% MATH-500) dropped to 48.0% at a 5-step checkpoint before recovering to 60.0% at 50 steps, with response length shrinking from 303 โ ~220 tokens โ evidence that sparse binary-correctness reward is a weak signal without more steps and better reward shaping.
Olmo-3 From ScratchPython ยท PyTorch ยท Hugging Face ยท 2026From-scratch implementation of AllenAI's Olmo-3 (7B/32B) โ GQA, YaRN-scaled RoPE (8Kโ65K), sliding-window attention with periodic global refresh, SwiGLU, RMSNorm โ plus a custom KV-cache module with unrotated key/value storage for RoPE compatibility, reducing cache memory via GQA while supporting bfloat16 inference.
Reinforcement Learning: Zero to Hero2025A maintained RL repository spanning MDPs through PPO and DDPG, with clean implementations and math annotations for practitioners moving into post-training research.