目錄
一、安裝與環境配置
二、?啟動 Web 界面
三、數據準備
四、模型訓練
五、模型評估
七、模型導出
八、API服務部署
????????LLaMA-Factory 是一個開源的大語言模型(LLM)微調框架,旨在簡化大規模模型的訓練、微調和部署流程。它支持多種主流模型(如 LLaMA、Qwen、ChatGLM 等),提供命令行和可視化 WebUI 兩種交互方式,并集成了 LoRA、QLoRA 等高效微調技術,顯著降低了模型定制化的技術門檻。
一、安裝與環境配置
# 克隆倉庫
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory# 創建 Conda 環境
conda create -n llamafactory python=3.11
conda activate llamafactory# 安裝依賴(含 PyTorch 和評估工具)
pip install -e ".[all]"
# 安裝 DeepSpeed(可選)
pip install deepspeed
????????若需從 ModelScope 下載模型,可設置環境變量:
export USE_MODELSCOPE_HUB=1
(Linux)或?set USE_MODELSCOPE_HUB=1
(Windows)
二、?啟動 Web 界面
llamafactory-cli webui # 自動啟動可視化操作臺,支持參數配置與訓練啟動
三、數據準備
? ? ? ? 支持多種數據格式(JSON、CSV、TXT)轉換成訓練所需的格式(如Alpaca、ShareGPT等),需按如下格式組織:
[
? {"instruction": "問題1", "input": "輸入1", "output": "答案1"},
? {"instruction": "問題2", "output": "答案2"}
]
????????將數據轉換為訓練所需的格式:
python src/llamafactory/data/convert_data.py \--input_path data/raw.json \--output_path data/processed.json \--format alpaca
四、模型訓練
llamafactory-cli train \--model_name_or_path meta-llama/Llama-2-7b-hf \--train_file data/train.json \--output_dir ./output \--num_train_epochs 3 \--per_device_train_batch_size 4 \--gradient_accumulation_steps 8 \--learning_rate 2e-4 \--deepspeed config/ds_config.json \--fp16
五、模型評估
llamafactory-cli evaluate \--model_name_or_path ./output \--eval_file data/val.json \--per_device_eval_batch_size 8 \--predict_with_generate
六、模型推理
llamafactory-cli generate \--model_name_or_path ./output \--prompt "請解釋量子力學的基本原理。" \--max_new_tokens 256 \--temperature 0.7
七、模型導出
????????在 LLaMA-Factory 中,導出訓練后的模型可以通過 llamafactory-cli export
命令完成。支持導出為多種格式(如 GGUF 、ONNX 、Hugging Face 格式 ),以下是具體用法和示例:
????????導出為 GGUF 格式(支持量化)?
# 導出為 GGUF 格式(不量化)
llamafactory-cli export \--model_name_or_path ./output/llama-3-finetuned \--export_dir ./exported/gguf \--export_format gguf# 導出為 GGUF 格式并量化(如 q4_k_m)
llamafactory-cli export \--model_name_or_path ./output/llama-3-finetuned \--export_dir ./exported/gguf-quantized \--export_format gguf \--quantization q4_k_m
????????導出為 ONNX 格式 :
llamafactory-cli export \--model_name_or_path ./output \--export_dir ./onnx \--export_format onnx
????????導出為 Hugging Face 格式(原生格式)
llamafactory-cli export \--model_name_or_path ./output/llama-3-finetuned \--export_dir ./exported/hf-model \--export_format hf
八、API服務部署
# 啟動 OpenAI 風格 API
CUDA_VISIBLE_DEVICES=0 llamafactory-cli api examples/inference/llama3_lora_sft.yaml# 使用 VLLM 加速推理(需先合并模型)
llamafactory-cli api --model_name_or_path merged_model --infer_backend vllm
通過 http://localhost:8000/docs 訪問 API 文檔。