使用 LoRA 訓練
你想開始進行 RLHF 微調,但一直遇到記憶體不足(out-of-memory)錯誤。即使已改為以 8 位元精度載入模型,錯誤仍然存在。為了解決這個問題,你決定更進一步,套用 LoRA 來提升微調效率。
以下內容已預先匯入:
- 以 8 位元精度載入的模型
pretrained_model_8bit - 來自
peft的LoraConfig與get_peft_model - 來自
trl的AutoModelForCausalLMWithValueHead
本練習屬於課程
Reinforcement Learning from Human Feedback(RLHF)
練習說明
- 將 LoRA 的 dropout 設為
0.1,並將 bias 類型設為 lora-only。 - 將 LoRA 設定加入模型。
- 以 value head 設定模型,供 PPO 訓練使用。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Set the configuration parameters
config = LoraConfig(
r=32,
lora_alpha=32,
lora_dropout=____,
bias=____)
# Apply the LoRA configuration to the 8-bit model
lora_model = get_peft_model(pretrained_model_8bit, ____)
# Set up the tokenizer and model with a value head for PPO training
model = ____.from_pretrained(____)