[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-fine-tuning-methods-sft-lora-dpo-rlhf-grpo-zh":3,"article-related-fine-tuning-methods-sft-lora-dpo-rlhf-grpo-zh":31,"series-ai-agent-5bff363a-295a-47d3-911b-411f5f45e2bb":84},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":30},"5bff363a-295a-47d3-911b-411f5f45e2bb","fine-tuning-methods-sft-lora-dpo-rlhf-grpo-zh","SFT、LoRA、DPO、RLHF、GRPO 選型指南","\u003Cp data-speakable=\"summary\">這篇教你依資料型態、硬體與目標，選出合適的 \u003Ca href=\"\u002Ftag\u002Fllm\">LLM\u003C\u002Fa> 微調方法。\u003C\u002Fp>\u003Cp>這篇給 ML 工程師、應用 AI 開發者與技術主管看，目的是把基礎模型改造成符合產品資料、語氣或推理目標的版本。照做完，你會得到一條可執行的選型路徑，知道 SFT、LoRA、QLoRA、DPO、RLHF、GRPO 與全量微調各自\u003Ca href=\"\u002Fnews\u002F2026-llm-paper-lists-better-than-feeds-zh\">適合\u003C\u002Fa>什麼資料與算力。\u003C\u002Fp>\u003Cp>你也會拿到一個簡單判斷法：先看你手上的標註，再對應訓練目標，最後挑能達到品質門檻、但成本最低的方法。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>Hugging Face 帳號，並可存取 \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Findex\" target=\"_blank\" rel=\"noopener noreferrer\">Transformers 文件\u003C\u002Fa>與 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fpeft\" target=\"_blank\" rel=\"noopener noreferrer\">PEFT GitHub repo\u003C\u002Fa>。\u003C\u002Fli>\u003Cli>Python 3.10+\u003C\u002Fli>\u003Cli>PyTorch 2.2+\u003C\u002Fli>\u003Cli>可用 CUDA 的 GPU，QLoRA 至少 16 GB VRAM，LoRA 或 SFT 較順手則建議 24 GB 以上。\u003C\u002Fli>\u003Cli>至少一份可用資料集，格式可以是 input-output pairs、preference triples，或可規則評分的 completions。\u003C\u002Fli>\u003Cli>可選但實用：Weights & Biases 帳號，用來記錄訓練曲線。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 分類你的訓練資料\u003C\u002Fh2>\u003Cp>第一步是先看你手上的標註長什麼樣，因為資料格式會直接決定方法。每個 prompt 如果只有一個正解，就走 supervised fine-tuning。若你有被選中與被拒絕的回答，就屬於 preference training。若你能用規則自動打分，就可以走 reinforcement-style optimization。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781262197359-7rgb.png\" alt=\"SFT、LoRA、DPO、RLHF、GRPO 選型指南\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>在寫任何訓練程式前，先把資料整理成以下三類之一。\u003C\u002Fp>\u003Cpre>\u003Ccode>input-output pairs         -&gt; SFT \u002F LoRA \u002F QLoRA\n(prompt, chosen, rejected) -&gt; DPO \u002F RLHF\nprompt + scoring rule      -&gt; GRPO-style RL\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到每一列資料都能被一句話標記。若你無法用一句話說清楚 row type，代表資料還沒整理好。\u003C\u002Fp>\u003Ch2>Step 2: 用 SFT 訓練標準輸出\u003C\u002Fh2>\u003Cp>當你想讓模型模仿已知好答案時，就用 supervised fine-tuning。這是產品團隊最常用的起點，特別適合穩定語氣、格式、\u003Ca href=\"\u002Fnews\u002Ftaxonomy-rwa-tokenization-blockchain-infrastructure-zh\">分類\u003C\u002Fa>標籤與領域措辭。Instruction tuning 是常見變體，資料看起來像短對話，一邊是 user，一邊是 assistant。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781262184611-uubr.png\" alt=\"SFT、LoRA、DPO、RLHF、GRPO 選型指南\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>SFT 的做法是直接用標註好的 prompt-answer pairs 更新模型，讓它在新提示上產生相似回答。若你想降低算力，通常會把 SFT 和 parameter-efficient fine-tuning 一起用，只訓練 adapter，不動整個 base model。\u003C\u002Fp>\u003Cp>你應該看到 training loss 下降，而且抽樣輸出開始更接近目標風格。快速驗收的方法，是拿 validation set 的例子去問模型，確認回答的結構與語氣一致。\u003C\u002Fp>\u003Ch2>Step 3: 用 LoRA 或 QLoRA 加上 adapter\u003C\u002Fh2>\u003Cp>當你不想更新每一個權重時，就選 LoRA。它會凍結 base model，只訓練小型低秩矩陣，去調整各層行為。當 base model 放不進 \u003Ca href=\"\u002Ftag\u002Fgpu\">GPU\u003C\u002Fa> 記憶體時，就選 QLoRA，因為它會把凍結權重壓成 4-bit，再保留可訓練的 adapter 用較高精度更新。\u003C\u002Fp>\u003Cp>可以先用這個判斷：如果你有足夠 VRAM 跑 reduced precision 的 base model，就先考慮 LoRA；如果你需要在較小 GPU 上跑較大的模型，就用 QLoRA。對 7B 模型來說，單張 16 GB 卡常常是 QLoRA 的實用路線。\u003C\u002Fp>\u003Cp>你應該看到訓練時只有 adapter weights 在變，而 base checkpoint 保持不動。若你檢查輸出檔案，應該會看到小型 adapter 檔，而不是整包模型被重寫。\u003C\u002Fp>\u003Ch2>Step 4: 用 DPO 或 RLHF 優化偏好\u003C\u002Fh2>\u003Cp>當答案沒有唯一正解，但你能判斷哪個比較好時，就用 preference training。若你\u003Ca href=\"\u002Fnews\u002Frwa-tokenization-assets-on-chain-zh\">已經\u003C\u002Fa>有 prompt、chosen、rejected 三元組，DPO 是較輕量的選項。它是單一離線訓練流程，不需要另外訓練 reward model。\u003C\u002Fp>\u003Cp>若你需要完整 alignment pipeline，而且預算也夠，RLHF 會更合適。RLHF 先用人類偏好訓練 reward model，再用 \u003Ca href=\"\u002Ftag\u002Freinforcement-learning\">reinforcement learning\u003C\u002Fa> 把 policy 往偏好的輸出推進。它成本較高，但當人類判斷很重要時，是很標準的做法。\u003C\u002Fp>\u003Cp>你應該看到模型在 held-out prompts 上更常偏好 chosen response。快速驗收的方法，是比較成對輸出，確認訓練後的偏好風格更一致。\u003C\u002Fp>\u003Ch2>Step 5: 用 GRPO 跑規則評分推理\u003C\u002Fh2>\u003Cp>當你能用規則直接替輸出打分時，就選 GRPO。這很適合數學、程式碼與精確比對任務，因為 reward 可以來自 verifier、測試套件，或正式的 scoring function。模型會一次取樣多個答案，先評分，再學習偏向高分完成。\u003C\u002Fp>\u003Cp>GRPO 的價值在於，它用可驗證的正確性取代人類偏好標註。DeepSeek-R1 就是常被提到的代表案例。\u003C\u002Fp>\u003Cp>你應該看到模型在客觀任務上的表現變好，例如測試通過率上升或最終答案更正確。若你的 scoring rule 很吵或很模糊，GRPO 會比較難穩定。\u003C\u002Fp>\u003Ch2>Step 6: 只在需要全控制時做全量微調\u003C\u002Fh2>\u003Cp>當你真的需要每個參數都能移動時，才用 full fine-tuning。它彈性最大，但也最吃 VRAM、最耗時，還需要更強的訓練、版本管理與部署能力。通常它比較像是做領域基礎模型的團隊會走的路，而不是只想客製單一助理的產品團隊。\u003C\u002Fp>\u003Cp>如果 adapter 不足以改變模型表徵，或你必須擁有完整 checkpoint 生命週期，全量微調才是正解。對多數應用來說，它是最後一站，不是第一站。\u003C\u002Fp>\u003Cp>你應該看到模型行為變化最大，但同時也會看到算力與維運複雜度一起上升。若團隊無法穩定管理完整 checkpoint，就退回 LoRA 或 QLoRA。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>基準／優化前\u003C\u002Fth>\u003Cth>結果／優化後\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>7B base model 記憶體\u003C\u002Ftd>\u003Ctd>約 14 GB bf16\u003C\u002Ftd>\u003Ctd>QLoRA 約 4 GB 4-bit NF4\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>VRAM 需求\u003C\u002Ftd>\u003Ctd>較容易的 full-base runs 需要 24 GB+\u003C\u002Ftd>\u003Ctd>16 GB 硬體可足夠跑 QLoRA\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>可訓練參數量\u003C\u002Ftd>\u003Ctd>全量微調為數十億參數\u003C\u002Ftd>\u003Ctd>LoRA adapter 在 7B 模型上通常只有數千萬參數\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>把偏好資料拿去做 SFT。修法：若資料列是 prompt、chosen、rejected，就改用 DPO 或 RLHF。\u003C\u002Fli>\u003Cli>一開始就做全量微調。修法：除非你真的需要每個權重都動，否則先用 LoRA 或 QLoRA。\u003C\u002Fli>\u003Cli>沒有穩定的評分規則就用 GRPO。修法：只在 reward 可以被客觀驗證時使用，例如測試通過或 exact match。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>選定方法後，下一步是設計資料集、切分 train 與 validation，並定義和目標一致的評估指標。接著你可以在同一任務上比較 adapter-based training、preference optimization 與 full checkpoint training，找出品質與成本最划算的組合。\u003C\u002Fp>","一篇實作指南，幫你依資料型態、硬體與目標，選出合適的 LLM 微調方法。","aiweekender.substack.com","https:\u002F\u002Faiweekender.substack.com\u002Fp\u002Fglossary-of-fine-tuning-methods-explained",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781262197359-7rgb.png","ai-agent","zh","9abeb68f-5750-43b5-baff-d454f58068f0",[17,18,19,20,21,22],"SFT","LoRA","QLoRA","DPO","RLHF","GRPO",[24,25,26],"先看資料型態，再決定微調方法，不要反過來選工具。","LoRA 與 QLoRA 是多數團隊最先該測的低成本路線。","只有在可驗證 reward 存在時，GRPO 才會穩定發揮。",0,"2026-06-12T11:02:33.190744+00:00","2026-06-12T11:02:33.175+00:00","e3b68196-9e64-4c18-a3b6-a73e73bfb367",{"tags":32,"relatedLang":43,"relatedPosts":47},[33,35,37,39,41],{"name":19,"slug":34},"qlora",{"name":18,"slug":36},"lora",{"name":21,"slug":38},"rlhf",{"name":17,"slug":40},"sft",{"name":20,"slug":42},"dpo",{"id":15,"slug":44,"title":45,"language":46},"fine-tuning-methods-sft-lora-dpo-rlhf-grpo-en","Fine-Tuning Methods: SFT, LoRA, DPO, RLHF, GRPO","en",[48,54,60,66,72,78],{"id":49,"slug":50,"title":51,"cover_image":52,"image_url":52,"created_at":53,"category":13},"9a720eb3-d88e-4ee9-bb59-7e02f0359fc7","mistral-vibe-cli-agent-still-matters-zh","Mistral Vibe 證明 CLI 代理仍然重要","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781248675431-k8cj.png","2026-06-12T07:17:21.512085+00:00",{"id":55,"slug":56,"title":57,"cover_image":58,"image_url":58,"created_at":59,"category":13},"3f5cef32-c57b-4355-80f5-09af8a117d96","kimi-code-cli-setup-pricing-workflow-guide-zh","Kimi Code CLI 安裝、定價與工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781161398225-58ea.png","2026-06-11T07:02:27.830955+00:00",{"id":61,"slug":62,"title":63,"cover_image":64,"image_url":64,"created_at":65,"category":13},"fda45923-6a5e-4f58-b8ac-e28e30fdae66","windows-agent-runtime-not-human-desktop-zh","Windows 正在變成 agent runtime，而不是人類桌面","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781147870390-3anp.png","2026-06-11T03:17:17.184885+00:00",{"id":67,"slug":68,"title":69,"cover_image":70,"image_url":70,"created_at":71,"category":13},"88039142-d59c-4ee5-b9f4-f737920c022d","grok-updates-change-how-i-code-zh","5 個 Grok 更新，把我寫 code 的方式改掉","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781126309273-wrbl.png","2026-06-10T21:17:56.434503+00:00",{"id":73,"slug":74,"title":75,"cover_image":76,"image_url":76,"created_at":77,"category":13},"254f12ec-ff29-4308-a158-3e1c2bc193e0","codex-chatgpt-work-code-assistant-zh","Codex把 ChatGPT 拉進工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781115477227-mis0.png","2026-06-10T18:17:26.326284+00:00",{"id":79,"slug":80,"title":81,"cover_image":82,"image_url":82,"created_at":83,"category":13},"ef96a410-24bd-4e35-8536-439f21f820e6","claude-code-dynamic-workflow-ai-harness-zh","Claude Code 動態工作流：AI 自寫 Harness","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781035378200-qkm9.png","2026-06-09T20:02:21.942031+00:00",[85,90,95,100,105,110,115,120,125,130],{"id":86,"slug":87,"title":88,"created_at":89},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":91,"slug":92,"title":93,"created_at":94},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":106,"slug":107,"title":108,"created_at":109},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":116,"slug":117,"title":118,"created_at":119},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":121,"slug":122,"title":123,"created_at":124},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":126,"slug":127,"title":128,"created_at":129},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":131,"slug":132,"title":133,"created_at":134},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]