This page builds every symbol used in the parent PEFT note from absolute zero. If a line in that note used a letter you didn't recognise, it is defined here first, with a picture.
x1,x2,… are the entries (the individual numbers).
k is how many entries there are — the dimension.
R (a fancy "R") just means "the real numbers" — any decimal you like, positive or negative.
The picture. A vector of 2 numbers is an arrow on a flat page: the first number is how far right, the second how far up. A vector of k numbers is the same idea in k directions at once (we can't draw more than 3, but the idea is identical).
Why the topic needs it. In an LLM, each token (word-piece) is turned into a vector x — a list of, say, 4096 numbers describing its meaning. Everything the model does is push these vectors around.
The picture. Think of W as a grid of dials. Each dial contributes a little push to the output. A d×k grid has exactly d⋅k dials — and that number is why full fine-tuning is expensive.
Why the topic needs it. The parent note's very first line, h=Wx, is "the layer's weight matrix W transforms the input vector x." Every trainable part of the model is a matrix like this.
x has k entries → matches the k columns of W. (Sizes must line up.)
h has d entries → one per row of W.
Why the topic needs it. The whole LoRA equation h=Wx+rαBAx is three of these weighted votes added together. If you can read Wx, you can read the whole thing.
The picture. Lay ΔW exactly over W; add the two grids cell by cell. If a cell of ΔW is zero, that dial doesn't move.
Why the topic needs it. Fine-tuning = finding a good ΔW. PEFT's entire trick is: don't store ΔW as a full dense grid — store it cheaply. That "cheaply" is the next idea.
This is the single most important prerequisite, so we go slowly.
Tiny example. Look at these two 3×3 grids:
rank 1123246369rank 3100010001
Left: row 2 is 2× row 1; row 3 is 3× row 1. There is really only one direction here → rank 1. It looks like a 3×3 grid of 9 numbers, but it is secretly simple.
Right: the three rows point in three totally separate directions → rank 3 (full).
Why the topic needs it. The parent's key claim — "fine-tuning updates lie on a low intrinsic dimension" — means exactly: ΔW is low rank. It looks big but is secretly simple, so we can store it in far fewer numbers.
Why two matrices reproduce a d×k grid. The rule "rows × columns must match" lets B (d×r) multiply A (r×k): the shared inner size r cancels, leaving d×k. The small waist r is the bottleneck — information is forced through only r channels, which is why the result is guaranteed low rank.
Read left to right: the original weighted vote Wx, plus a scaled, low-rank correction rαBAx. Nothing here is unexplained anymore. LoRA typically inserts this on the q and v matrices inside Transformer Attention; the alternative it competes with is Full Fine-Tuning, and its cousin is Prompt Tuning.