GraphPKU / PiSSA

PiSSA: Principal Singular Values and Singular Vectors Adaptation of Large Language Models(NeurIPS 2024 Spotlight)
https://arxiv.org/abs/2404.02948
261 stars 9 forks source link

关于kernel_size大于1的卷积的权重的分解 #16

Closed lastapple closed 4 months ago

lastapple commented 4 months ago

大佬,我最近在我的TTS模型上搞lora,然后用了你这个,我感觉有奇效!

但是我模型有些网络层还没用上你这个svd分解的初始化: 1.例如kernel_size大于1的卷积,权重是诸如(1024,512,3)这种size的矩阵svd分解咋搞比较好?拆成三个(1024,512)弄吗,脑子好痒猪脑过载了…… 2.如果有的Embedding或者linear层的输入或输出dim很小,比如只有1或者2,参数量很小,是不是没必要搞svd分解了?

我想请问你有没有实现的建议,我去快速验证下QAQ

fxmeng commented 4 months ago

您好, 很高兴听到pissa对你的工作有帮助,对于您的问题:

  1. 我们在这份代码里实现了卷积和embedding的pissa初始化: https://github.com/fxmeng/peft/blob/main/src/peft/tuners/lora/layer.py 2.如果一个维度很小,那完整训练整个layer就可以了,不需要使用pissa or lora
lastapple commented 4 months ago

您好, 很高兴听到pissa对你的工作有帮助,对于您的问题:

  1. 我们在这份代码里实现了卷积和embedding的pissa初始化: https://github.com/fxmeng/peft/blob/main/src/peft/tuners/lora/layer.py 2.如果一个维度很小,那完整训练整个layer就可以了,不需要使用pissa or lora

牛的学到了,就view一下算好再view回去是吧,我周末试试