# Soobin Park (박수빈) > LLM Inference & Serving Engineer. At Rebellions I work on serving performance for customer deployments: memory budgeting, batching, prefill/decode disaggregation and capacity planning. Upstream I am a committer on vLLM Semantic Router and lead its Router Models & Inference Runtime working group, and have fixed silent bugs in transformers and mistral.rs. This site is a CV. Facts here are checked against GitHub and Hugging Face; last generated 2026-10-21. For the full text in one file, read llms-full.txt. For structured data, use the JSON API below. ## CV - [Full CV as Markdown](https://cv.subin.rs/llms-full.txt): everything on this site in one document - [CV PDF](https://cv.subin.rs/resume.pdf): one-page English CV - [Website](https://cv.subin.rs/): the human-facing page (JavaScript app) ## API - [/api](https://cv.subin.rs/api): Index of these endpoints, as JSON - [/api/cv](https://cv.subin.rs/api/cv): Summary, experience, education, skills, awards and contact - [/api/open-source](https://cv.subin.rs/api/open-source): Every open-source contribution: PRs, issues, status, results and links - [/api/projects](https://cv.subin.rs/api/projects): Projects, with stack, results and links - [/openapi.json](https://cv.subin.rs/openapi.json): OpenAPI 3 schema of the API ## Open source - [Silent corruption in FP8 weight loading: a fix, its revert, and 42 relabelled repos](https://github.com/huggingface/transformers/issues/47145): huggingface/transformers, 2 merged upstream. FP8 checkpoints loaded with scales never applied, so models generated noise with no error. Co-authored the fix, wrote the revert when it broke mislabeled checkpoints, and listed 42 Hub repos that Red Hat relabelled. - [Guardrails that read only the first 512 tokens: fixed at every call site, then at the kernel](https://github.com/vllm-project/semantic-router/pull/3206): vllm-project/semantic-router, 11 merged upstream. Guardrails silently read only the first 512 tokens. Fixed at 6 call sites over six PRs, then removed the cause: 15.4 → 1.0 GiB peak memory at 8K tokens (global layer). - [Serving-path failures that never showed up in the logs](https://github.com/vllm-project/semantic-router/pull/3303): vllm-project/semantic-router, 6 merged upstream. 10× CPU slowdown with nothing logged, 500s on malformed input, a download before a doomed device check, and half the CLI tests never running in CI. - [GPU fast paths for the router's own models, admitted only where answers hold](https://github.com/vllm-project/semantic-router/pull/4779): vllm-project/semantic-router, 3 merged upstream. Fused kernels on CUDA only where answers hold: Decision 2.0 11–48% faster with 0 of 102 decisions changed; Vela forest graphs 67.7 → 17.7 ms on the 0.8B on an RTX 4070 Ti SUPER (4B: 1.9×). - [Decision 3.0 (27B) in FP8 and int4, loaded as stored](https://github.com/vllm-project/semantic-router/pull/5066): vllm-project/semantic-router, Merged upstream · packages published. FP8 keeps 99.08% of BF16 answers in 31.9 GB instead of 52.2 GB; AWQ int4 keeps 97.76% in about 16.5 GB. - [Serving Decision 3.0 as CUDA graphs](https://github.com/vllm-project/semantic-router/pull/4999): vllm-project/semantic-router, 4 merged upstream. Decision 3.0 forwards as CUDA graphs: one question on d3-lite 29.4 → 7.3 ms on an RTX 4070 Ti SUPER, same answers. - [Model-runtime failures found bringing up the 27B model](https://github.com/vllm-project/semantic-router/pull/5184): vllm-project/semantic-router, 7 merged · 4 open. Loading d3 on MI300X peaked at 49 GiB of host memory, now 6 GiB; an out-of-memory forward answers 413 or 429 instead of 500. - [Reusing a 14B model's KV cache in a 32B model](https://github.com/vllm-project/semantic-router/pull/4497): vllm-project/semantic-router, 1 merged · 1 in review. A 32B model reusing a 14B model's KV cache: KL to its own cache 0.088 → 0.036 on chat with a distilled rank-16 correction. - [Making "which route wins" a contract instead of an accident](https://github.com/vllm-project/semantic-router/pull/3227): vllm-project/semantic-router, 9 merged upstream. Route selection could rank a decision lower for having more evidence. Wrote the contract and shipped it in 8 merged PRs with no winner change in any shipped config. - [Route byte-level llama tokenizers to TokenizersBackend](https://github.com/huggingface/transformers/pull/47017): huggingface/transformers, Open. Byte-level Llama checkpoints decode with every space lost, silently. Measured the reach on the Hub: 1,866 repos across 929 orgs. ## Projects - [Treaty Hub](https://cv.subin.rs/api/projects): RAG-Based Document Intelligence Ecosystem. Multi-service GenAI platform for reinsurance operations with version management and auto-update system, earning regional recognition and escalation to APAC offices (Singapore) for continued development. - [Railog](https://cv.subin.rs/api/projects): Seoul Subway Real-Time Delay Prediction & Visualization. End-to-end ML pipeline for Seoul Metro delay prediction — real-time ingestion, dbt feature engineering, RandomForest + MLflow model serving, 4 Airflow DAGs on K3s, and a live MapLibre map across 754 stations. - [Taxi Driver Allocation](https://aida.kisti.re.kr/model/71f9f341-ea38-4117-965b-008a73b2e5bf): Real-time Demand Prediction & Optimal Dispatch System. XGBoost-based demand prediction with Hungarian algorithm optimization for taxi driver revenue increase. KISTI Director's Award winner. ## Contact - [GitHub](https://github.com/subin9): code and pull requests - [LinkedIn](https://www.linkedin.com/in/soobinpark1): profile - Email: subin1031@gmail.com ## Optional - [Decision questions that read the conversation, and answers checked against the question](https://github.com/vllm-project/semantic-router/pull/4778): vllm-project/semantic-router, 1 merged · 1 in review - [One 0.6B decision model vs. eight per-signal encoders, on the same data](https://github.com/vllm-project/semantic-router/issues/4306): vllm-project/semantic-router, Completed · published - [Benchmarks that were measuring the training data](https://github.com/vllm-project/semantic-router/pull/3247): vllm-project/semantic-router, 6 merged upstream - [The jailbreak detector answers a different question than the router asks](https://github.com/vllm-project/semantic-router/issues/3787): vllm-project/semantic-router, 2 merged · retrain in progress - [Reproducible datasets from shadow traffic, for comparing routes](https://github.com/vllm-project/semantic-router/pull/3912): vllm-project/semantic-router, 6 merged upstream - [Response detection rebuilt as a composable routing signal](https://github.com/vllm-project/semantic-router/pull/3335): vllm-project/semantic-router, 3 merged upstream - [PII scores that were confidently wrong](https://github.com/vllm-project/semantic-router/pull/3027): vllm-project/semantic-router, 7 merged upstream - [Committer and working-group lead](https://vllm-sr.ai/community/team): vllm-project/semantic-router, Committer since Sep 17 - [feat(models): Support PaddleOCR-VL vision model (rework of #2320)](https://github.com/EricLBuehler/mistral.rs/pull/2356): EricLBuehler/mistral.rs, Open - [fix(llg): honor tokenizer special flag in toktrie detok](https://github.com/EricLBuehler/mistral.rs/pull/2319): EricLBuehler/mistral.rs, Open - [fix(webui): send chat images as data URLs](https://github.com/EricLBuehler/mistral.rs/pull/2338): EricLBuehler/mistral.rs, Merged upstream - [fix(mllama): CUDA image-inference crash, eager-only paged flag, vision head config](https://github.com/EricLBuehler/mistral.rs/pull/2337): EricLBuehler/mistral.rs, Open - [LoRA adapters with multi-layer classification heads (RoBERTa, XLM-RoBERTa)](https://github.com/vllm-project/vllm/pull/60211): vllm-project/vllm, Open - [[Rust Frontend] Support --allowed-media-domains](https://github.com/vllm-project/vllm/pull/49855): vllm-project/vllm, Open - [Emit spec-required gen_ai.operation.name on request spans](https://github.com/vllm-project/vllm/pull/47633): vllm-project/vllm, Open - [Give noncausal decision models a whole-prompt batch](https://github.com/ollama/ollama/pull/19159): ollama/ollama, Open - [chat_template: guard tool_call arguments against pre-serialized JSON](https://huggingface.co/LGAI-EXAONE/EXAONE-4.0-32B/discussions/14): LGAI-EXAONE/EXAONE-4.0-32B, Open - [Why a model that compiles cleanly runs out of NPU memory](https://github.com/rebel-sbpark/vllm-rbln/tree/soobin/suggest-sampler-headroom): rebel-sbpark/vllm-rbln, Prototype · used as an FDE deployment reference - [Empty last_hidden_state when prompt length is a multiple of prefill_chunk_size](https://github.com/RBLN-SW/optimum-rbln/issues/649): RBLN-SW/optimum-rbln, Closed - [KV-cache events are never published on the optimum-rbln path](https://github.com/RBLN-SW/vllm-rbln/issues/922): RBLN-SW/vllm-rbln, Open - [paddleocr-vl-rbln — PaddleOCR-VL recognition VLM on the NPU](https://github.com/rebel-sbpark/paddleocr-vl-rbln): rebel-sbpark/paddleocr-vl-rbln, Public - [paddleocr-vl-rs — Python-free Rust document-parsing pipeline](https://github.com/subin9/paddleocr-vl-rs): subin9/paddleocr-vl-rs, Public - [Self-Hosted Homelab](https://cv.subin.rs/api/projects): Hybrid Infrastructure — Bare Metal, K3s & Mesh VPN - [ChulhaGil](https://cv.subin.rs/api/projects): Knowledge-Graph–Based Agricultural Shipment Timing Advisor - [Data Flow](https://cv.subin.rs/api/projects): Data Reconciliation Platform - [Trend Radar](https://cv.subin.rs/api/projects): Market Intelligence Platform - [Doc Compass](https://cv.subin.rs/api/projects): Hybrid Search Engine - [Cancer Risk Prediction](https://cv.subin.rs/api/projects): Survival Analysis Model - [Speech Recognition](https://cv.subin.rs/api/projects): Age-Specific ASR Model - [Sign Language Interpreter](https://cv.subin.rs/api/projects): Real-Time Emergency Medical Sign Language Translation