LoRA微調三步驟是:
- Step-1:觀察&測試原模型(如MT5)的input和output格式。
- Step-2:準備Training data,建立自己的Dataset類別,並拿原模型實際訓練。
- Step-3:將LoRA外掛到MT5-Small,並進行協同訓練及測試。
在本篇文章中,將以MT5-small預訓練大模型為例,並以Python源碼(Source Code)來說明之。
簡介LoRA
當今大家非常關心於LLM大模型的巨大參數量,帶來的很高的訓練成本,因而限制了諸多下游任務的應用。換句話說,由於大語言模型(LLM)的參數量巨大,許多大公司都需要訓練數月,因此許多專家們提出了各種資源消耗較小的訓練方法,而其中最常用的就是:LoRA。
由於LoRA的模型參數非常輕量,對於下游任務而言,每一個下游任務只需要獨立維護自身的LoRA參數即可。因之,可以節省*.ckpt和*.onnx的儲存空間。同時,在訓練時可以凍結原模型(如MT5)的既有參數,只需要更新較輕量的LoRA參數即可。可大幅提升模型的訓練效能。
使用LoRA時,我們並不需要對原有大模型進行訓練及調整參數,只需要訓練橙色區域中的A和B兩部分的參數即可。
一般而言,LoRA 可以應用於神經網路中權重矩陣的任何子集,以減少可訓練參數的數量。然而,在 Transformer 模型中,為了簡單性和參數效率,LoRA 通常僅應用於注意力(Attention)區塊。
簡介MT5
每個Transformer模型都基於龐大的語料庫,進行很長時間的模型預訓練。這個預訓練階段,讓模型對任何上下文中的任何單詞都能掌握其涵義。T5的核心主張是:將所有 NLP 任務都轉化成 Text-to-Text (文本到文本)任務。如下圖:
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏