Stacked LoRA
Freeze the inherited adapter contribution and train a new residual LoRA block in a compatible GRPO stage.
Stacked LoRA keeps the inherited adapter contribution fixed and trains a new child contribution alongside it. The base remains frozen. Parent and child outputs add at the same selected projection; the child does not receive the parent's output as its input.
Choose it when you want the new stage's parameter updates confined to a new factor block. Frozen parent parameters do not guarantee preserved behavior: the new child still changes the effective projection seen by the model.
Add the contributions
For a base projection and one inherited adapter:
parent delta = s B_p A_p
child delta(t) = s B_c(t) A_c(t)
W_effective(t) = W0 + s B_p A_p + s B_c(t) A_c(t)A_p, B_p and W0 stay fixed. Only the new A_c and B_c may change.
For several inherited blocks, the parent term is their retained sum.
With the common accepted scale, concatenate the factor slices:
A_stack = [ A_p ] B_stack = [ B_p B_c ]
[ A_c ]
B_stack A_stack = B_p A_p + B_c A_cThis is an additive factorization, not B_c A_c B_p A_p. No branch shares a
trainable A matrix with another branch.
Capacity is part of compatibility
The current managed policy runtime uses a fixed rank-32 residual envelope. Inherited enabled rank plus new child rank must fit:
r_enabled_next = r_inherited + r_child
r_enabled_next <= 32| Illustrative configuration | Capacity result |
|---|---|
| Rank-8 inherited contribution + rank-8 child | Uses 16 enabled rank positions. |
| Rank-16 inherited contribution + rank-16 child | Fills the 32-position envelope. |
| 27 inherited positions + rank-8 child | Exceeds the envelope and is rejected. |
Passing this arithmetic does not qualify the rank, parent or runtime. The exact worker image must support the requested logical child rank and complete profile. Unused envelope positions remain reserved/zeroed rather than permission to train arbitrary extra factors.
For one projection, a rank-r_child child has
r_child × (d_in + d_out) factor degrees of freedom. The physical runtime uses
its fixed envelope, so that expression is not a claim about allocated GPU
memory, serialized tensor sizes or measured speed.
How a stage begins
The runtime preserves the exact inherited slices, initializes the new child A and starts its B slice at zero. The initial child contribution is therefore zero even though A is initialized. New training can then develop a residual update from fresh GRPO attempts and rewards.
Gradient masks restrict updates to the active child slices. Retained manifests record block identities, offsets, ranks and the trainable block. Recovery checks that inherited factors still match their authorized immutable values.
This describes implementation behavior, not a guarantee of bit-for-bit parity on every GPU or a measured improvement. Inspect the admitted runtime's actual reload and equivalence evidence.
Configure and inspect
- Choose New experiment → Stacked LoRA.
- Select the exact compatible saved GRPO-trained parent. Its whole inherited contribution counts toward occupied envelope capacity.
- Select the supported child rank, admitted training tasks, executable reward binding and independent holdout; review the exact parent/runtime and spend.
- Explicitly start the reviewed preparation. A new cross-job stage has fresh optimizer state; recovery of an interrupted stage restores that stage instead.
- Inspect the resulting block layout, frozen-parent evidence, optimizer updates, checkpoint publication and held-out comparison before accepting a candidate.
This path is not general SFT continuation or arbitrary adapter stacking. It preserves exact base/tokenizer/template, runtime and recipe compatibility. At capacity, another child cannot simply be appended. Do not assume a filled stack can be converted into a Shared or Merged training parent: those modes have their own single-slice and same-rank requirements. A derived-backbone parent is currently restricted to the Merged training path.
Compatible continual learning can retain this GRPO continuation choice, but still needs its saved admission, schedule, evaluation, budget and candidate rules. Serving activation is separate.
Compare Shared LoRA, which updates existing factors, and Merged LoRA, which materializes an eligible delta into a derived backbone. Use the GRPO preparation contract for the common reviewed execution flow.
Compatibility
GRPO cross-job continuation only. Requires an exact compatible parent and enough free capacity in the qualified residual envelope; a new stage starts a fresh optimizer.