Writing / 9 posts
Field notes.
Long-form write-ups of things I've built and broken: fine-tuning runs, scraping forensics, and the occasional physics detour.
- Jul 9, 2026 5 min read The 0.98 F1 That Wasn't: Catching Your Own Benchmark Cheating An eval-integrity story: how a 0.987 member-F1 turned out to be a model grading its own homework, and the general rule for measuring the thing you think you are measuring. MLEvaluation
- Jul 9, 2026 6 min read GSPO: Reinforcement Learning for Low-Resource Speech Recognition Teaching Whisper to hear Mexican Indigenous languages with RL. Hand-rolling GSPO around an audio policy, rewarding on negative Character Error Rate, and making real progress on languages every off-the-shelf system fails. ASRReinforcement Learning
- Jul 6, 2026 8 min read Reading Refusal Before the Model Speaks An interpretability study with the Jacobian lens: the model commits to refusing roughly ten layers before it writes a word, that decision is legible in the verbalizable workspace, and a surgical pullback edit removes only about a third of it. Where the rest of the 'no' actually lives. InterpretabilityAI Safety
- Jul 1, 2026 3 min read RosettIA: Beating the Task Winners on Spanish to Quechua A supervised NLLB baseline, GSPO reinforcement learning, and MBR decoding reach 46.71 ChrF on Spanish to Chanka Quechua, ahead of the AmericasNLP 2021 and 2023 systems. With the caveats that number deserves. NLPLow-resource
- Jun 28, 2026 4 min read Teaching XGBoost to Read Blueprints Lessons from building a vector-native structural member detector for steel construction drawings, where gradient-boosted trees beat transformers, label quality beat everything, and the headline number turned out to be measuring the wrong thing. MLXGBoost
- Apr 20, 2026 9 min read Carrier Lifetime from 49 Photos of an Oscilloscope An experimental-physics project with a computer-vision twist: no numeric data ever existed, only 49 photographs of a scope screen. I taught a computer to read the decay curves off the photos, fit them, and recover the minority-carrier lifetime of a silicon solar cell. PhysicsSemiconductors
- Mar 8, 2026 6 min read CodeContexter: Packing a Whole Codebase Into One LLM-Ready File How I built a fast, safety-first Rust CLI that walks an entire repository, respects .gitignore, redacts secrets before they leave your machine, and estimates the token budget, all in a single streamed pass. RustDeveloper Tools
- Jan 20, 2026 7 min read Fast, Near-Lossless CPU OCR: Running PP-OCRv6 on OpenVINO How I made PP-OCRv6 text detection and recognition run 1.4 to 2.7x faster on a plain CPU with OpenVINO, why ONNX Runtime alone barely helps, the exact accuracy cost of the one speed trick that is not free, and the benchmark I built to prove all of it. OCROpenVINO
- Jun 20, 2025 5 min read NeuralTranslate: Preserving Nahuatl with AI I fine-tuned Gemma 3 27B for Nahuatl to Spanish and hit 97.48 ChrF on validation. The number was real, and still misleading, and Nahuatl speakers are the ones who showed me why. AINLP