Reinforcement learning for LLM reasoning: proofs over vibes
Part 2 of the vibe proving series: how an RL loop built around a hard proof checker teaches a model to follow logic rules, and where it still falls over on nested proofs.
Part 2 of the vibe proving series: how an RL loop built around a hard proof checker teaches a model to follow logic rules, and where it still falls over on nested proofs.
Running NLP locally with Hugging Face Transformers instead of paying per API call: the pipeline API, zero-shot tagging, chunking text past a 512 token limit, and where to host the model.
Square a random variable and the probability density stretches with it. Here is why naive substitution integrates to 2.0 instead of 1, and how the Jacobian factor puts it back.
Reporting plugins bloat the database and still guess at who your best customers are. Here is how I build RFM scores from WooCommerce order data in Pandas, and what the segments are actually good for.
The latest dev chat turned into an argument over whether WordPress Core should require PHP’s filter extension. PHPMailer uses it today. Here is what that costs you on hosts that compiled PHP without it.
The WordPress ecosystem ships faster than anyone can absorb it. After 14 years I scan most of it and go deep on very little. Here is how I set stopping points so that keeping up does not turn into burnout.
A client had ten thousand messy biographical records that needed to become a clean knowledge graph. GPT-4o would have done it and cost a fortune, so I used GliNER2 instead: schema-driven extraction that runs on a CPU.
A WooCommerce recommendation engine scored 0.85 AUC in staging and fell apart on launch day because the live audience did not match the training data. Inverse probability weighting is how I got an honest read on what the model was really doing.
A client’s hourly sales model lost its accuracy every night at midnight because it read 23:00 and 00:00 as far apart. Sine and cosine encoding puts the hours back on a circle, which is where they belong.
A client bought a 64-core Threadripper and their script still ran on one core for an hour. Ray brought it down to about two minutes, with less code than the multiprocessing version I tried first.