Build1 publisher2 min readPublished
A 20x backbone-to-head learning rate gap only pays when the checkpoint solves a different task
A dev.to write-up gives DEIMv2's DINOv3 backbone 5e-6 and its decoder head 1e-4 while fine-tuning a face detector, then explains why a second detector from the same week kept one global learning rate.
The Engineer · Build desk

What happened
- A dev.to write-up describes fine-tuning DEIMv2, a DETR-style detector with a DINOv3 Vision Transformer backbone, from a COCO-pretrained checkpoint into a single-class face detector.
- The author set the backbone learning rate to 5e-6 and the decoder head to 1e-4, a 20x gap he names as discriminative fine-tuning, also called layer-wise learning rate decay.
- The common recipe uses one learning rate for the whole network on the assumption that every layer needs the same update rate, which the post says holds only when the checkpoint already solves the task.
- In the same week the author fine-tuned two different detectors for the same face-detection task and applied layer-wise decay to only one of them.
- The technique dates to ULMFiT in 2018 and now appears in BERT-family fine-tuning and in MAE and BEiT-style vision recipes that decay a factor per layer from the output back toward the input.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- decision The optimizer config now turns on a question about the checkpoint's prior task, so two runs on the same dataset, in the same framework, on the same architecture can justify opposite settings.
- cost Both wrong answers are paid in GPU hours: a throttled head spends epochs converging that produce little, and an over-driven backbone spends them degrading the pretraining you paid nothing for.
- exposure Teams that keep one global rate because their checkpoint already solves the task take on a different risk. The post points at warmup schedules that perturb an optimum which did not need perturbing.
- constraint The contrast rests on two runs by one practitioner, and no numbers were published, so a team can adopt the decision rule but has to spend its own compute to size the effect.
The gap is a ratio. Divide the head's 1e-4 by the backbone's 5e-6 and you get 20, so for an equal gradient signal the head's weights move twenty times as far per step as the backbone's [4]. That backbone came in from a COCO-pretrained DINOv3 checkpoint and already encodes what an edge or a texture looks like [1][8]. The classification head had never seen "face" as its own class, and has to learn the concept close to from scratch [8].
Share one rate across both and you pick which side to damage. Set it high enough for the head to converge quickly and the backbone is dragged along at the same pace, its general-purpose features degrading before the head stabilizes, the classic symptom of catastrophic forgetting [9]. Set it low enough to keep the backbone safe and the head converges painfully slowly, burning epochs and compute [10].
Which of those you are exposed to depends on the checkpoint, not the model class. The post's self-test is one question: has this checkpoint already solved this exact task before, just on less data, or is it solving a different task whose learned features you are borrowing [17]. Repurposing an 80-class COCO detector to find one category it was never trained to recognize as a distinct class falls on the second side [7]. The answer decides it, the author wrote, "not the architecture, not the framework" [17].
The same author wrote that discriminative fine-tuning should not be switched on by default [15]. The two runs are the only evidence for that claim. The post does not publish the second detector's optimizer settings or accuracy figures for either run [18]. A single global rate is also the default in almost every framework's train() call [5].
So the direction transfers, and only the direction. Per-layer decay is standard practice in the recipes the post cites, from output layers back toward the input [13], and the rule of thumb is only an ordering: closer to the input, lower [12]. For 20x specifically to be right on your run, your head would have to sit about as far from its pretrained objective as a one-class face head sits from 80-class COCO detection [7][8].
What to watch
- A follow-up that names the second detector and its optimizer settings would make the same-week contrast checkable.
- Published metrics for one DETR-style fine-tune run with and without a 20x split would show the size of the effect on a detector rather than a classifier.
- Whether detection training recipes start shipping the per-layer decay factor that MAE and BEiT-style vision recipes already use.