Research

What I have worked on, and where I want to take it next.

Projects

  • Brain Tumor Segmentation on Multi-Modal MRI: U-Net vs. TransUNet
    Yihang Jiao. Independent project, 2025. I built a 2D segmentation pipeline for four MRI modalities (FLAIR, T1, T1-CE, T2). A U-Net, a configurable U-Net, and a TransUNet all train through one entrypoint under the same data and training settings, so the three can be compared fairly. The data path does brain-region cropping, skips empty slices, normalizes each slice, and oversamples slices that contain tumor to handle the class imbalance. TransUNet reached 0.7575 foreground Dice and the tuned U-Net 0.7326. Changing only the loss function, without touching the architecture, was worth about 7 Dice points. The class-wise numbers show the transformer's gain comes from one diffuse tumor subregion (0.7652 against 0.6800) rather than from the compact ones.
  • VibeRepair+: Retrieval-Augmented Program Repair for Java and Python
    Yihang Jiao, Yingjia Gu, Shengyue Guo. CS Software Engineering for GenAI, 2026. I built a pluggable retriever framework over a corpus of 97,402 bug-fix examples, where adding a new retrieval method takes one Python file. I also rebuilt the evaluation. The original test asked each retriever to find a bug inside the same database it was built from, and every retriever scored 1.000, but the retrievers agreed on only 34.1% of their top results. I designed an external test on 521 real Defects4J bugs, with a token-overlap ground truth and a two-stage leak check. Under this test BM25, a simple word-matching method, beat the dense embedding by 27.8% on recall@10, and a rank-fusion hybrid led five of six metrics.
  • When the Attack Is Not an Attack: Validity Failures in LLM-Generated Red-Teaming
    Yihang Jiao. Research assistant, FOCAL Lab, with Prof. Gagandeep Singh, 2024; revised 2026. Automated red-teaming uses one language model to generate the probes that test another, but a probe only says something about the target if it is a valid test of the target. I measured four ways it fails to be. A rewriting prompt can raise the flip rate by changing the input's true label, which overstates attack success by 3.05x overall and 19.5x on topic classification. A probe can fail to be a well-formed input at all, which understates it, 12.5% against 41.7% on sentence-pair tasks — so the two errors push in opposite directions and do not cancel. The generating model itself refuses 6.2% of the time, at a rate that tracks the prompt under study, and those refusals get scored as attacks. And a pipeline can report a number computed from something other than what it generated, which is invisible in the outputs. Underneath all four, rewriting keeps only 44.5% of the attacks it is applied to while making them much more fluent (median perplexity 22.9 against 522).
  • LLM RAG Reranker with Pairwise Comparison and Citation Context
    Yexin Wu, Yihang Jiao. Text mining, registered as CS 397 (Prof. Jiawei Han's section), 2024. Search over papers ranks them by their own title and abstract. We reranked the candidates by asking a language model to compare them two at a time, and treated the noisy comparisons as a bandit problem so that most pairs could be skipped, from about 190 down to 44. We also collected 10,395 papers and 497,210 citation contexts, so the reranker could see how a paper is used by others. This raised MRR from 0.485 to 0.572.

What I want to work on next

Evaluation protocols for machine learning on scientific data. Leave-one-out and random splits sit behind a lot of published results, and they overstate performance whenever the question and the answer come from the same source. In VibeRepair+ every retriever scored 1.000 under a test that was really asking whether a document can find itself. The same shape shows up wherever the split does not hold out the thing the model is supposed to generalize over. I would like to build a recipe that can be checked rather than a new model: a way to construct queries from outside the corpus, a two-stage leak check, and a random-retrieval floor reported next to every headline number. Biomedical data makes this harder, not easier, because the labels are few, the positive cases are rare, and which plate or batch a sample came from often lines up with the condition closely enough that a model can score well by reading the batch instead of the biology.

Also interested in: perturbational cell-state modeling. A protein's structure is mostly decided by its sequence, but a cell's state is decided by many things at once, such as gene expression, protein abundance, and spatial organization. We almost never measure all of them in the same cell at the same time, so the modeling problem is also a problem of combining incomplete measurements. I have not worked on this yet, and I note it as an area I would like to learn.