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 studyGrounded 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 + evaluationKorean 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 codeVisionCardio
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 codepycag
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