iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

經過前面的準備,我們已經擁有了專屬的問答資料集。今天,我們要讓AI導遊開始它的學習之旅。關鍵在於使用 PEFT (Parameter-Efficient Fine-Tuning) 函式庫,它讓微調變得非常輕鬆。

首先要使用 PeftModel 這個核心工具,將設定好的 LoRA 適配器載入到預訓練的Gemma模型上。
這個步驟並不會改變原始模型龐大的參數,而是在它的基礎上疊加一層輕量級的學習層。這個過程極大地減少了訓練所需的計算資源,可以在一般的硬體上也能對模型進行微調。

from peft import get_peft_model, LoraConfig, TaskType
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer

# 定義 LoRA 配置

lora_config = LoraConfig(
    task_type=TaskType.CAUSAL_LM,
    r=8,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"], # 指定要應用 LoRA 的模型層
    lora_dropout=0.05,
)

# 載入預訓練的 Gemma 模型
model = AutoModelForCausalLM.from_pretrained("google/gemma-2b")

# 將 LoRA 適配器載入到模型中
model = get_peft_model(model, lora_config)

完成載入後,啟動訓練流程。整個訓練過程就像是讓 AI 閱讀我們的問答資料集,並學習如何回答相關問題。在訓練過程中,你可以透過監控 Loss 值來評估學習進度。這個數值代表了模型預測的結果與真實答案之間的差距。當 Loss 值越小,代表模型的預測越準確,也就意味著學習效果越好。

# 使用 Trainer啟動訓練

trainer = Trainer(
    #設定參數
    model=model,
    args=training_args, # training_args 
    train_dataset=dataset,
    tokenizer=tokenizer,
)

# 啟動訓練
trainer.train()

到這裡你已經成功地啟動了模型微調。明天將檢視訓練成果,並將模型儲存起來,為後續的部署做準備,謝謝各位今天的觀看。


上一篇
【Day10】訓練的起點:準備資料集並設定訓練參數
下一篇
【Day12】訓練成果驗收-合併與儲存模型
系列文
智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言