1.introduction
llamafactory由三個主要模塊組成,Model Loader,Data Worker,Trainer。
2.Efficient fine-tuning techniques
2.1 Efficient Optimization
凍結(jié)微調(diào):凍結(jié)大部分參數(shù),同時只在一小部分解碼器層中微調(diào)剩余參數(shù),GaLore將梯度投影到低維空間,以內(nèi)存高效的方法實現(xiàn)全參數(shù)學(xué)習(xí);相反,Lora凍結(jié)所有的預(yù)訓(xùn)練權(quán)重,并在指定層中引入一對可訓(xùn)練的低秩矩陣,當(dāng)與量化結(jié)合時,稱之為QLora。
2.2 Efficient Computation
3.LLamafactory framework
3.1 ModelLoader
3.1.1 Initialization
使用transformers的AutoModel API加載模型并初始化參數(shù),為了使框架兼容不同模型架構(gòu),建立了一個模型注冊表,存儲每層的類型,從而更方便的使用高效的微調(diào)技術(shù),當(dāng)word embedding的詞匯大小超過tokenizer的容量時,會調(diào)整層的大小,并使用噪聲均值初始化新參數(shù),為了計算RoPE縮放的縮放因子,計算了輸入序列長度的最大值與模型的上下文長度的比率。
3.1.2 Patches
為了啟用flash-attention和s2-attention,使用monkey patch替換模型的前向計算。
3.1.3 Quantization
3.1.4 Adapter
PEFT
3.2 Data worker
構(gòu)建了一個數(shù)據(jù)處理流程,包括數(shù)據(jù)加載,數(shù)據(jù)對齊,數(shù)據(jù)合并和預(yù)處理。將不同任務(wù)數(shù)據(jù)標(biāo)準(zhǔn)化為統(tǒng)一格式。
3.3 Trainer
Lora/GaLore,訓(xùn)練方法與Trainer獨立,使用transformers進行pt和sft,trl進行rlhf和dpo,
3.4 Utilities
transformer和vllm進行輸出,實現(xiàn)了openai風(fēng)格的api。
4.Empirical study
4.1 Training efficiency
PubMed數(shù)據(jù)集,包括3600w數(shù)據(jù),提取大約40w token來構(gòu)建訓(xùn)練樣本,
文章來源:http://www.zghlxwxcb.cn/news/detail-851404.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-851404.html
到了這里,關(guān)于llamafactory:unified efficient fine-tuning of 100+ lanuage models的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!