柚子快報(bào)激活碼778899分享:LLMs之llama
柚子快報(bào)激活碼778899分享:LLMs之llama
LLMs之llama_7b_qlora:源碼解讀export_hf_checkpoint.py模型權(quán)重合并文件)將LORA模型的權(quán)重合并回原始模型的權(quán)重(hf_llama_model+llama_7b_qlora),并保存到指定的檢查點(diǎn)文件中
目錄
利用export_hf_checkpoint.py(模型權(quán)重合并文件)將LORA模型的權(quán)重合并回原始模型的權(quán)重(hf_llama_model+llama_7b_qlora),并保存到指定的檢查點(diǎn)文件中
# 1、定義環(huán)境變量:BASE_MODEL、LORA_MODEL、HF_CHECKPOINT
# 2、獲取BASE_MODEL的LlamaTokenizer:從預(yù)訓(xùn)練的基本模型中加載分詞器
# 3、合并權(quán)重
# 3.1、依次獲取模型
# 3.1.1、利用LlamaForCausalLM獲取BASE_MODEL的基本Llama模型:使用bfloat16精度并設(shè)置device為cpu
# 3.1.2、加載LORA模型:利用PeftModel獲取base_model和LORA_MODEL
# 3.2、依次獲取兩個(gè)模型第一層的權(quán)重
# 3.2.1、獲取base_model的第一層的權(quán)重,并進(jìn)行了一次克隆
# 3.2.2、獲取了LORA模型第一層的權(quán)重,并確保first_weight_old和first_weight是近似相等
# 3.2.3、斷言first_weight與first_weight_old不相等,表示權(quán)重已修改
# 3.3、for循環(huán)迭代LORA模型的所有層,并將每層的merge_weights屬性設(shè)置為True,以便將權(quán)重合并回原始模型的權(quán)重。
# 3.4、將lora model設(shè)為eval模式非訓(xùn)練模式)
# 3.5、獲取了lora_model的狀態(tài)字典,并根據(jù)指定的規(guī)則將鍵中的"base_model.model."部分去掉,保存在deloreanized_sd字典中
# 3.6、保存新修改后的權(quán)重到HF_CHECKPOINT指定的路徑,并指定了max_shard_size參數(shù)為"400MB",用于控制保存的文件大小。
實(shí)現(xiàn)代碼
利用export_hf_checkpoint.py(模型權(quán)重合并文件)將LORA模型的權(quán)重合并回原始模型的權(quán)重(hf_llama_model+llama_7b_qlora),并保存到指定的檢查點(diǎn)文件中
柚子快報(bào)激活碼778899分享:LLMs之llama
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。