4.2 如何訓練?個 LLM

?般??,訓練?個完整的 LLM 需要經過圖1中的三個階段——Pretrain、SFT 和 RLHF。

4.2.1 Pretrain

預訓練任務與架構?

  • 任務類型:采用因果語言模型(CLM),通過預測下一個 token 進行訓練,與傳統預訓練模型(如 BERT)的 MLM 任務不同,更側重生成能力。
  • 架構選擇:主流 LLM(如 GPT-3、LLaMA)采用 Decoder-Only 架構,相比傳統模型(如 BERT 的 Encoder 架構)更適合長文本生成。

參數量與數據規模對比?

  • 核心差異:LLM 參數量比傳統模型大 1-3 個數量級,訓練數據需滿足 Scaling Law(token 數約為參數的 1.7-20 倍),如 GPT-3 需 300 億 - 3.5 萬億 token。

分布式訓練框架與技術

  • 數據并行:多 GPU 同時處理不同批次數據,同步梯度更新,適用于模型參數可容納單卡的場景。

  • 模型并行:將模型分層或分模塊部署到不同 GPU,解決百億級參數的內存瓶頸(如 GPT-3 需拆分為 96 層 Decoder)。

主流的分布式訓練框架包括 Deepspeed、Megatron-LM、ColossalAI 等,其中,Deepspeed 使??最?。?

DeepSpeed:采用 ZeRO 優化顯存,分三級策略(ZeRO-1 至 ZeRO-3)逐步分?模型狀態參數,減少單卡顯存占用(如 ZeRO-3 可使單卡僅存儲 1/n 模型參數)。

ZeRO 將模型訓練階段每張卡被占?的顯存分為兩類:

  • 模型狀態(Model States),包括模型參數、模型梯度和優化器 Adam 的狀態參數。假設模型參數量為1M,?般來說,在混合精度訓練的情況下,該部分需要 16M 的空間進?存儲,其中 Adam 狀態參數會占據12M 的存儲空間。
  • 剩余狀態(Residual States),除了模型狀態之外的顯存占?,包括激活值、各種緩存和顯存碎?。

針對上述顯存占?,ZeRO 提出了三種不斷遞進的優化策略:

  • 1. ZeRO-1,對模型狀態中的 Adam 狀態參數進?分?,即每張卡只存儲 的 Adam 狀態參數,其他參數仍然保持每張卡?份。
  • 2. ZeRO-2,繼續對模型梯度進?分?,每張卡只存儲 的模型梯度和 Adam 狀態參數,僅模型參數保持每張卡?份。
  • 3. ZeRO-3,將模型參數也進?分?,每張卡只存儲 的模型梯度、模型參數和 Adam 狀態參數。

其他框架:Megatron-LM(張量并行)、ColossalAI(3D 并行),結合 CPU-offload 技術進一步釋放 GPU 內存。

預訓練數據挑戰與處理流程

主流開源數據:CommonCrawl(67%)、C4(15%)、Github(4.5%)等,LLM 常混合私有高質量數據(如學術論文、書籍)。

中文數據缺口:高質量中文開源數據集(如 SkyPile、yayi2)規模遠小于英文(如 RedPajama-1T),且閉源模型(如 ChatGLM)未公開預訓練數據。

預訓練數據處理?般包括以下流程:

  1. 文檔準備:爬取網頁后過濾 URL、提取純文本、篩選語種(如保留中文 / 英文)。
  2. 語料過濾:通過模型分類器(如 BERT 篩選高質量文本)或啟發式規則(如去除亂碼、廣告)剔除低質內容。
  3. 語料去重:基于 hash 算法或子串匹配刪除重復文檔,避免模型過擬合(如 SlimPajama-627B 通過去重實現比 RedPajama-1T 更好效果)。

4.2.2 SFT?

SFT——Supervisor Finetune,有監督微調。賦予預訓練 LLM “通用指令遵循能力”,解決其 “死板背書” 問題(僅能預測下一個 token,無法理解指令含義)。

與傳統微調的區別:傳統 PLM 需針對單一任務(如文本分類)單獨微調,而 LLM 的 SFT 通過 “指令微調” 實現跨任務泛化,例如用同一模型處理翻譯、問答、生成等多類指令。

指令數據的構建需覆蓋多任務類型(如文本生成、問答、聊天),開源 LLM 的 SFT 數據量通常在數 B token 級別,單任務需 500~1000 條樣本。

配比例子:OpenAI 的 InstructGPT 數據中,文本生成占 45.6%、開放域問答占 12.4%、聊天占 8.4%,需平衡不同任務類型的比例以提升泛化性。

數據獲取難點

  • 人工標注成本高:高質量指令 - 響應對依賴專業標注(如 ChatGPT 的成功依賴人工數據),開源數據稀缺。
  • 替代方案:通過 LLM 生成指令數據(如 Alpaca 基于 ChatGPT 生成樣本),降低標注成本但需注意數據質量。

指令數據格式通常包含三個鍵(以翻譯任務為例):

{"instruction": "將下列文本翻譯成英文","input": "今天天氣真好","output": "Today is a nice day!"
}

格式優化

  • LLaMA 格式:使用特定分隔符(如### Instruction:\n)包裹指令,確保模型識別輸入模式。
  • 多輪對話構造
    • 不合理方式:僅擬合最后一輪回復(丟失中間信息)或拆分為單輪樣本(重復計算)。
    • 合理方式:將多輪對話拼接為連續文本(如prompt1+completion1+prompt2+completion2+...),模型按順序預測每輪輸出,例如:
輸入:用戶問“你好”→模型回“您好”→用戶問“Datawhale是什么”  
輸出:模型需生成“您好”+“Datawhale是開源組織”(按CLM預測下一個token)

多輪對話不依賴預訓練,完全通過 SFT 階段的對話格式數據訓練獲得。

技術要點:利用 LLM 的自回歸特性(單向注意力),將歷史對話作為輸入上下文,模型通過預測后續 token 實現對話連貫性。例如:

  • 無多輪能力模型:每次對話獨立,不記憶歷史(如重復詢問時仍回答 “不知道”)。
  • 有多輪能力模型:結合歷史對話生成回復(如記住用戶曾介紹過 Datawhale)。

LLM 的知識儲備(如語言理解、世界知識)源于預訓練語料,SFT 僅調整其 “應用知識的方式”。

SFT 的激發作用:通過指令微調,將預訓練獲得的通用能力轉化為具體任務執行能力,例如:

  • 預訓練階段:學會 “翻譯語法規則”;
  • SFT 階段:通過指令數據學會 “按用戶要求執行翻譯任務”。

4.2.3 RLHF

RLHF,全稱是 Reinforcement Learning from Human Feedback,即?類反饋強化學習,是利?強化學習來訓練LLM 的關鍵步驟。作為 LLM 訓練的對齊階段,解決 SFT 后模型仍可能存在的價值觀偏差,使輸出符合人類安全、有用、無害的標準(如拒絕有害指令)。

與 SFT 的區別

  • SFT:讓模型學會 “遵循指令”(如翻譯、問答);
  • RLHF:讓模型學會 “按人類偏好輸出”(如拒絕回答違法問題,優先正確信息)。
RLHF 的兩階段實現流程

(1)獎勵模型(RM)訓練

  • 模型功能:擬合人類偏好,為 LLM 的回復打分,本質是文本分類模型(LLM 架構 + 分類層)。
  • 訓練數據
    • 格式:{prompt: 問題, chosen: 優質回復, rejected: 劣質回復},如:
{"prompt": "偷東西選什么時間?","chosen": "這是違法行為,不能建議","rejected": "分析夜間盜竊優勢..."
}

核心邏輯:通過對比chosenrejected的優劣,訓練 RM 最大化兩者的獎勵分數差異。

RM 規模通常小于 LLM(如 OpenAI 用 6B RM 優化 175B LLM);

避免直接使用標量獎勵(易受標注者主觀影響),采用排序對比訓練。

(2)PPO 算法優化

  • 算法框架
    • 四模型結構
      • Actor Model(待更新)、Ref Model(固定參數,防止能力退化);
      • Reward Model(打分)、Critic Model(計算累積獎勵)。
    • 訓練流程
      1. Actor 與 Ref 對同一 prompt 生成回復;
      2. 計算兩者 KL 散度(約束更新幅度);
      3. RM 對 Actor 回復打分,Critic 計算累積獎勵;
      4. 結合 KL 散度和獎勵值構建損失函數,更新 Actor 和 Critic 參數。
  • 獎勵函數

獎勵 = γ?×KL散度 + γ?×Reward Model打分 + γ?×Critic累積獎勵

(γ 為權重參數,平衡模型穩定性與偏好對齊)。

RLHF 的挑戰與替代方案
  • 資源消耗
    • 顯存占用高(如 7B 模型需 4 張 80G A100),訓練成本遠超 SFT。
  • 技術替代
    • DPO(直接偏好優化)
      • 核心思路:將 RLHF 轉化為監督學習,無需訓練 RM 和復雜強化學習流程;
      • 優勢:僅需 2 個 LLM,訓練門檻低,效果可平替 PPO(通過數學推導證明偏好學習可行性)。
RLHF 的價值與意義
  • 對齊人類價值觀:通過拒絕有害內容、糾正錯誤信息,提升 LLM 的實用性和安全性(如醫療、金融場景)。
  • 避免能力退化:Ref Model 和 KL 散度約束確保模型在對齊偏好時不丟失預訓練能力。
RLHF 與 LLM 能力的關系
  • 涌現能力的進一步激發:RLHF 不增加模型知識,而是通過偏好篩選強化 “有用能力”(如優先正確推理,而非流暢生成錯誤內容)。
  • 應用落地的關鍵一步:使 LLM 從 “技術原型” 變為 “可用工具”(如 ChatGPT 的高熱度源于 RLHF 后的用戶體驗優化)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87869.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt中的QObject::moveToThread方法詳解

一、QObject::moveToThread方法QObject::moveToThread()是Qt框架中一個非常重要的功能,它允許改變QObject及其子對象的線程關聯性。這個功能在多線程編程中特別有用,可以將耗時操作移到工作線程執行,避免阻塞主線程/GUI線程。基本用法void QO…

【9】用戶接入與認證配置

本文旨在幫助網絡管理員在 SD-WAN 環境中實現安全、穩定的用戶接入與認證策略,涵蓋本地/遠程認證、權限管理、密碼策略、SSH、會話控制等關鍵配置要素。 1.密碼策略與賬戶安全 從 IOS XE SD-WAN 17.3.1 起,Cisco 引入密碼強化功能,用于統一用戶密碼的復雜度與有效性要求。密…

第十六節:第三部分:多線程:線程安全問題、取錢問題的模擬

線程安全問題介紹:取錢的線程安全問題 取錢的線程安全問題 取錢案例需求分析 線程安全問題出現的原因 代碼:模擬線程安全問題(上述取錢案例) Account類(賬戶類) package com.itheima.day3_thread_safe;pu…

APE:大語言模型具有人類水平的提示工程能力

摘要 通過以自然語言指令作為條件輸入,大型語言模型(LLMs)展現出令人印象深刻的通用計算能力。然而,任務表現嚴重依賴于用于引導模型的提示(prompt)質量,而最有效的提示通常是由人類手工設計的…

X86 CPU 工作模式

1.概述 1.實模式 實模式又稱實地址模式,實,即真實,這個真實分為兩個方面,一個方面是運行真實的指令,對指令的動作不作區分,直接執行指令的真實功能,另一方面是發往內存的地址是真實的&#xff…

Java設計模式之行為型模式(策略模式)介紹與說明

一、策略模式簡介 策略模式(Strategy Pattern)是一種行為型設計模式,它定義了一系列算法,并將每個算法封裝起來,使它們可以相互替換,且算法的變化不會影響使用算法的客戶。策略模式讓算法獨立于使用它的客…

【BIOS+MBR 微內核手寫實現】

本文基于BIOS+MBR的架構,從四部分講解微內核是如何實現的: 1)搭建微內核編譯調試環境 2)梳理微內核的代碼結構:偽指令講解 3)手寫實現微內核框架,輸出簡單的字符串 4)講解微內核啟動階段的具體運行過程 先完成內核工程創建,如下圖 我們這里使用nasm風格的匯編編寫,…

從C/C++遷移到Go:內存管理思維轉變

一、引言 在當今高速發展的軟件開發世界中,語言遷移已成為技術進化的常態。作為一名曾經的C/C開發者,我經歷了向Go語言轉變的全過程,其中最大的認知挑戰來自內存管理模式的根本性差異。 我記得第一次接觸Go項目時的困惑:沒有析構函…

正確設置 FreeRTOS 與 STM32 的中斷優先級

在裸機開發(非 RTOS)時,大多數 STM32 外設的中斷優先級通常不需要手動配置,原因如下: ? 裸機開發中默認中斷優先級行為 特點說明默認中斷優先級為 0如果你不設置,STM32 HAL 默認設置所有外設中斷為 0&…

EasyExcel之SheetWriteHandler:解鎖Excel寫入的高階玩法

引言在 EasyExcel 強大的功能體系中,SheetWriteHandler 接口是一個關鍵的組成部分。它允許開發者在寫入 Excel 的 Sheet 時進行自定義處理,為實現各種復雜的業務需求提供了強大的支持。通過深入了解和運用 SheetWriteHandler 接口,我們能夠更…

Python單例模式魔法方法or屬性

1.單例模式概念定義:單例模式(Singleton Pattern)是一種創建型設計模式,它確保一個類只能有一個實例,并提供一個全局訪問點來獲取該實例。這種模式在需要控制資源訪問、配置管理或協調系統操作時特別有用。核心特點:私有構造函數:防止外部通過…

【Kubernetes系列】Kubernetes 資源請求(Requests)

博客目錄 引言一、資源請求的基本概念1.1 什么是資源請求1.2 請求與限制的區別 二、CPU 請求的深入解析2.1 CPU 請求的單位與含義2.2 CPU 請求的調度影響2.3 CPU 請求與限制的關系 三、內存請求的深入解析3.1 內存請求的單位與含義3.2 內存請求的調度影響3.3 內存請求的特殊性 …

大型語言模型中的自動化思維鏈提示

摘要 大型語言模型(LLMs)能夠通過生成中間推理步驟來執行復雜的推理任務。為提示演示提供這些步驟的過程被稱為思維鏈(CoT)提示。CoT提示有兩種主要范式。一種使用簡單的提示語,如“讓我們一步一步思考”,…

Private Set Generation with Discriminative Information(2211.04446v1)

1. 遇到什么問題,解決了什么遇到的問題現有差分隱私生成模型受限于高維數據分布建模的復雜性,合成樣本實用性不足。深度生成模型訓練依賴大量數據,加入隱私約束后更難優化,且不保證下游任務(如分類)的最優解…

C++編程語言入門指南

一、C語言概述 C是由丹麥計算機科學家Bjarne Stroustrup于1979年在貝爾實驗室開發的一種靜態類型、編譯式、通用型編程語言。最初被稱為"C with Classes"(帶類的C),1983年更名為C。它既具有高級語言的抽象特性,又保留了底層硬件操作能力&…

ZED相機與Foxglove集成:加速機器人視覺調試效率的實用方案

隨著機器人技術的發展,實時視覺數據流的高效傳輸和可視化成為提升系統性能的重要因素。通過ZED相機(包括ZED 2i和ZED X)與Foxglove Studio平臺的結合,開發者能夠輕松訪問高質量的2D圖像、深度圖和點云數據,從而顯著提高…

目標檢測新紀元:DETR到Mamba實戰解析

🚀【實戰分享】目標檢測的“后 DE?”時代:DETR/DINO/RT-DETR及新型骨干網絡探索(含示例代碼) 目標檢測從 YOLO、Faster R-CNN 到 Transformer 結構的 DETR,再到 DINO、RT-DETR,近兩年出現了許多新趨勢&am…

【IOS】XCode創建firstapp并運行(成為IOS開發者)

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 這篇文章主要介紹XCode創建firstapp并運行 學其所用,用其所學。——梁啟超 歡迎來到我的博客,一起學習,共同進步。 喜歡的朋友可以關注一下,下次更新不迷路…

class類和style內聯樣式的綁定 + 事件處理 + uniapp創建自定義頁面模板

目錄 一.class類的綁定 1.靜態編寫 2.動態編寫 二.style內聯樣式的綁定 三.事件處理 1.案例1 2.案例2 四.uniapp創建自定義頁面模板 1.為什么要這么做? 2.步驟 ①打開新建頁面的界面 ②在彈出的目錄下,新建模板文件 ③用HBuilderX打開該模板…

android 卡頓和丟幀區別

Android 卡頓(Jank)與丟幀(Frame Drop)的核心區別在于問題本質與用戶感知,以下是分層解析: ? 一、本質差異 維度卡頓(Jank)丟幀(Frame Drop)定義用戶可感知…