10 comments

[ 0.22 ms ] story [ 28.9 ms ] thread
This is a bit of a misleading title. Why not use the original?

"Improving LoRA: Implementing Weight-Decomposed Low-Rank Adaptation (DoRA) from Scratch"

(If it's too long, just drop the "Improving LoRA: " part)

Hooray, no more confusion with LoRa the radio!
I'm waiting for physicists to have their gripe with the acronym.
Yes, but think of the explorer!
Speaking of LoRA, what happened with ZipLoRA? It's supposed to be a better way of merging multiple LoRAs, and the results look good in their examples. Is it being used anywhere?

https://ziplora.github.io/

Not sure, but in general, it looks like ZipLoRA is only useful in specific contexts like when you have two different tasks you want to optimize for (like style and content in a vision context). DoRA is more general, it's basically normalizing and scaling the LoRA matrices to get much better performance. According to the paper, it even works great for low ranks, which also effectively makes it even more parameter-efficient than OG LoRA.
I just read the article, nice write up! I think it would benefit from a short explanation of what the magnitude vector (m) and the directional matrix (V) are, I'm not familiar with that kind of decomposition.

Not related to the article but tangentially relevant, would it be possible to train a LoRA or DoRA with a high rank, and then use SVD to see if the rank is too high and truncate to a better value of r? Maybe use different ranks for different layers after some training?

This is very cool and will change the way we do lora now.