<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Standalone Articles on Chen Kai Blog</title><link>https://www.chenk.top/en/standalone/</link><description>Recent content in Standalone Articles on Chen Kai Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 21 Jan 2026 09:00:00 +0000</lastBuildDate><atom:link href="https://www.chenk.top/en/standalone/index.xml" rel="self" type="application/rss+xml"/><item><title>Solving Constrained Mean-Variance Portfolio Optimization Using Spiral Optimization</title><link>https://www.chenk.top/en/standalone/solving-constrained-mean-variance-portfolio-optimization-pro/</link><pubDate>Wed, 21 Jan 2026 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/solving-constrained-mean-variance-portfolio-optimization-pro/</guid><description>&lt;p>Markowitz&amp;rsquo;s mean-variance model is elegant until you add real trading constraints: &amp;ldquo;if you buy a stock at all, hold at least 5% of it&amp;rdquo; and &amp;ldquo;pick exactly 10 names from the S&amp;amp;P 500.&amp;rdquo; The closed-form quadratic program quietly mutates into a &lt;em>mixed-integer nonlinear program&lt;/em> (MINLP), and the standard solver chain (Lagrange multipliers, KKT conditions, interior-point methods) stops working. The paper reviewed here applies the &lt;strong>Spiral Optimization Algorithm&lt;/strong> (SOA), a population-based metaheuristic, to this problem and shows it can find competitive feasible solutions where gradient methods fail outright.&lt;/p></description></item><item><title>AI Agents Complete Guide: From Theory to Industrial Practice</title><link>https://www.chenk.top/en/standalone/ai-agents-complete-guide/</link><pubDate>Wed, 31 Dec 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/ai-agents-complete-guide/</guid><description>&lt;p>A chatbot answers questions. An &lt;em>agent&lt;/em> gets things done &amp;ndash; it browses, runs code, calls APIs, queries databases, and iterates until the job is finished. The same LLM sits behind both, but the wrapper is different: an agent runs inside a loop with tools, memory, and the ability to inspect its own work.&lt;/p>
&lt;p>This guide is the long-form version of that idea. It covers the four core capabilities (planning, memory, tool use, reflection), the major framework families, multi-agent collaboration, evaluation, and the production concerns that decide whether an agent ships or quietly fails on a Tuesday afternoon.&lt;/p></description></item><item><title>Prompt Engineering Complete Guide: From Zero to Advanced Optimization</title><link>https://www.chenk.top/en/standalone/prompt-engineering-complete-guide/</link><pubDate>Wed, 15 Oct 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/prompt-engineering-complete-guide/</guid><description>&lt;p>The same model, two prompts: one gets 17% accuracy on grade-school math, the other gets 78%. The difference is not magic — it is prompt engineering. This guide shows you the techniques that work, the research behind them, and how to systematically optimize prompts for production.&lt;/p>
&lt;h2 id="what-you-will-learn">What you will learn&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Foundations&lt;/strong> — zero-shot, few-shot, many-shot, task decomposition, and the five-block prompt skeleton.&lt;/li>
&lt;li>&lt;strong>Reasoning techniques&lt;/strong> — Chain-of-Thought, Self-Consistency, Tree of Thoughts, Graph of Thoughts, ReAct.&lt;/li>
&lt;li>&lt;strong>Automation&lt;/strong> — Automatic Prompt Engineering (APE), DSPy, LLMLingua compression.&lt;/li>
&lt;li>&lt;strong>Practical templates&lt;/strong> — structured output, code generation, data extraction, multi-turn chat.&lt;/li>
&lt;li>&lt;strong>Evaluation and debugging&lt;/strong> — metrics, A/B testing, error analysis, the failure-mode toolkit.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Prerequisites.&lt;/strong> Basic Python; experience calling any LLM API. No math background required.&lt;/p></description></item><item><title>Low-Rank Matrix Approximation and the Pseudoinverse: From SVD to Regularization</title><link>https://www.chenk.top/en/standalone/low-rank-approximation-pseudoinverse/</link><pubDate>Mon, 22 Sep 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/low-rank-approximation-pseudoinverse/</guid><description>&lt;p>Real data matrices are almost never both square and full rank: correlated features, too few samples, and noise-induced ill-conditioning all make &amp;ldquo;matrix inverse&amp;rdquo; either undefined or numerically useless. The &lt;strong>pseudoinverse&lt;/strong> (Moore-Penrose inverse) preserves the &lt;em>spirit&lt;/em> of an inverse while dropping the impossible-to-meet requirements: it redefines the &amp;ldquo;solution&amp;rdquo; of a linear system as the &lt;strong>least-squares solution&lt;/strong>, breaking ties by picking the one with &lt;strong>minimum norm&lt;/strong>. This post derives the pseudoinverse from that least-squares viewpoint, gives the four Penrose conditions, builds it from the SVD, and connects this single object to &lt;strong>the Eckart-Young low-rank approximation theorem&lt;/strong>, &lt;strong>PCA&lt;/strong>, &lt;strong>recommender-system matrix factorization&lt;/strong>, and &lt;strong>LoRA fine-tuning&lt;/strong>.&lt;/p></description></item><item><title>Reparameterization Trick &amp; Gumbel-Softmax: A Deep Dive</title><link>https://www.chenk.top/en/standalone/reparameterization-gumbel-softmax/</link><pubDate>Thu, 24 Jul 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/reparameterization-gumbel-softmax/</guid><description>&lt;p>The moment your model contains a sampling step, training hits a hard wall: &lt;strong>how do gradients flow through a random node?&lt;/strong>&lt;/p>
&lt;p>The reparameterization trick has a clean answer — rewrite $z\sim p_\theta(z)$ as $z=g_\theta(\epsilon)$, isolating the randomness in a parameter-free noise variable $\epsilon$, so backprop can flow through $g_\theta$. The trouble starts with discrete variables: operations like $\arg\max$ are not differentiable. &lt;strong>Gumbel-Softmax&lt;/strong> (a.k.a. the Concrete distribution) replaces the discrete sample with a tempered softmax over Gumbel-perturbed logits, giving you a smooth, differentiable surrogate that you can train end-to-end.&lt;/p></description></item><item><title>LLM Workflows and Application Architecture: Enterprise Implementation Guide</title><link>https://www.chenk.top/en/standalone/llm-workflows-architecture/</link><pubDate>Sat, 21 Jun 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/llm-workflows-architecture/</guid><description>&lt;p>Most LLM tutorials end where the interesting work begins. They show you how to call a chat completion endpoint, attach a vector store, and wrap the whole thing in a Streamlit demo. None of that is wrong, but none of it is what breaks at 3 a.m. when 10,000 users hit your service at once and every other answer is a hallucination.&lt;/p>
&lt;p>This article is about everything that comes after the demo. It is opinionated on purpose: production LLM systems are mostly plain distributed systems with one non-deterministic component bolted on, and most of the engineering effort goes into containing that non-determinism. We will work through seven dimensions — application architecture, workflow patterns, the RAG-vs-fine-tune decision, deployment topology, cost, observability, and enterprise integration — keeping each one short, concrete, and grounded in the levers that actually move the needle.&lt;/p></description></item><item><title>Symplectic Geometry and Structure-Preserving Neural Networks</title><link>https://www.chenk.top/en/standalone/symplectic-geometry-and-structure-preserving-neural-networks/</link><pubDate>Sat, 21 Jun 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/symplectic-geometry-and-structure-preserving-neural-networks/</guid><description>&lt;p>Train a vanilla feedforward network to predict a one-dimensional harmonic oscillator. Validate it on the next ten time steps &amp;ndash; the error is fine. Now roll it out for a thousand steps. The orbit no longer closes, the energy creeps upward, and what should be a periodic motion turns into a slow spiral. The network learned to fit data points; it never learned the &lt;em>physics&lt;/em>. Structure-preserving networks fix this by baking geometric invariants &amp;ndash; energy conservation, the symplectic 2-form, the Euler-Lagrange equations &amp;ndash; directly into the architecture, so the learned model cannot violate them no matter how long you integrate.&lt;/p></description></item><item><title>Prefix-Tuning: Optimizing Continuous Prompts for Generation</title><link>https://www.chenk.top/en/standalone/prefix-tuning/</link><pubDate>Mon, 31 Mar 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/prefix-tuning/</guid><description>&lt;p>Fine-tuning a 1.5B-parameter GPT-2 model for each downstream task means saving a fresh 1.5B-parameter checkpoint every time. Across a dozen tasks that is a substantial storage and serving headache, and it makes sharing a single base model essentially impossible. &lt;em>Prefix-Tuning&lt;/em> (Li &amp;amp; Liang, 2021) takes the opposite stance: freeze every weight of the language model, and learn a tiny block of continuous vectors — the &lt;em>prefix&lt;/em> — that is fed into the attention layers as if it were context the model already attended to. The model never changes; only the prefix does, and a different prefix produces a different &amp;ldquo;personality&amp;rdquo; on demand.&lt;/p></description></item><item><title>Vim Essentials: Modal Editing, Motions, and a Repeatable Workflow</title><link>https://www.chenk.top/en/standalone/vim-essentials/</link><pubDate>Fri, 06 Dec 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/vim-essentials/</guid><description>&lt;p>Most people quit Vim because they try to memorize shortcuts. That is the wrong frame. Vim is a &lt;em>small language&lt;/em>: learn the grammar &amp;ndash; &lt;strong>operator + motion&lt;/strong> &amp;ndash; and you can express any edit without ever opening a cheat sheet again. This guide walks you through the 80% of Vim you will use daily, then shows how the remaining 20% composes naturally from the same handful of rules.&lt;/p>
&lt;h2 id="what-you-will-learn">What you will learn&lt;/h2>
&lt;ul>
&lt;li>The single core idea: &lt;strong>modes&lt;/strong> plus &lt;strong>composable operations&lt;/strong> (operator + motion)&lt;/li>
&lt;li>The handful of motions, text objects, and operators that cover almost everything&lt;/li>
&lt;li>File operations, search &amp;amp; replace, macros, marks, registers&lt;/li>
&lt;li>Buffers vs windows vs tabs &amp;ndash; the mental model people most often get wrong&lt;/li>
&lt;li>A minimal &lt;code>.vimrc&lt;/code> and a one-week deliberate-practice plan to build muscle memory&lt;/li>
&lt;/ul>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>Any terminal (Vim ships with virtually every Unix-like system)&lt;/li>
&lt;li>A willingness to feel slow for about a week&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="1-the-core-idea----modes-plus-a-tiny-grammar">1. The core idea &amp;ndash; modes plus a tiny grammar&lt;/h2>
&lt;p>&lt;figure>
 &lt;img src="https://blog-pic-ck.oss-cn-beijing.aliyuncs.com/posts/en/standalone/vim-essentials/fig1_mode_state_diagram.png" alt="The Four Modes of Vim" loading="lazy" decoding="async">
 
&lt;/figure>
&lt;/p></description></item><item><title>MoSLoRA: Mixture-of-Subspaces in Low-Rank Adaptation</title><link>https://www.chenk.top/en/standalone/moslora/</link><pubDate>Sat, 12 Oct 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/moslora/</guid><description>&lt;p>LoRA is the default tool for adapting a frozen base model: cheap, stable, mergeable, and good enough for most single-task settings. But the moment your fine-tuning data is genuinely heterogeneous &amp;ndash; code mixed with math, instruction following mixed with creative writing, several domains in one adapter &amp;ndash; a single low-rank subspace starts to feel cramped. You can grow $r$, but cost grows with it and you still get &lt;em>one&lt;/em> subspace, just a fatter one.&lt;/p></description></item><item><title>Tennis-Scene Computer Vision: From Paper Survey to Production</title><link>https://www.chenk.top/en/standalone/tennis-cv-system-design/</link><pubDate>Mon, 07 Oct 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/tennis-cv-system-design/</guid><description>&lt;p>A 6.7 cm tennis ball travels at over 200 km/h. Reconstructing its 3D trajectory from eight 4K cameras in real time, while simultaneously classifying what stroke each player is making, is a system problem that touches &lt;strong>small-object detection, multi-view geometry, Kalman filtering, physics modelling, and human-pose estimation&lt;/strong> — all at once. This post walks the same path you&amp;rsquo;d walk at deployment time: state the constraints, survey the literature, choose, then build, and finally lay out a millisecond-by-millisecond budget for what runs in production.&lt;/p></description></item><item><title>HCGR: Hyperbolic Contrastive Graph Representation Learning for Session-based Recommendation</title><link>https://www.chenk.top/en/standalone/hcgr/</link><pubDate>Sat, 16 Dec 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/hcgr/</guid><description>&lt;p>A user opens a sneaker app, taps &amp;ldquo;running shoes&amp;rdquo;, drills into a brand, then a price band, then a single SKU. That trajectory is a &lt;em>tree&lt;/em>: each click narrows the candidate set roughly multiplicatively. In Euclidean space you need many dimensions to keep all the leaves of that tree apart, because Euclidean volume only grows polynomially with radius. In hyperbolic space volume grows &lt;em>exponentially&lt;/em> with radius, so the tree fits naturally — a few dimensions are enough to keep the whole long tail untangled.&lt;/p></description></item><item><title>Kernel Methods: From Theory to Practice (RKHS, Common Kernels, and Hyperparameter Tuning)</title><link>https://www.chenk.top/en/standalone/kernel-methods/</link><pubDate>Sun, 15 Oct 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/kernel-methods/</guid><description>&lt;p>You have non-linear data and a linear algorithm. The kernel trick lets you run that linear algorithm on the non-linear data &amp;ndash; without ever writing down the high-dimensional feature map. This guide builds the intuition first, then the math, then a practical toolkit you can ship.&lt;/p>
&lt;h2 id="what-you-will-learn">What You Will Learn&lt;/h2>
&lt;ul>
&lt;li>The kernel trick: why it works and what it actually buys you&lt;/li>
&lt;li>Mathematical foundations: positive-definite kernels, RKHS, Mercer&amp;rsquo;s theorem&lt;/li>
&lt;li>Common kernels: RBF, polynomial, linear, Matern, periodic, sigmoid&lt;/li>
&lt;li>Hyperparameter tuning: grid search, random search, marginal likelihood&lt;/li>
&lt;li>Troubleshooting: overfitting, underfitting, numerical instability, scale&lt;/li>
&lt;li>A kernel-selection decision tree for SVM, GP, and Kernel PCA&lt;/li>
&lt;/ul>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>Linear algebra basics (dot products, eigendecomposition)&lt;/li>
&lt;li>Familiarity with SVM or Gaussian Processes (conceptual)&lt;/li>
&lt;li>Python + scikit-learn&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h1 id="why-kernel-methods-matter">Why Kernel Methods Matter&lt;/h1>
&lt;p>&lt;figure>
 &lt;img src="https://blog-pic-ck.oss-cn-beijing.aliyuncs.com/posts/en/standalone/kernel-methods/fig1_kernel_trick.png" alt="The Kernel Trick: a 2D ring becomes linearly separable in 3D" loading="lazy" decoding="async">
 
&lt;/figure>
&lt;/p></description></item><item><title>Position Encoding Brief: From Sinusoidal to RoPE and ALiBi</title><link>https://www.chenk.top/en/standalone/position-encoding-brief/</link><pubDate>Wed, 20 Sep 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/position-encoding-brief/</guid><description>&lt;p>Self-attention has a strange property that surprises most people the first time they compute it by hand: it does not know the order of its inputs. Permute the tokens and every attention score is permuted along with them — the function is exactly equivariant. So before we can do anything useful with a Transformer, we have to inject position information from the outside.&lt;/p>
&lt;p>That single design decision — &lt;em>how&lt;/em> to inject it — has spawned a remarkable amount of research. Sinusoidal, learned, relative, T5-style buckets, RoPE, ALiBi, NoPE, and more. This post is a practitioner&amp;rsquo;s brief: enough math to know why each scheme works, enough comparison to choose one, and a clear focus on the property that matters most in the LLM era — &lt;strong>length extrapolation&lt;/strong>, the ability to handle sequences longer than anything seen in training.&lt;/p></description></item><item><title>LAMP Stack on Alibaba Cloud ECS: From Fresh Instance to Production-Ready Web Server</title><link>https://www.chenk.top/en/standalone/lamp-on-ecs/</link><pubDate>Fri, 01 Sep 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/lamp-on-ecs/</guid><description>&lt;p>You have a fresh ECS instance and SSH access. Your goal is a public website running Apache, PHP and MySQL. Between you and that goal sit three classes of problems that catch every beginner the first time:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Network reachability&lt;/strong> &amp;ndash; packets are silently dropped at the cloud security group, the OS firewall, or the listening socket, and the symptom is the same in all three cases: nothing happens.&lt;/li>
&lt;li>&lt;strong>Service wiring&lt;/strong> &amp;ndash; Apache, PHP and MySQL are three separate processes that have to find each other through file extensions, Unix sockets and TCP ports. Each interface has its own failure mode.&lt;/li>
&lt;li>&lt;strong>Identity and permissions&lt;/strong> &amp;ndash; Apache runs as &lt;code>www-data&lt;/code>, MySQL runs as &lt;code>mysql&lt;/code>, files are owned by &lt;code>root&lt;/code> after &lt;code>wget&lt;/code>. The wrong combination produces 403, &amp;ldquo;Access denied&amp;rdquo;, or &lt;code>chmod 777&lt;/code> desperation.&lt;/li>
&lt;/ol>
&lt;p>This guide walks through all of them in the order you actually hit them on day one, then keeps going into the things that show up on day thirty: TLS, virtual hosts, backups, source compilation, and when to stop running everything on a single box.&lt;/p></description></item><item><title>Variational Autoencoder (VAE): From Intuition to Implementation and Troubleshooting</title><link>https://www.chenk.top/en/standalone/vae-guide/</link><pubDate>Sat, 26 Aug 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/vae-guide/</guid><description>&lt;p>A plain autoencoder compresses and reconstructs. A variational autoencoder learns something far more useful: a smooth, structured latent space you can &lt;em>sample&lt;/em> from to generate genuinely new data. That single change — making the encoder output a &lt;em>distribution&lt;/em> instead of a vector — turns the network from a fancy compressor into a generative model with a tractable likelihood lower bound.&lt;/p>
&lt;p>This guide walks the full path: why autoencoders fail at generation, how the ELBO derivation gets you to the loss function, why the reparameterization trick is the trick that makes everything trainable, a complete PyTorch implementation, and a tour of every common failure mode with concrete fixes.&lt;/p></description></item><item><title>paper2repo: GitHub Repository Recommendation for Academic Papers</title><link>https://www.chenk.top/en/standalone/paper2repo-github-repository-recommendation/</link><pubDate>Tue, 22 Aug 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/paper2repo-github-repository-recommendation/</guid><description>&lt;p>You read a paper, want the code, and the &amp;ldquo;code available at&amp;rdquo; link is dead, missing, or points to a stub. Search engines fall back to keyword matching over the README, which works for popular repos with descriptive names and dies on everything else. paper2repo (WWW 2020) frames this as a cross-platform recommendation problem: learn one embedding space in which a paper abstract and a GitHub repository are directly comparable by dot product, then rank.&lt;/p></description></item><item><title>Session-based Recommendation with Graph Neural Networks (SR-GNN)</title><link>https://www.chenk.top/en/standalone/session-based-recommendation-with-graph-neural-networks/</link><pubDate>Thu, 13 Jul 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/session-based-recommendation-with-graph-neural-networks/</guid><description>&lt;p>A user clicks &lt;strong>A, B, C, B, D&lt;/strong>. A sequence model reads this as five tokens and folds them into a hidden state. &lt;strong>SR-GNN&lt;/strong> sees a &lt;em>graph&lt;/em> in which the edge &lt;code>B -&amp;gt; C&lt;/code> survives even after the user returns to &lt;code>B&lt;/code>, the node &lt;code>B&lt;/code> is reused (so its in/out neighbours both inform its embedding), and the geometry of the click stream is preserved as adjacency. That structural insight is why &lt;a href="https://arxiv.org/abs/1811.00855" target="_blank" rel="noopener noreferrer">SR-GNN (Wu et al., AAAI 2019) &lt;span aria-hidden="true" style="font-size:0.75em; opacity:0.55; margin-left:2px;">↗&lt;/span>&lt;/a>
 outperforms purely sequential baselines such as GRU4Rec and NARM on standard session-based recommendation (SBR) benchmarks.&lt;/p></description></item><item><title>Learning Rate: From Basics to Large-Scale Training</title><link>https://www.chenk.top/en/standalone/learning-rate-guide/</link><pubDate>Mon, 13 Mar 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/learning-rate-guide/</guid><description>&lt;p>Your model diverges. You halve the learning rate. Now it trains, but takes forever. You halve again — now the loss is a flat line. Sound familiar? Of all the knobs you can turn, &lt;strong>learning rate&lt;/strong> is the one that most often decides whether training converges, crawls, or blows up. This guide gives you the intuition, the minimal math, and a practical workflow to get it right — from a 12-layer CNN on your laptop to a 70B-parameter LLM on a thousand GPUs.&lt;/p></description></item><item><title>Graph Contextualized Self-Attention Network (GC-SAN) for Session-based Recommendation</title><link>https://www.chenk.top/en/standalone/gcsan/</link><pubDate>Sun, 15 Jan 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/gcsan/</guid><description>&lt;p>In session-based recommendation you only see a short anonymous click sequence &amp;ndash; no user profile, no long history, no demographics. Every signal you have lives inside that single window. &lt;strong>GC-SAN&lt;/strong> (IJCAI 2019) takes the strongest two ideas of the time &amp;ndash; SR-GNN&amp;rsquo;s session graph and the Transformer&amp;rsquo;s self-attention &amp;ndash; and stacks them: a &lt;em>graph&lt;/em> view captures local transition patterns and loops, a &lt;em>sequence&lt;/em> view captures long-range intent, and a tiny weighted sum decides how much of each to trust. The result is a clean &amp;ldquo;best of both worlds&amp;rdquo; baseline that is genuinely hard to beat at its parameter budget.&lt;/p></description></item><item><title>Lipschitz Continuity, Strong Convexity &amp; Nesterov Acceleration</title><link>https://www.chenk.top/en/standalone/lipschitz-continuity-strong-convexity-nesterov/</link><pubDate>Tue, 27 Dec 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/lipschitz-continuity-strong-convexity-nesterov/</guid><description>&lt;p>A surprising amount of &amp;ldquo;optimizer folklore&amp;rdquo; collapses into three concepts:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>How steep is the gradient?&lt;/strong> Lipschitz smoothness ($L$-smoothness) caps the step size.&lt;/li>
&lt;li>&lt;strong>How sharp is the bottom?&lt;/strong> $\mu$-strong convexity sets the convergence rate and forces the minimizer to be unique.&lt;/li>
&lt;li>&lt;strong>Can we get there faster without losing stability?&lt;/strong> Nesterov acceleration and adaptive restart turn the per-condition-number cost from $\kappa$ into $\sqrt{\kappa}$.&lt;/li>
&lt;/ul>
&lt;p>This post lays them out on a single thread: nail the geometric intuition with the minimum number of inequalities, prove the key theorems, then close with a least-squares experiment that pits GD, Heavy Ball, and Nesterov against each other. The goal is not to stack formulas — it is to make you able to look at a new problem and instantly answer &amp;ldquo;what step size, what rate, is acceleration worth it?&amp;rdquo;&lt;/p></description></item><item><title>Optimizer Evolution: From Gradient Descent to Adam (and Beyond, 2025)</title><link>https://www.chenk.top/en/standalone/optimizer-evolution-gd-to-adam/</link><pubDate>Fri, 09 Dec 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/optimizer-evolution-gd-to-adam/</guid><description>&lt;p>Why is &amp;ldquo;tuning the LR is an art&amp;rdquo; a meme for ResNet, while every modern LLM paper just writes &amp;ldquo;AdamW, $\beta_1{=}0.9, \beta_2{=}0.95, \mathrm{wd}{=}0.1$&amp;rdquo; and moves on? It is not an accident — it is the &lt;strong>end-point of three decades of optimizer evolution&lt;/strong>.&lt;/p>
&lt;p>This post walks the lineage end-to-end on a single thread: each step exists because of a &lt;strong>specific failure&lt;/strong> of the previous one. We end with the three directions that have actually entered the post-2023 large-model toolkit: Lion, Sophia, and Schedule-Free.&lt;/p></description></item><item><title>LLMGR: Integrating Large Language Models with Graphical Session-Based Recommendation</title><link>https://www.chenk.top/en/standalone/llmgr/</link><pubDate>Sat, 26 Nov 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/llmgr/</guid><description>&lt;p>Session-based recommendation lives or dies on the click graph. New items have no edges. Long-tail items have a handful of noisy edges. Yet every item ships with a title and a description that the model never reads. &lt;strong>LLMGR&lt;/strong> plugs that hole: treat the LLM as a &amp;ldquo;semantic engine&amp;rdquo; that turns text into representations a graph encoder can fuse with, then let a GNN do what it does best &amp;ndash; rank. The headline result on Amazon Music/Beauty/Pantry: HR@20 up ~8.68%, NDCG@20 up ~10.71%, MRR@20 up ~11.75% over the strongest GNN baseline, with the largest uplift concentrated on cold-start items.&lt;/p></description></item><item><title>Multimodal LLMs and Downstream Tasks: A Practitioner's Guide</title><link>https://www.chenk.top/en/standalone/multimodal-llm-downstream-tasks/</link><pubDate>Fri, 05 Aug 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/multimodal-llm-downstream-tasks/</guid><description>&lt;p>Stuffing pixels, audio, and video into a language model so it can &amp;ldquo;see,&amp;rdquo; &amp;ldquo;hear,&amp;rdquo; and reason &amp;ndash; that was a research curiosity before CLIP landed in 2021. Today it&amp;rsquo;s table stakes for most consumer-facing AI products. But shipping a Multimodal LLM (MLLM) in production turns out to be hard in places people rarely talk about. Almost never the vision encoder. Almost always these four:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Alignment.&lt;/strong> How does the language model &amp;ldquo;understand&amp;rdquo; what the vision encoder produces? Is the projector a 2-layer MLP or a Q-Former? Which parameters thaw during training?&lt;/li>
&lt;li>&lt;strong>Task framing.&lt;/strong> The same MLLM has to do captioning, VQA, grounding, OCR. Each needs a prompt template that doesn&amp;rsquo;t quietly drop several points of accuracy.&lt;/li>
&lt;li>&lt;strong>Cost.&lt;/strong> A 1024x1024 image becomes hundreds of visual tokens. Prefill is brutal. Stretch that to video and the bill goes vertical. Token compression, KV cache reuse, and batching are not optional.&lt;/li>
&lt;li>&lt;strong>Evaluation.&lt;/strong> A model that scores 80 on MMBench can still hallucinate confidently on your customer&amp;rsquo;s invoice. Public benchmarks are the easy part.&lt;/li>
&lt;/ol>
&lt;p>This post follows the natural research arc &amp;ndash; architecture, model families, downstream tasks, fine-tuning, evaluation, deployment &amp;ndash; and tries to be specific enough at each stop that you can act on it. Less &amp;ldquo;what&amp;rsquo;s possible,&amp;rdquo; more &amp;ldquo;what to actually pick.&amp;rdquo;&lt;/p></description></item><item><title>Operating System Fundamentals: A Deep Dive</title><link>https://www.chenk.top/en/standalone/operating-system-fundamentals-deep-dive/</link><pubDate>Mon, 01 Aug 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/operating-system-fundamentals-deep-dive/</guid><description>&lt;p>Open a terminal and type &lt;code>cat hello.txt&lt;/code>. The instant you press Enter, at least seven layers of machinery wake up: bash parses the line, fork+execve launches the cat process, the kernel hands it a virtual address space, cat issues a &lt;code>read()&lt;/code> syscall, the CPU traps into kernel mode, VFS dispatches to ext4, the block layer queues an NVMe request, the SSD DMA-writes the bytes back, an interrupt wakes cat, the bytes are copied through the page cache into the user buffer, and finally something appears on your screen.&lt;/p></description></item><item><title>Proximal Operator: From Moreau Envelope to ISTA/FISTA and ADMM</title><link>https://www.chenk.top/en/standalone/proximal-operator/</link><pubDate>Mon, 25 Jul 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/proximal-operator/</guid><description>&lt;p>When your objective contains a non-smooth piece (sparse regularisation, total variation, an indicator of a constraint set) or a constraint that is hard to handle directly, &amp;ldquo;just do gradient descent&amp;rdquo; stalls &amp;ndash; there is no gradient at the kink, or every step violates feasibility. The &lt;strong>proximal operator&lt;/strong> is the engineered, beautiful workaround: think of each update as &amp;ldquo;take a step on the smooth part, then run a tiny penalised minimisation that pulls the iterate back toward a structured solution&amp;rdquo;.&lt;/p></description></item><item><title>Graph Neural Networks for Learning Equivariant Representations of Neural Networks</title><link>https://www.chenk.top/en/standalone/gnn-equivariant-representations/</link><pubDate>Fri, 22 Jul 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/gnn-equivariant-representations/</guid><description>&lt;p>You can shuffle the hidden neurons of a trained MLP and get the &lt;em>exact&lt;/em> same function back &amp;ndash; but the flat parameter vector now looks completely different. This single fact ruins most attempts at &amp;ldquo;learning over neural networks&amp;rdquo;: naive representations treat two functionally identical models as two unrelated points in parameter space, and the downstream learner wastes capacity rediscovering a symmetry it should have for free. This paper &amp;ndash; &lt;em>Graph Neural Networks for Learning Equivariant Representations of Neural Networks&lt;/em> (Kofinas et al., ICML 2024) &amp;ndash; proposes the clean fix: turn the network itself into a graph, then use a GNN whose architecture &lt;em>natively&lt;/em> respects the relevant permutation symmetry.&lt;/p></description></item></channel></rss>