How LoKr works using Kronecker Product
mainLoKr (LoRA for Kronecker product) decomposes weight updates using the Kronecker product ($\otimes$). The weight update is expressed as $\Delta W = W_1 \otimes (Wa_2 \cdot Wb_2)$, where $W_1$ acts as a weight scale for a standard LoRA-decomposed matrix $W_2$.
Key Properties:
- Multiplicative Rank: The rank of the resulting $\Delta W$ is multiplicative: $rank(\Delta W) \le min(a, b) \times r$, where $r$ is the LoRA rank.
- Parameter Efficiency: It can reduce the number of parameters to the order of the square root of the matrix dimensions. For a matrix of size $m \times n$, if the factor is set to
-1, the number of parameters is approximately $\sqrt{mn} + r \times (\sqrt{m} + \sqrt{n})$.