Command Palette

Search for a command to run.

GitHub stars
FIG_001

Yugesh Sappidi

AI Engineer

Overview

Graduate Research Assistant @UI Health

Social Links

Hello

I'm an AI Engineer focused on LLM safety, evaluation, and inference. I completed my MS in Computer Science at UIC in May 2026. I care about what makes a model ready for real users: reliability, cost, and answers grounded in evidence.

At UI Health, I built a clinical RAG system over patient records that answers over WhatsApp at 1.2s median latency, with a 60% reduction in response failures. My projects explore the same questions through medical LLM red teaming with MediCS, agent memory quality with Mnemo, and adaptive inference with AdaTTT.

I build with strong baselines, confidence intervals, and ablations, and I document the results even when they challenge my approach. Red teaming taught me to trust a system only after a serious attempt to break it.

GitHub Contributions

Stack

Experience

  • Designed RAG pipelines over clinical datasets, enabling natural-language querying of both structured and unstructured patient records for faster clinical insights.
  • Built a FastAPI + GPT-4 + Pinecone retrieval backend with chunked embeddings, grounding LLM outputs in source clinical documents to reduce hallucination.
  • Optimized the retrieval pipeline for low-connectivity environments, reaching 1.2s median latency under constrained network conditions.
  • Integrated Twilio for reliable concurrent WhatsApp sessions, managing conversation state with Cloudflare D1 and KV Store to keep interactions consistent at scale.
  • Containerized the full pipeline with Docker and orchestrated it on Kubernetes (Helm), cutting response failures by 60% through better fault isolation.
  • RAG
  • LLMs
  • Clinical NLP
  • FastAPI
  • GPT-4
  • Pinecone
  • Vector Retrieval
  • Twilio
  • Cloudflare D1 / KV
  • Docker
  • Kubernetes
  • Helm
  • React.js
  • Redux
  • JavaScript
  • React Hooks
  • Docker
  • Docker Compose
  • Figma
  • Mocha

Projects[7]

  • A closed-loop red-teaming and defense framework for medical LLMs, built around one uncomfortable finding: safety alignment holds in English and leaks badly the moment a prompt switches languages mid-sentence.

    • The attack. An agentic red team runs 5 strategies across 6 low-resource languages and 6 harm categories. A Thompson-Sampling bandit per category learns which strategy actually lands, instead of firing a fixed battery of templates and reporting the total.
    • What it exposed. 27.6% attack success rate on Llama-3-8B-Instruct. The attacks then transfer upward to models they were never tuned against: 61.7% on Mistral-7B, 51.6% on Qwen-2.5-7B.
    • The defense. One round of QLoRA supervised fine-tuning on red-team output cuts ASR to 6.4% (−21.2 pp, p < 0.0001, paired bootstrap 95% CI [−23.5, −18.9]). Helpfulness retention goes up to 99.6% and false refusals drop to 0.4%, so the model did not just learn to refuse everything.
    • The negative result I shipped anyway. Stacking DPO on the SFT checkpoint regressed safety back to 21.5%. DPO's whole premise is correcting over-refusal caused by safety training. When there is no over-refusal to correct, it eats the safety margin instead. I wrote that up rather than quietly dropping the run.
    • MediCS-500. 500 expert-curated harmful seeds plus 500 benign twins, code-switched into 6 languages with back-translation verification, so jailbreak susceptibility and over-refusal are measured on the same benchmark.
    • Evaluation. 3 checkpoints × 3 seeds × 1,599 held-out attacks, judged by GPT-5 at temperature 0. McNemar with Holm-Bonferroni across languages, Cohen's h, residual-failure breakdown, cross-architecture transfer, and a fairness audit that treats language as the protected attribute. 213 tests.
    • PyTorch
    • Llama 3 / QLoRA
    • TRL (SFT + DPO)
    • PEFT
    • Red Teaming
    • Statistical Evaluation
  • Agent memory has two diseases: it stores mostly junk, and it invents false facts out of negations and hypotheticals. Mem0 issue #4573 is the clearest public example, where 97.8% of 10,134 stored entries were noise. Mnemo puts a quality gate on the write path and an append-only, bitemporal Postgres store underneath it.

    • The gate. Every turn runs extract, verify, dedup, score, tier, decay. Negations ("I don't use MongoDB") and hypotheticals are rejected before they can become memories. Borderline facts get demoted to a session tier rather than guessed at, so recall is never traded for precision.
    • Measured against a naive baseline, on the same conversation and extractor. Precision 60% to 90%, F1 75% to 94.7%, false memories 2 to 0, recall held at 100%. The gate is not just storing less; it is storing the right things.
    • You can run the number yourself. make eval uses a deterministic embedder with no model, no network, and no API key, so the headline reproduces on any machine in one command.
    • Every decision is reversible. An immutable event log is the source of truth and current state is just a SQL view of HEAD. blame says which turn introduced a belief and why it scored what it did; revert rolls a fact back; invalidate retires it bitemporally; diff shows how beliefs changed between two points in time. Nothing is ever overwritten.
    • Principled forgetting. Ebbinghaus decay (R = e^(−t/S)) fades unused facts, recall reinforces them, and faded facts are archived through an appended event rather than deleted.
    • Shipped as a product surface. MCP server with 8 tools, a Python SDK, a web UI for the audit-and-revert flow, and hybrid FTS plus vector retrieval reranked on relevance, recency, and importance. 88 tests, local-first, self-hostable.
    • Python
    • Postgres + pgvector
    • Event Sourcing
    • MCP Server
    • FastAPI
    • Ollama

Education

Certifications[3]

Blog[4]

Bookmarks[13]

About this site

Deployed on
Vercel
Source code
GitHub
Typeface
GeistSans & Mono
Stack
next@16.2.6react@19.2.6tailwindcss@4.3.0

Command Palette

Search for a command to run.