Vicuna LoRA RLHF PyTorch
1.0.0
在消費性硬體上使用 LoRA 和 RLHF 微調 Vicuna LLM 的完整流程
穷人卡:2080Ti 12G
torch==2.0.0
cuda==11.8
python apply_delta.py --base ' decapoda-research/llama-7b-hf ' --target ' ./weights/vicuna-7b ' --delta lmsys/vicuna-7b-delta-v1.1
先檢查src/peft/utils/save_and_load.py ,僅註解第 52 行
# #to_return = {k: v for k, v in to_return.items() if (("lora_" in k and adapter_name in k) or ("bias" in k))}
然後運行
python supervised_finetune.py --data_path ' ./data/merge_sample.json ' --output_path ' lora-Vicuna ' --model_path ' ./weights/vicuna-7b ' --eval_steps 200 --save_steps 200 --test_size 1
先檢查peft版本,如果peft不是0.2.0,應該安裝peft==0.2.0
pip uninstall peft -y
pip install peft==0.2.0 # 0.3.0.dev0 has many errors
python merge_peft_adapter.py --model_name ' lora-Vicuna '
pip uninstall peft -y
pip install git+https://github.com/huggingface/peft.git # then comments peft/utis/save_and_load.py line 52.
python train_reward_model.py --model_name ' ./weights/vicuna-7b ' --gradient_accumulation_steps 32 --per_device_train_batch_size 1 --train_subset 100 --eval_subset 10 --local_rank 0 --bf16 False
python merge_peft_adapter.py --model_name ./reward_model_vicuna-7b
python tuning_lm_with_rl.py --model_name ' ./lora-Vicuna-adapter-merged ' --reward_model_name ' ./reward_model_vicuna-7b-adapter-merged ' --adafactor False --tokenizer_name ' decapoda-research/llama-7b-hf ' --save_freq 100 --output_max_length 128 --batch_size 1 --gradient_accumulation_steps 1 --batched_gen True --ppo_epochs 1 --seed 0 --learning_rate 1.4e-5 --early_stopping True --output_dir ' ./tuning_llama_rl_checkpoints '
value
to put in on 0. 需要參考 Transformer 在github上的最新代碼,我在發現這個問題的時候,隔天發現在transformer的github上8小時前才剛修復了這個問題。apply_delta.py 來自 FastChat 。
要求主要是依照alpaca-lora來配環境。
如果這個專案能幫助你減少開發時間,你可以給我一杯咖啡:)
AliPay(支付寶)
微信支付(WechatPay)
麻省理工學院 © Kun