LoRA rests on one observation and one identity. The observation: the change a task needs in a weight matrix is often well captured by a few directions. The identity: a product of two thin matrices is a matrix of low rank, and can be added to the weight after training.
You will find how much rank a constructed update needs, write the forward pass, and merge the adapter into the weights.