未來不管是Diffuser還是LLM的微調,都離不開LoRA這項技術,充分理解LoRA的本質是甚麼,CP值特別高。這項技術的理念其實在人工智慧領域行之有年,只是普遍沒有響亮的名字與非常痛的應用場合,在大模型參數量暴增的時刻,重要性被大幅凸顯出來。
一個矩陣最大的Rank(獨立向量個數),會取決於矩陣長與寬的最小值,也是獨立的特徵向量的最大總數,想要大幅度的減少矩陣大小,降低參數量,最簡單的方法就是減少矩陣的Rank數目,如下圖所示:
那該如何決定參數可以減少多少呢? Rank數取決於特徵值的大小,特徵值越大,特徵向量越重要,如下圖所示,滿Rank=20的矩陣會有約20%,4個Rank的重要性會占整體80%,這滿足了大數80/20法則,在一個訓練取得優秀成果的Model都會很自然地出現這個特性。如果要抓住Model整體的精神宗旨,只要抓住20%,也就是4個Rank的量,這樣就能節省非常多的參數,代價是會損失一些細部的模型理解能力。
LoRA (Low-Rank Adaptation of Large Language Models) 可以看成是超級大模型的外掛程式,做微調的時候,可以保持原模型不變,外掛分支,如下圖所示的架構: