
Llama 3 微調:從資料準備到部署的完整指南
使用 LoRA/QLoRA 微調 Meta 的 Llama 3 模型的實用指南。涵蓋模型變體選擇、資料格式化、訓練配置、評估方法,以及使用 Ollama 和 llama.cpp 進行本地部署。
Llama 3 是目前最廣泛使用的開源模型系列之一。它有出色的指令遵循能力,有多種大小可供選擇,並且可以在消費者硬體上部署——這使它成為大多數微調項目的優秀起點。
本指南涵蓋了在 Llama 3 上微調的實際步驟,從選擇正確的模型變體到在本地部署最終結果。
選擇正確的模型變體
Llama 3 有幾個版本。以下是根據使用案例選擇哪個版本:
Llama 3.1 8B
最適合: 大多數微調項目。這是甜蜜點——能力足夠強大,可以在指令遵循和任務特定行為上很好地微調,同時小到足以在消費者 GPU 上訓練並在標準硬體上推理。
微調所需資源: 帶有 16-24 GB VRAM 的單個 GPU(RTX 3090、RTX 4090)使用 QLoRA;帶 40 GB 以上 VRAM 的多個 GPU 使用全 LoRA。
推理所需資源: 4-bit 量化後的 Apple Silicon Mac(16 GB 以上)、Linux 機器配備消費者 GPU,或任何支援 Ollama 的硬體。
Llama 3.1 70B
最適合: 需要超出 8B 能力的任務——複雜推理、細微差別的寫作風格遷移、高準確率的知識任務。
微調所需資源: 多個高端 GPU 或雲端 GPU(80 GB 以上 VRAM 用於 QLoRA)。不適合本地微調——在 Ertas 等平台上使用雲端 GPU。
何時選擇 8B 而非 70B: 對於分類、提取、格式化和大多數生成任務,正確微調的 8B 模型達到可比的準確率,成本只是 70B 的一小部分。先從 8B 開始;只有在無法達到準確率目標時才升級到 70B。
資料準備
選擇聊天格式 vs 指令格式
Llama 3.1 使用特定的聊天模板格式:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
你是一個有用的助手。<|eot_id|><|start_header_id|>user<|end_header_id|>
用戶消息在這裡<|eot_id|><|start_header_id|>assistant<|end_header_id|>
助手回應在這裡<|eot_id|>
實際上: 使用 JSONL 格式,讓微調平台處理模板格式化。Ertas Studio 自動應用正確的 Llama 3 聊天模板。
你的 JSONL 訓練資料應如下所示:
{"messages": [{"role": "system", "content": "你是一個客戶支援代理。"}, {"role": "user", "content": "如何重置我的密碼?"}, {"role": "assistant", "content": "要重置你的密碼,請點擊登入頁面的「忘記密碼」,輸入你的電子郵件,然後查看重置連結。"}]}
{"messages": [{"role": "user", "content": "提取公司名稱:Apple Inc. 昨天宣布..."}, {"role": "assistant", "content": "{\"company\": \"Apple Inc.\"}"}]}
訓練資料的數量和品質
最低限度: 100 個範例用於簡單的行為更改(語氣、格式)。
推薦: 1,000-5,000 個範例用於真正的任務特定微調。超過這個數量,你通常看到的是邊際改進,除非你的任務特別複雜。
品質重要性: 100 個高品質、多樣化的範例通常優於 1,000 個重複或低品質的範例。品質 包括:
- 多樣的輸入(不僅僅是同一類型問題的變體)
- 一致的輸出風格和格式
- 正確的標記(分類任務中沒有標記錯誤)
- 覆蓋你想要在其上表現良好的邊緣案例
LoRA 配置
Llama 3.1 8B 的推薦配置:
| 參數 | 推薦值 | 備注 |
|---|---|---|
| LoRA rank | 16 | 對大多數任務合適;複雜任務使用 32 |
| Alpha | 32 | 通常設置為 rank 的 2 倍 |
| 學習率 | 2e-4 | 帶餘弦調度 |
| 批次大小 | 4 | 根據 VRAM 調整 |
| Epochs | 3 | 監控驗證損失以避免過擬合 |
| 目標模塊 | q_proj, v_proj | 添加 k_proj, o_proj 以提高容量 |
Rank 的選擇: Rank 16 是良好的起點。如果你的任務涉及複雜的推理或大量的風格遷移,嘗試 rank 32。更高的 rank 提高容量但增加過擬合的風險,並且需要更多記憶體。
訓練技巧
監控過擬合
訓練損失和驗證損失都應該下降。如果訓練損失繼續下降但驗證損失上升,你在過擬合:
- 減少 epochs
- 增加 dropout(Ertas 中的
lora_dropout: 0.1) - 在訓練集中增加資料多樣性
- 減少 rank
Ertas Studio 在訓練期間顯示兩個損失曲線——密切關注它們。
學習率敏感性
Llama 3 對學習率相對敏感。如果你看到:
- 訓練不穩定(損失激增): 降低學習率(2e-5 而非 2e-4)
- 緩慢收斂: 略微提高學習率或增加 epochs
- 輸出降解(格式崩潰): 學習率可能太高,或者訓練資料中有不一致的範例
黃金法則: 從 2e-4 開始,如果訓練不穩定則降低。
評估
定量評估
在保留評估集(不在訓練中的 10-20% 數據)上評估:
- 分類任務: 準確率、F1 分數、每個類別的精確率/召回率
- 生成任務: ROUGE 分數(與參考輸出比較),或 BERTScore 用於更細微的相似度
- 提取任務: 精確匹配率、F1 分數(允許部分匹配)
定性評估
定量指標並不能告訴你一切。手動審查 50-100 個輸出:
- 格式是否一致?
- 語氣是否正確?
- 模型是否正確處理邊緣案例?
- 有沒有幻覺模式(錯誤但聽起來合理的輸出)?
在你查看輸出樣本之前,不要相信準確率數字。高準確率有時會掩蓋系統性失敗模式。
部署
使用 Ollama
# 安裝 Ollama
brew install ollama # macOS
# 或: curl -fsSL https://ollama.ai/install.sh | sh # Linux
# 創建指向你的 GGUF 的 Modelfile
echo "FROM ./llama3-finetuned.Q5_K_M.gguf" > Modelfile
# 導入模型
ollama create my-llama3 -f Modelfile
# 運行
ollama run my-llama3
Ollama 暴露了 OpenAI 相容的 API(localhost:11434/v1),因此任何使用 OpenAI 客戶端庫的應用程式都可以無縫切換到你的本地模型。
使用 llama.cpp
對於最大控制,直接使用 llama.cpp:
# 構建 llama.cpp(Apple Silicon 上帶 Metal 支援)
cmake -B build -DLLAMA_METAL=ON
cmake --build build --config Release
# 運行你的微調模型
./build/bin/llama-cli \
-m ./llama3-finetuned.Q5_K_M.gguf \
-n 512 \
--temp 0.7 \
-p "你的提示在這裡"
llama.cpp 比 Ollama 更底層,但讓你對批次大小、線程和推理參數進行精細控制。
量化選擇
從 Ertas 匯出你的微調模型時,選擇適合你的硬體的量化:
- Q4_K_M: 8-16 GB 記憶體——最小的文件大小,對大多數任務的準確率影響很小
- Q5_K_M: 24 GB 記憶體——品質和大小之間的最佳平衡
- Q8_0: 32 GB 以上記憶體——接近全精度品質
使用 Ertas Studio 工作流程
- 將 JSONL 訓練資料上傳到 Ertas
- 選擇 Llama 3.1 8B(或 70B,如果需要)作為基礎模型
- 配置 LoRA 參數(或使用默認值)
- 開始訓練——通常 8B 模型在 1,000 個範例下需要 20-40 分鐘
- 監控訓練面板中的損失曲線
- 下載為 GGUF(你的目標量化等級)
- 用 Ollama 部署或直接用 llama.cpp
Ship AI that runs on your users' devices.
Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

Building Reliable AI Agents with Fine-Tuned Local Models: Complete Guide
Most AI agents are just GPT-4 wrappers — expensive, unreliable at scale, and dependent on cloud APIs. Fine-tuned local models hit 98%+ accuracy on your specific tools at zero per-query cost. Here's the complete architecture.
Fine-Tuning for Apple Silicon: Running Custom Models on M-Series Macs
A practical guide to deploying fine-tuned AI models on Apple Silicon Macs. Covers M4 hardware capabilities, unified memory advantages, Ollama and MLX setup, quantization choices, and Core ML LoRA adapter support.

Fine-Tuning for App Developers: A Non-ML-Engineer's Guide
A practical guide to fine-tuning AI models for mobile app developers. Learn LoRA, QLoRA, and GGUF export without needing an ML background.