Haoran (Casper) Zhang

Software Engineer · AI/ML Systems

I build LLM systems end to end — data pipelines, evaluation frameworks, and user-facing AI products.

Recently: LLM extraction pipelines over biomedical literature, multimodal benchmarks for large vision-language models, and the GPU serving stack underneath.

M.S. from Yale University · B.S. in Computer Science, University of Washington - Seattle

Portrait of Haoran (Casper) Zhang

Experience

Org:
Yale School of Medicine
Role:
NLP Research Intern
Type:
Research
Period:
2025.06–2026.02
Location:
New Haven, CT

NLP Research Intern — NIH-Funded PFAS Water Project

LLM pipeline that screened 18.7M PubMed records down to 1,044 PFAS drinking-water studies at 0.95 F1 and extracted ~11,000 entities across 8 schema types at 0.87 macro-F1. I built the interactive geographic evidence map end to end and ran the human-in-the-loop evaluation.

  • Funnel: 18.7M records → keyword regex → 7,726 candidates → LLM screening → 1,425 abstracts (0.952 F1 on a 200-abstract human-annotated held-out set) → 1,044 final studies, 10,996 entities across 8 PECO-framework types (0.873 exact / 0.923 relaxed-boundary macro-F1).
  • Model selection: GPT-5.2 vs Claude-4.5-Opus/Sonnet — comparable quality, chosen on cost (~$50 per 7,000-abstract round). Prompts tuned via an error-driven loop with two human annotators; error analysis separated boundary mismatches from true failures.
  • Built the Geographic Evidence Map end to end: Google Maps API geocoding onto an interactive OpenStreetMap frontend — chemical/year filters, citation-weighted markers, legacy-vs-emerging marker shapes, entity-highlighted abstract popups. Surfaced a decade-long research lag between the PFOA phase-out and studies of its replacement ADONA. Also customized MedViz's semantic point-cloud map with an LLM chatbot over user-selected publication clusters.
  • Evaluated UMLS concept normalization as retrieve-then-rerank (BM25 via Elasticsearch/Kiwi + LLM reranking); dual-annotator review of 550 mappings found only 47.5% exact-semantic matches — a quantified negative result motivating a multi-ontology framework (ENVO, GeoNames, ChEBI, HPO/MONDO).

A Large Language Model Approach for Automatic Extraction of Metadata Related to PFAS in Drinking Water — under review, Nature collection on AI for Sustainable Clean Water, 2026. Supported by NIH grants R24ES036135 and P42ES033815.

LLM extractionHuman-in-the-loop evalGeospatial visualization
Org:
Yale University
Role:
LVLM Research Assistant
Type:
Research
Period:
2024.12–2025.06
Location:
New Haven, CT
Published:
ACM Trans. Computing for Healthcare '26

LVLM Research Assistant — LMOD+ Benchmark

Published

A 32,633-instance multimodal ophthalmology benchmark evaluating 24 MLLMs (GPT-4o, InternVL, Qwen, LLaVA, DeepSeek) across 4 task families. I built the unified PyTorch inference framework and the curation pipeline that unified 10 incompatible public datasets — a ~50% expansion — released with a public leaderboard.

  • Unified inference framework: one interface across 24 models (2B–13B open-weight + GPT-4o via API), identical prompts and default configs, class-balanced stratified evaluation subsets, 3-seed stability sweeps.
  • Curation pipeline: 10 public datasets with heterogeneous annotations (masks, boxes, ordinal stages, metadata) → one benchmark, 5 imaging modalities, 12 conditions; auto-generated prompt–response pairs; 1,000-instance fast subset + live leaderboard.
  • Prompting study (zero-shot / 3-shot / CoT / self-consistency) with a proposed Hallucination Resistance metric: CoT raised recall 0.109 → 0.237 but collapsed format compliance 1.0 → 0.02.
  • 5-category error taxonomy (GPT-4o-as-judge + manual review): 50% of failures traced to misinterpreted visual features. Fine-tuned CNN/RETFound baselines hit 80–98% on the same data, isolating the zero-shot gap to model capability, not data quality.

LMOD+: A Comprehensive Multimodal Dataset and Benchmark for Developing and Evaluating Multimodal Large Language Models in Ophthalmology — ACM Transactions on Computing for Healthcare, 2026 (arXiv:2509.25620). Extends LMOD, Findings of NAACL 2025.

MLLM benchmarkingPyTorchDataset curation
Org:
University of Washington
Role:
ML Research Assistant
Type:
Research
Period:
2023.01–2023.12
Location:
Seattle, WA

ML Research Assistant — Edge Vision MoE

A mixture-of-experts design for compact vision transformers that replaces softmax routing with parallel input-dependent sigmoid gates — keeping a static execution graph with deterministic latency on edge accelerators (ANE, Edge TPU) — and lifts iNat'21 fine-grained accuracy +8.9 points at ~2% FLOPs overhead.

  • Mechanism: 1×1-conv bottleneck adapter experts wrap the final two backbone stages of MobileViT / EfficientFormer; each expert weighted by an independent sigmoid gate computed from globally average-pooled features. All experts run in parallel — no dynamic routing, full gradient flow, deterministic latency.
  • Results: EfficientFormer-S0 +8.9 on iNat'21 (61.5 → 70.4) at 0.413B → 0.422B FLOPs; +4.8 on RareSpecies; MobileViT-0.5 +4.9 on iNat'21 at slightly fewer FLOPs. Consistent gains across iNat'21, iWildCam, RareSpecies, SSW60.
  • Training: entropy-regularized gating loss prevents expert collapse; two-stage protocol (dense HP search on a 10% subset → joint gate+expert optimization) with Optuna sweeps (4 experts, C/16 adapter dim, entropy weight 0.02), layer-wise gradient scaling, fixed-seed reproducibility.
Efficient MLMoEEdge inference
Org:
JICHUANG Technology Co., Ltd.
Role:
Data Scientist Intern
Type:
Industry
Period:
2023.06–2023.09
Location:
Taiyuan, China

Data Scientist Intern

Built recommendation and prediction systems for an education platform.

  • Built a hybrid course recommender (collaborative filtering + BERT content embeddings), improving top-5 precision by ~20% and reducing cold-start.
  • Trained Random Forest / XGBoost models for dropout-risk prediction at 90% accuracy (+15 pts over baseline), enabling early intervention.
RecSysXGBoostNLP

Projects

FleetLab split-brain recovery demo: a terminal log of the eight-event chain — a live agent's heartbeats are delayed, it is falsely suspected, its task is reassigned under a higher epoch, and the returning agent is fenced by its stale epoch
Status:
v0.4.0 · Open Source
Stack:
C++20 · gRPC · Docker Compose · FastAPI · Next.js
Type:
Discrete-event simulator · Distributed control plane

FleetLab

v0.4.0 · Open Source

Accelerator fleet scheduling · Invariant-checked simulation · Asserted split-brain recovery

A deterministic, invariant-checked discrete-event simulator for accelerator fleet scheduling — topology-aware gang placement on a TPU-style 3D torus, priority preemption, quotas, scripted failures — paired with a real multi-process controller/agent runtime over gRPC that detects failures by heartbeat timeout, reassigns work under epoch fencing, and proves its recovery claims in asserted demos. A FastAPI experiment layer and a Next.js dashboard drive it; benchmarks are reproducible.

  • Wrote a deterministic C++20 discrete-event scheduler that places 100,000 tasks across a 10,000-node TPU-style 3D torus in ~80 s single-process — verified by 381 tests and a 10,000-seed randomized invariant sweep whose vacuousness guard rejects runs that schedule nothing.
  • Built a control plane of 20 OS processes (gRPC, Docker) with heartbeat failure detection, epoch-fenced reassignment, and dedup under injected duplicates; a scripted split-brain run asserts the full 8-event recovery chain in order, not just its presence.
  • Reported a negative result: priority-gang (topology-aware + preemption) does not complete under contention — its planner re-runs the placement search per candidate victim, so cost is a product of the factors, not their sum. Release-suite figures regenerate byte-for-byte from a retained manifest; every run traces to a scenario hash and seed.
VibeCourt — Justice Ruby's Relationship Court: a storybook relationship casebook for archives, agreements, and guided reflection
Status:
v1.0.0 · Open Source
Stack:
Next.js · TypeScript · Tailwind CSS · Dexie / IndexedDB · Provider-agnostic AI (OpenAI-compatible)
Type:
4-stage pipeline · Local-first

VibeCourt

v1.0.0 · Open Source

AI mediation platform · 4-stage pipeline · Local-first, privacy-preserving

An AI-guided mediation platform that interviews each side privately, transforms unstructured narratives into structured case intelligence, and produces a transparent resolution brief — including uncertainty-aware responsibility analysis. All data stays in the browser; no accounts, no server database.

  • Built a 4-stage LLM pipeline — adaptive interviewing, structured extraction, statement generation, and comparative ruling — with outputs validated in code, not prompts: 35 runtime rules across 5 per-stage validators reject bad output before acceptance.
  • Enforced no-fallback semantics for AI calls: a failed call stays pending for explicit retry and is never silently replaced by local imitation.
  • Kept 100% of case data client-side across 13 typed IndexedDB tables — no accounts, no server database — verified by 784 test cases that run fully network-disabled.
Status:
Open Source · Personal project
Stack:
Python · LangChain · Llama 3.1 8B · ChromaDB · Redis · Django · React
Type:
Retrieval-augmented assistant · Reproducible evaluation harness

FitNutri AI

Open Source

Local RAG over biomedical literature · Deterministic nutrition lookups · Frozen-baseline ablation

A retrieval-augmented nutrition assistant over 5,907 PubMed abstracts and a pinned USDA FoodData Central snapshot, running entirely on one 6 GB laptop GPU. Two answer paths: literature questions go through retrieval and generation, while nutrient lookups resolve to a SQL query against the snapshot. Built around a frozen baseline and a nine-arm ablation.

  • The model never produces a nutrient value — it extracts two strings and SQL does the rest, which is why the deterministic path scores 88.3% (106/120) on a held-out split with 0 out-of-tolerance values and 0 unit errors. Every failure is food-name resolution.
  • Froze the baseline's inputs, not just its function: a digest covering the prompt, model tag, top_k, and the PubMed query that decides what is in the index at all. A test fails on any drift, checked before and after each of nine arms.
  • Reported a negative result: the improved pipeline (rewrite → hybrid → rerank) measured worse than the frozen baseline it was built to beat — 0.5823 vs 0.7983 across 39 human-reviewed questions. A judge-free measurement found the cause: arms containing the reranker retrieve the known-relevant abstract in 29–30 of 36 questions, arms without it in 34. The demo ships the baseline's retrieval.

WhisperNote Agent

A privacy-first tool that converts local audio and video into timestamped transcripts, summaries, and structured analysis notes.

GPU-accelerated transcription with automatic CUDA-to-CPU fallback · modular AI provider layer (local / manual / API) · reproducible sessions with speaker segments, timestamps, metadata

Stack: Python · faster-whisper · CTranslate2 · Typer · OpenAI SDK · CUDAStatus: Personal project

Contact

Open to Software, AI/ML, and Infrastructure Roles — 2026

Yale M.S. · building AI products independently · open to full-time roles. Reach me by email.