Selected work

Claims you can inspect.

Projects are ordered by relevance to grounded NLP work. “Runnable code” means a public, lightweight smoke path is provided—not that private datasets or production systems are public.

Case study

Grounded QA for enterprise contact centers

A verified-unit QA design that returns an operator-approved answer or abstains instead of generating unsupported policy text.

My contribution
Designed the architecture and retrieval/evaluation harness; found question-identity leakage in an early setup and rebuilt the held-out evaluation.

Result
The documented held-out evaluation reports hybrid retrieval with query augmentation at approximately R@1 0.881–0.930.

Scope: Production code, raw evaluation data, and the working manuscript are private. This is not presented as an open-source reproduction.

groundingretrievalevaluationabstention
Public model + evaluation

Korean retrieval embeddings

Two public Korean retrieval encoders with model cards and documented AutoRAG evaluation.

My contribution
Fine-tuned and evaluated BGE-M3- and Qwen3-based encoders, then recorded when the fine-tuned checkpoint did not generalize well enough to use.

Result
On the documented 720-item, 114-query AutoRAG evaluation, the BGE-M3 variant reports MRR 0.7773 and Hit@10 0.9474.

Scope: Enterprise corpora and training data are not redistributed. Reported values apply only to the documented evaluation.

embeddingsKorean NLPAutoRAGHugging Face
Runnable code

VisionCardio

An on-device rPPG research prototype spanning model training, Core ML export, and a SwiftUI application.

My contribution
Built the data/training pipeline, model export, application integration, and bounded coaching policy.

Result
With a strict participant split, the documented UBFC validation heart-rate MAE improved from 5.63 to 2.80 bpm after fine-tuning.

Smoke command

git clone https://github.com/PFSV/vision-cardio.git
cd vision-cardio
bash scripts/demo_exercise_coach_policy.sh

Scope: The smoke demo exercises the deterministic coaching policy without private datasets or GPU access. Heart-rate estimation is a wellness research prototype, not a medical device.

rPPGPyTorchCore MLSwiftUI
Runnable code

pycag

An alpha Cache-Augmented Generation toolkit for bounded corpora and Llama-family models.

My contribution
Packaged corpus consolidation, reusable KV-cache prefill, and single/batch query CLIs while documenting where CAG is a poor fit.

Result
Published as pycag 0.1.0 with CI and a deterministic corpus-building smoke path.

Smoke command

git clone https://github.com/PFSV/cag.git
cd cag
python3 -m unittest discover -s tests -v
python3 scripts/01_build_corpus.py --output /tmp/pycag-corpus.txt

Scope: The smoke path needs only the repository sample. Building a KV cache additionally requires a compatible model and suitable memory.

CAGLLMPythonHugging Face