書接上回
啟動llama Factory可視化頁面
llamafactory-cli webui
如果想后臺運行 使用 nohup llamafactory-cli webui &
瀏覽器訪問 http://127.0.0.1:7860/
配置項主要參數:
參考: https://docs.coreshub.cn/console/compute_platform/help/llama_factory/
模型路徑 :
解釋: 可以直接填寫本地模型路徑,也可以在選擇模型名稱之后默認
示例: /opt/vllm/models/Qwen1.5-1.8B-Chat
微調方法
full: 全參數微調,計算成本高(gpu需求大,時間長),所需數據集規模大(小數據集易過擬合)freeze: 凍結微調,凍結大部分參數,只訓練模型最后幾層(通常是輸出層或少量頂層),無法修改模型深層的特征提取邏輯,適配能力有限。適合小數據集,簡單任務; lora: 凍結所有原始參數,在模型的關鍵層(如注意力層)中插入少量可訓練的低秩矩陣(通過矩陣分解減少參數量),僅訓練這些新增的低秩矩陣參數,能夠間接調整模型的深層行為,適配能力強,適合中等數據集,追求效率與性能平衡的場景
量化等級
QLoRA: 訓練中量化
GPTQ/AWQ: 推理時量化
8-bit 量化 : 內存減少約 50%,速度提升明顯,精度損失較小。
4-bit 量化(INT4): 內存減少約 75%,速度較快,但精度損失較明顯。
量化方法
BNB、HQQ、EETQ 是三種不同的模型量化技術,用于壓縮大模型參數、降低顯存占用并提升推理效率。
微調場景:優先使用 BNB (QLoRA),兼顧顯存與精度。
快速部署:選 HQQ,尤其需 vLLM 加速時。
生產推理:需極致性能時,采用 EETQ 編譯優化。
訓練階段: Supervised Fine-Tuning
數據路徑 數據集選擇
預覽命令 下面有個輸出目錄, 這是訓練好的權重存放位置
其他的用到再說吧!
點擊預覽命令,可以看到,和上篇中的指令類似
點擊開始,他就運行了,等最后就出現訓練完成;
測試:
加載模型 測試
測試ok
最后導出
我們可以只加載新模型測試
訓練效果
看損失取線, 怎么看損失曲線, 一兩句說不清楚
損失曲線: 分為 Underfit(欠擬合) ,Overfit(過擬合),Good fit (完美擬合)
LLaMAFactory 還提供了預測評估功能
(第一次使用有幾個依賴 需要安裝一下)
指標最大值為 100
可以看到,各個指標得分都比較低,說明本次微調效果比較差,重新調參訓練吧
調整參數重新訓練:
llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /opt/vllm/models/Qwen1.5-1.8B-Chat \--preprocessing_num_workers 16 \--finetuning_type lora \--template qwen \--flash_attn auto \--dataset_dir data \--dataset identity \--cutoff_len 4096 \--learning_rate 0.0005 \--num_train_epochs 50.0 \--max_samples 1000000 \--per_device_train_batch_size 1 \--gradient_accumulation_steps 8 \--lr_scheduler_type cosine \--max_grad_norm 1.0 \--logging_steps 5 \--save_steps 100 \--warmup_steps 0 \--packing False \--enable_thinking True \--report_to none \--output_dir saves/Qwen1.5-1.8B-Chat/lora/train_2025-07-23-16-53-14 \--fp16 True \--plot_loss True \--trust_remote_code True \--ddp_timeout 180000000 \--include_num_input_tokens_seen True \--optim adamw_torch \--lora_rank 8 \--lora_alpha 16 \--lora_dropout 0 \--lora_target all
這就好很多了