writings
大模型补课:从工具到Agent
catching up on large language models: from conventional LLMs to reasoning models
building a product in the ai wave: the development story of Brevia
Understanding Sparse Autoencoders
Compute and equity
struggle with chaos
3D Reconstruction: Starting with Stereo Matching
From Pointwise to Generative: Recent NextRec Updates
Recommender systems: PEPNET and embedding-personalized multi-task learning
on the last day of 2025
multi-task learning: balancing multiple losses with GradNorm
NextRec: an efficient, modular, lightweight deep-learning recommendation framework
multi-task learning: AdaTT
multi-task learning: from hard parameter sharing to PLE
excerpt: improving recommendation systems and search in the age of LLMs
generative recommendation: RQ-VAE
2025 Q1–Q3 notes
Recommender-system misconceptions, v1: recent notes
why does a model perform well offline but not online?
understanding AUC in depth
python: resumable processing in concurrent workloads
server tinkering: buying a server, binding a domain, and reverse proxying
upgrading this blog: image hosting and automated uploads
machine learning in fintech?
paper reading: Google's MMoE model for multi-task learning
revisiting statistical learning: GBDT and its improvements
revisiting statistical learning: tree ensembles with Bagging and Boosting
graph algorithms: Node2Vec
revisiting statistical learning: decision trees
revisiting statistical learning: maximum likelihood and Bayesian estimation
on the last day of 2024
What goes up must come down
recommendation systems: implementing Neural Collaborative Filtering
A busy couple of months
Recommender systems: logistic regression, the workhorse of production feature modeling
Time is the slowest poison
Essential VS Code shortcuts
It's just business
Essential developer skills: common Vim commands
A note on moving — February 29, 2024
Written on Lunar New Year's Eve, 2024
On the first day