Duc-Anh Nguyen

AI/ML Research Engineer

M.Sc. Statistics & Data Science, LMU Munich · Munich, Germany


About

I build models and the machinery that keeps them running — fine-tuning, evaluation harnesses, deployment, monitoring. My working rule is that a result only counts if it is measured against a published baseline, reported with a confidence interval, and survives a rerun.

Right now that means multimodal vision-language models for surgical video, in a research collaboration between LMU Munich and ZEISS, plus self-supervised segmentation of archaeological LiDAR data. Outside the lab I work on agentic systems: tool calling, MCP, structured outputs, and how they break.


Selected work

gnhf — merged fix to a 3.8k-star autonomous coding agent

Open-source contribution · August 2026 · PR #213 merged into main, shipping in v0.1.46

gnhf runs a coding agent in an unattended loop against an objective. Its --max-tokens safety cap was undercounting spend by 183x: the provider adapters report four token buckets, the orchestrator stored only two, and the budget check silently dropped cache reads and cache writes. One reported run believed it was at 22% of a 1,000,000-token budget while it had already billed 41.1M tokens and $48.64. The cap never fired.

I widened orchestrator state to carry all four buckets and normalized the adapter boundary so they stay mutually exclusive — Claude was folding cache reads into inputTokens, and Codex nests cached tokens inside OpenAI's input_tokens — then threaded the corrected total through the renderer, exit summary and CLI help so the displayed numbers agree with the enforced cap. Merged through the maintainer's no-mistakes review gate after three AI review rounds, with 760 tests and 6 CI checks green.

Surgical Vision-Language Foundation Model

LMU Munich × ZEISS · research collaboration · 2026 – present

Fine-tuned SigLIP2 into a surgical-domain vision encoder powering a multimodal VLM specialised in endoscopy, and built the standing evaluation harnesses around it — classification, VQA and video tasks, scored with confidence intervals and per-class error analysis against published baselines.

Beats MedSigLIP, Qwen3-VL-8B and LLaVA-OneVision-7B by more than 10 points balanced accuracy on 16-class frame classification (Hyper-Kvasir). Scaled to videos of up to 120 minutes.

Results →

Repository private — research collaboration. Happy to walk through the work.

SurgGround — a 2-hour surgical-video VLM on one GPU

Independent personal project · built as hands-on prep for a "Multimodal AI for Video Understanding" internship · 2026 – present

A vision-language model that grounds natural-language queries, segments workflow phases and steps, and estimates remaining surgery duration on full-length procedures up to 2 hours — with a calibrated-abstention reward and a procedure-graph consistency constraint — trained and served entirely on a single 24 GB consumer GPU, no cluster required. Separate from the LMU × ZEISS collaboration above — its own repo, own datasets, own design.

Data pipeline and task/metric harness built and merged (93 tests green); three training datasets landing on an owned RTX 4090 now; first zero-shot baselines next.

Build log →

Self-supervised segmentation of archaeological LiDAR point clouds

LMU Munich · research project · 2026 – present

An autoencoder pipeline that segments aerial LiDAR point clouds spanning more than ten hectares and automatically flags anomalies for targeted expert review, replacing full-site manual inspection and sharply cutting survey time.

Second author on a paper in preparation for ISPRS GeoSpatial Week 2027 (not yet submitted).

Code private while the paper is in preparation.

Wildboar compensation and tolerance — statistical consulting analysis

Statistical consulting for Mengxi Kou · LMU Munich / Carson Center · 2026

A reproducible analysis of a cleaned field survey on compensation applications, agricultural losses, policy support and tolerance toward wild boars in two Chinese counties. The project turns the full questionnaire into an auditable evidence trail, from exploratory data analysis and measurement validation through ordinal models, Bayesian checks, PLS-SEM, mediation, prediction and stress testing.

The public artifact explains every analysis script line by line and reports the limits of causal interpretation, including county-period confounding, measurement overlap, structural missingness and unmeasured confounding.

Results →

AI Agent Security — multi-step tool attacks

Kaggle Featured competition hosted by OpenAI · 4,127 teams · ongoing

Python harnesses and prompt suites that drive tool-using agents (GPT-OSS, Gemma) through adversarial multi-step scenarios. The deliverable is not a clever one-off jailbreak: it is a reproducible failure — one that survives a rerun, has an isolated cause in the tool-calling or context-handling path, and can be turned into a regression test.

Currently ranked 498 of 4,127 teams — top 12% — with a score of 89. The competition closes 1 September 2026.

SEMG-Sandbox — reading phonemes from facial muscle activity

A silent-speech interface project: eight sEMG electrodes across the face, and the question is how many of the 39 English phonemes they can tell apart — silently as well as out loud. I own evaluation and interpretability (channel/feature importance, confusion analysis against phonetic groupings) alongside teammates on preprocessing and modelling, and built the shared four-stage data pipeline (two recording rigs, one schema), five interchangeable sEMG feature paths, and the four CTC model architectures (LSTM/RNN/CNN/Transformer) the leave-one-session-out benchmark will run on.

A feature-ablation feasibility study already reaches 21% exact phoneme match (39-way, chance 2.6%) from two summary statistics per channel on pilot data. The primary recording is 7 of 15 sessions in as of writing; the full leave-one-session-out benchmark across four model classes is still to come.

Service Desk AI — bounded multi-agent operations desk

Personal project · 2026 · full stack, runs with one command

An enterprise service desk where a front router receives a request, retrieves policy evidence with citations, and delegates to a bounded ERP, CRM, HR or scheduling specialist. The model classifies and drafts; trusted Python code validates its output, picks the only permitted tools, and holds every protected write behind an IT approval step.

The model never sees raw records, never chooses an arbitrary tool and never executes a mutation. Unavailable, malformed, unsafe or low-confidence output falls through to human review by design, not by accident.

Live demo →

EdgeLoop — ML from training set to device firmware

Personal project · 2026 · full stack, runs with one command

The whole path a model takes to reach an IoT device: synthetic building telemetry, a trainer with a fixed seed, a checksummed JSON artifact, C firmware constants generated from it, and dependency-free inference running on the device. The cloud is a fleet-management and observability layer — it never needs the raw samples to know a device found a problem.

The same inference contract implemented twice, in Python and in C, with the artifact checksum verified before use. Telemetry ingestion is idempotent and deployments are audited.

TraceForge — prompt to manufacturable circuit board

European Hackathon League, Munich · Cognition track · August 2026 · team of five

Describe a circuit in plain English and an agent designs it, checks its own electrical and design rules against live component stock, repairs what it gets wrong, and exports Gerbers a factory can build. Every view — schematic, PCB, 3D, BOM, fab files — derives from one Circuit JSON, so they cannot disagree with each other.

Built in one 20-hour window. I owned the distributor-availability layer: the Mouser integration for lifecycle, stock depth and minimum order quantity, plus a web-scraping sub-agent layer so the design loop never depended on a single stock source.

SciPaLI — MLOps pipeline for multimodal reasoning

University course project, two-person team · 2026

A PaliGemma2-3B model fine-tuned with LoRA/PEFT on ScienceQA, wrapped in a full production stack: DVC data versioning, Hydra configs, cloud training, a FastAPI service with hot-swappable adapters, drift monitoring and CI/CD.

72.2% exact-match. A prompt-ordering fix found by systematic ablation was worth +16 points on its own; int4 quantization cut GPU memory by 51%.

Coursework repository — not mine to publish.

Store sales forecasting — NKD

Applied case study with a German retail chain · 2026

Demand-forecasting models for daily sales across all stores, built around feature engineering on 1.5 years of historical sales and store attributes, and delivered and explained to the retail partner.

24% WAPE on 14-day-ahead forecasts.

Repository private pending a data-sharing check.

VCM-Track — voluntary carbon market database

Personal project

A SQL-backed database of carbon offset projects, built by scraping a public project registry so that supply of carbon credits can be queried by region, methodology and vintage.

dtMBO — decision theory for Bayesian optimization

Bachelor thesis · 2025

Designed a new decision-theoretic acquisition policy for Bayesian optimization and benchmarked it against standard test functions.

Also on GitHub

neetcode-gpt — a GPT built from scratch · NN-from-scratch · NVIDIA Nemotron reasoning challenge · BirdCLEF+ acoustic species identification · InstaSHAP benchmarks


Publication

Self-Supervised Learning for Semantic Segmentation of Archaeological LiDAR Point Cloud Data
Second author · in preparation for ISPRS GeoSpatial Week 2027 · not yet submitted


Skills

Languages
Python, SQL, C++/CUDA, R, Bash, LaTeX
ML & DL
PyTorch, Hugging Face Transformers, PEFT/LoRA, scikit-learn, LightGBM, Optuna
LLM & agents
Tool calling, MCP, structured outputs, RAG and vector search, prompt and context engineering, quantization and pruning
Evaluation
Eval harnesses, confidence intervals, per-class error analysis, benchmarking against published baselines, Weights & Biases sweeps
MLOps
FastAPI, REST APIs, Docker, GitHub Actions CI/CD, DVC, Hydra, Evidently, Prometheus, pytest
Cloud & infra
GCP (Vertex AI, Cloud Run, Cloud Build), AWS (S3, EC2/SageMaker), Linux, SLURM GPU clusters
Statistics
Time-series forecasting, self-supervised learning, domain adaptation, explainable AI (SHAP), PLS-SEM, Bayesian optimization

Education

M.Sc. Statistics & Data Science — LMU Munich · 2025 – present

MLOps · Applied Deep Learning · Deep Learning for NLP · Explainable AI · Statistical Learning

B.Sc. Statistics & Data Science (Computer Science minor) — LMU Munich · 2021 – 2025 · final grade 1.8

Database Systems · Applied Machine Learning · Machine and Deep Learning with Python

Alongside my studies I administer the Department of Statistics GPU cluster, and I spent two and a half years as a teaching assistant for two undergraduate courses of 100+ students each.