偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從RLHF、PPO到GRPO再訓(xùn)練推理模型,這是你需要的強化學(xué)習(xí)入門指南

人工智能 新聞
本文涵蓋了你需要了解的關(guān)于 GRPO、強化學(xué)習(xí) (RL) 和獎勵函數(shù)的所有內(nèi)容 —— 從初學(xué)者到高級,還有基于 Unsloth 使用 GRPO 的基礎(chǔ)知識。

強化學(xué)習(xí)(RL)已經(jīng)成為當(dāng)今 LLM 不可或缺的技術(shù)之一。從大模型對齊到推理模型訓(xùn)練再到如今的智能體強化學(xué)習(xí)(Agentic RL),你幾乎能在當(dāng)今 AI 領(lǐng)域的每個領(lǐng)域看到強化學(xué)習(xí)的身影。

近日,Daniel Han 和 Michael Han 兩兄弟組成的團隊 Unsloth(用于微調(diào)模型的同名開源項目 GitHub 星數(shù)已超過 4 萬)發(fā)布了一個強化學(xué)習(xí)教程,其中從吃豆人談起,簡單易懂地從 RLHF、PPO 介紹到 GRPO,還分享了如何用 GRPO 訓(xùn)練推理模型的技巧。

圖片

  • 原文地址:https://docs.unsloth.ai/basics/reinforcement-learning-guide
  • 開源項目:https://github.com/unslothai/unsloth

全面了解強化學(xué)習(xí)以及如何使用 GRPO 訓(xùn)練你自己的推理模型。這是一份從初學(xué)者到高級的完整指南。

你將學(xué)到什么

  • 什么是強化學(xué)習(xí) (RL)?RLVR?PPO?GRPO?RLHF?RFT?對于強化學(xué)習(xí)來說,運氣 is All You Need?
  • 什么是環(huán)境?agent?動作?獎勵函數(shù)?獎勵?

本文涵蓋了你需要了解的關(guān)于 GRPO、強化學(xué)習(xí) (RL) 和獎勵函數(shù)的所有內(nèi)容 —— 從初學(xué)者到高級,還有基于 Unsloth 使用 GRPO 的基礎(chǔ)知識。

如果你正需要學(xué)習(xí)如何一步步實現(xiàn) GRPO,這份指南值得一讀。

什么是強化學(xué)習(xí) (RL)?

強化學(xué)習(xí)的目標(biāo)是:

  • 增加獲得「好」結(jié)果的幾率。
  • 降低出現(xiàn)「壞」結(jié)果的幾率。

就這么簡單!「好」和「壞」的含義錯綜復(fù)雜,「增加」和「降低」也許斟酌,甚至「結(jié)果」的含義也各不相同。

舉個例子,在吃豆人(Pacman)游戲中:

圖片

  • 環(huán)境就是游戲世界。
  • 動作包括向上、向左、向右和向下。
  • 如果你吃掉一塊餅干,獎勵是好的;如果你碰到敵人,獎勵是壞的。

在強化學(xué)習(xí)中,你無法知道自己可以采取的「最佳動作」,但你可以觀察中間步驟,或者最終的游戲狀態(tài)(勝或負(fù))。

再來個例子,假設(shè)你被問到這個問題:「What is 2 + 2?」 (4)

一個未對齊的語言模型會輸出 3、4、C、D、-10 等等各種亂七八糟的答案。

圖片

  • 數(shù)字總比 C 或 D 好,對吧?
  • 得到 3 總比得到 8 好,對吧?
  • 得到 4 絕對沒錯!

其實,我們剛剛就設(shè)計出了一個獎勵函數(shù)!

從 RLHF、PPO 到 GRPO 和 RLVR

OpenAI 讓 RLHF(基于人類反饋的強化學(xué)習(xí))的概念變得人盡皆知。在該方法中,我們需要訓(xùn)練一個 agent 來針對某個問題(狀態(tài))生成人類認(rèn)為更有用的輸出。

圖片

例如,ChatGPT 中的??和??符號就可以用于 RLHF 過程。

為了實現(xiàn) RLHF,PPO(近端策略優(yōu)化)被開發(fā)了出來。

圖片

在這種情況下,agent 就是語言模型。事實上,它由三個系統(tǒng)組成:

  • 生成策略(當(dāng)前被訓(xùn)練模型)
  • 參考策略(原始模型)
  • 價值模型(平均獎勵估算器)

我們使用獎勵模型來計算當(dāng)前環(huán)境的獎勵,而我們的目標(biāo)就是最大化獎勵!

PPO 的公式看起來相當(dāng)復(fù)雜,因為它的設(shè)計初衷是保持穩(wěn)定性。

圖片

PPO 公式

DeepSeek 開發(fā)了 GRPO(組相對策略優(yōu)化)來訓(xùn)練他們的推理模型。它與 PPO 的主要區(qū)別在于:

  • 移除了價值模型,取而代之的是多次調(diào)用獎勵模型的統(tǒng)計數(shù)據(jù)。
  • 移除了獎勵模型,取而代之的是自定義獎勵函數(shù),RLVR 可以使用該函數(shù)。

圖片

這意味著 GRPO 非常高效。以前 PPO 需要訓(xùn)練多個模型 —— 現(xiàn)在移除了獎勵模型和價值模型,便可以節(jié)省內(nèi)存并加快速度。

RLVR(可驗證獎勵的強化學(xué)習(xí))允許我們根據(jù)易于驗證解答的任務(wù)來獎勵模型。例如:

  • 數(shù)學(xué)等式可以輕松驗證,如 2+2 = 4。
  • 代碼輸出可以驗證是否正確執(zhí)行。
  • 設(shè)計可驗證的獎勵函數(shù)可能很困難,因此大多數(shù)示例都與數(shù)學(xué)或代碼相關(guān)。
  • GRPO 的用例不僅限于代碼或數(shù)學(xué) —— 它的推理過程可以增強電子郵件自動化、數(shù)據(jù)庫檢索、法律和醫(yī)學(xué)等任務(wù),并根據(jù)數(shù)據(jù)集和獎勵函數(shù)顯著提高準(zhǔn)確性 —— 訣竅在于定義一個規(guī)則 —— 即一系列較小的可驗證獎勵,而不是最終的單一獎勵。例如,OpenAI 也在其強化學(xué)習(xí)微調(diào) (RFT) 中用到了這一點。

為什么使用「組相對」?

GRPO 完全移除了價值模型,但我們?nèi)匀恍枰鶕?jù)當(dāng)前狀態(tài)估算「平均獎勵」。

訣竅在于對 LLM 進行采樣!然后,我們通過統(tǒng)計多個不同問題的采樣過程來計算平均獎勵。

例如,對于「What is 2 + 2?」,我們采樣 4 次。我們可能得到 4、3、D、C。然后,我們計算每個答案的獎勵,計算平均獎勵和標(biāo)準(zhǔn)差,最后用 Z 分?jǐn)?shù)進行標(biāo)準(zhǔn)化!

圖片

這就產(chǎn)生了優(yōu)勢 A,我們將用它來替代價值模型。這可以節(jié)省大量內(nèi)存!

圖片

GRPO 優(yōu)勢計算

運氣(耐心) Is All You Need

強化學(xué)習(xí)的訣竅在于你只需要兩樣?xùn)|西:

  • 一個問題或指令,例如「What is 2+2?」 「用 Python 創(chuàng)建一個 Flappy Bird 游戲」
  • 一個獎勵函數(shù)和一個驗證器,用于驗證輸出是好是壞。

僅憑這兩個,我們基本上可以無限次調(diào)用語言模型,直到得到一個好的答案。例如,對于「What is 2+2?」,一個未經(jīng)訓(xùn)練的糟糕模型語言模型可能會輸出:

0、cat、-10、1928、3、A、B、122、17、182、172、A、C、BAHS、%$、#、9、-192、12.31,然后突然變?yōu)?4。

獎勵信號為 0、0、0、0、0、0、0、0、0、0、0、0、0、0、0,然后突然變?yōu)?1。

圖片

因此,RL 憑借運氣和偶然性,在多次迭代中找到了正確答案。我們的目標(biāo)是讓好答案(4)出現(xiàn)的次數(shù)更多,其余(壞答案)出現(xiàn)的次數(shù)更少。

因此,RL 的目標(biāo)是耐心 —— 在極限情況下,只要正確答案的概率至少有一點(不為零),那么就只是一場等待的游戲 —— 你一定會在極限情況下 100% 找到正確答案。

所以我喜歡稱之為針對強化學(xué)習(xí)的「運氣 Is All You Need」。

其實,更好的說法是針對強化學(xué)習(xí)的「耐心 is All You Need」。

本質(zhì)上,強化學(xué)習(xí)提供了一種技巧 —— 與其簡單地等待無限,不如在實實在在地收到「壞信號」(即壞答案)時去「引導(dǎo)」模型嘗試不生成壞答案。這意味著,盡管你可能等待了很長時間才出現(xiàn)一個「好」答案,但模型其實已經(jīng)在盡力調(diào)整,盡量不輸出壞答案。

在「What is 2+2?」這個例子中,先出現(xiàn)了 0、cat、-10、1928、3、A、B、122、17、182、172、A、C、BAHS、%$、#、9、-192、12.31,然后突然出現(xiàn)了 4。

由于我們得到了壞答案,強化學(xué)習(xí)會影響模型,使其嘗試不輸出壞答案。這意味著隨著時間的推移,我們會仔細(xì)地「修剪」或移動模型的輸出分布,使其遠離錯誤答案。這意味著強化學(xué)習(xí)并非低效,因為我們并非只是等待無限,而是積極地嘗試「推動」模型盡可能地向「正確答案空間」靠攏。

注:如果概率始終為 0,那么強化學(xué)習(xí)就永遠不會奏效。這也是為什么人們喜歡基于已經(jīng)過指令微調(diào)的模型進行強化學(xué)習(xí)的原因,因為這樣的模型已經(jīng)可以相當(dāng)好地部分執(zhí)行指令 —— 這很可能將概率提升到 0 以上。

Unsloth 能為強化學(xué)習(xí)提供什么?

  • Unsloth 配備 15GB 顯存,支持將參數(shù)最多 17B 的任何模型(例如 Llama 3.1 (8B)、Phi-4 (14B)、Mistral (7B) 或 Qwen2.5 (7B))轉(zhuǎn)換為推理模型。
  • 最低要求:只需 5GB 顯存即可在本地訓(xùn)練你自己的推理模型(適用于任何參數(shù)不超過 1.5B 的模型)。

這里給出了一個基于 Unsloth 使用 GRPO 訓(xùn)練自己的推理模型的詳細(xì)教程,感興趣的讀者可以參考實驗:

https://docs.unsloth.ai/basics/reinforcement-learning-guide/tutorial-train-your-own-reasoning-model-with-grpo

GRPO 是如何訓(xùn)練模型的?

  1. 對于每個問答對,模型會生成多種可能的答案(比如,8 種變體)。
  2. 使用獎勵函數(shù)對每個答案進行評估。
  3. 訓(xùn)練步數(shù):如果有 300 行數(shù)據(jù),則需要 300 個訓(xùn)練步驟(如果訓(xùn)練 3 個 epoch,則需要 900 個訓(xùn)練步驟)。也可以增加每個問題生成的答案數(shù)量(例如,從 8 個增加到 16 個)。
  4. 該模型的學(xué)習(xí)方式是在每一步對權(quán)重進行更新。

這里有一些示例筆記本:

https://docs.unsloth.ai/get-started/unsloth-notebooks#grpo-reasoning-notebooks

基礎(chǔ)知識/技巧

Unsloth 還分享了一些他們積累的心得:

  • 等待至少 300 步,獎勵才會真正增加。為了獲得不錯的結(jié)果,你可能需要至少等待 12 小時(這是 GRPO 的工作原理),但請記住,這不是強制性的,你可以隨時停止。
  • 為獲得最佳效果,至少需要 500 行數(shù)據(jù)。你甚至可以嘗試 10 行數(shù)據(jù),但使用更多數(shù)據(jù)會更好。
  • 每次訓(xùn)練運行都會有所不同,具體取決于你的模型、數(shù)據(jù)、獎勵函數(shù) / 驗證器等。因此,雖然前面說最低訓(xùn)練步數(shù)是 300 步,但有時可能需要 1000 步或更多。所以,這取決于各種因素。
  • 如果你在本地使用 GRPO 和 Unsloth,如果出現(xiàn)錯誤,可以「pip install diffusers」。請使用最新版本的 vLLM。
  • 建議將 GRPO 應(yīng)用于參數(shù)至少為 1.5B 的模型,以便正確生成思考 token,因為較小的模型可能無法做到。
  • 對于 QLoRA 4-bit 的 GRPO GPU VRAM 要求,一般規(guī)則是模型參數(shù) = 你需要的 VRAM 數(shù)量(你可以使用更少的 VRAM,但還是這樣更好)。你設(shè)置的上下文長度越長,VRAM 就越多。LoRA 16-bit 至少會使用 4 倍以上的 VRAM。
  • 可以持續(xù)微調(diào),并且你可以讓 GRPO 在后臺運行。
  • 示例筆記本使用的數(shù)據(jù)集是 GSM8K,這是目前 R1 風(fēng)格訓(xùn)練最流行的選擇。
  • 如果你使用的是基礎(chǔ)模型,請確保你擁有聊天模板。
  • 使用 GRPO 訓(xùn)練的次數(shù)越多越好。GRPO 最大的優(yōu)點是你甚至不需要那么多數(shù)據(jù)。你只需要一個優(yōu)秀的獎勵函數(shù) / 驗證器,并且訓(xùn)練時間越長,你的模型就會越好。隨著時間的推移,你的獎勵與步長的比率預(yù)計會像這樣增加:

圖片


  • Unsloth 現(xiàn)已內(nèi)置了 GRPO 的訓(xùn)練損失跟蹤,無需使用 wandb 等外部工具。它現(xiàn)在包含所有獎勵函數(shù)的完整日志詳細(xì)信息,包括總聚合獎勵函數(shù)本身。

圖片

獎勵函數(shù) / 驗證器

在強化學(xué)習(xí)中,獎勵函數(shù)和驗證器在評估模型輸出方面發(fā)揮著不同的作用。一般來說,你可以將它們理解為同一件事,但從技術(shù)上講,它們并非一回事,但這無關(guān)緊要,因為它們通常是配合使用的。

驗證器(Verifier):

  • 確定生成的響應(yīng)是否正確。
  • 它不會分配數(shù)值分?jǐn)?shù) —— 只是驗證正確性。
  • 例如:如果對于「2 + 2」,模型生成為「5」,則驗證器會檢查并將其標(biāo)記為「錯誤」(因為正確答案是 4)。
  • 驗證器還可以執(zhí)行代碼(例如,使用 Python)來驗證邏輯、語法和正確性,而無需手動評估。

獎勵函數(shù)(Reward Function):

  • 將驗證結(jié)果(或其他標(biāo)準(zhǔn))轉(zhuǎn)換為數(shù)值分?jǐn)?shù)。
  • 例如:如果答案錯誤,它可能會分配罰分(-1、-2 等),而正確答案可能會獲得正得分(+1、+2)。
  • 它還可以根據(jù)正確性以外的標(biāo)準(zhǔn)進行懲罰,例如長度過長或可讀性差。

主要區(qū)別:

  • 驗證器檢查正確性,但不進行評分。
  • 獎勵函數(shù)會分配分?jǐn)?shù),但不一定驗證正確性。
  • 獎勵函數(shù)可以使用驗證器,但從技術(shù)上講,它們并不相同。

理解獎勵函數(shù)

GRPO 的主要目標(biāo)是最大化獎勵并學(xué)習(xí)答案的得出方式,而不是簡單地記憶并根據(jù)訓(xùn)練數(shù)據(jù)復(fù)現(xiàn)答案。

  • 在每個訓(xùn)練步驟中,GRPO 都會調(diào)整模型權(quán)重以最大化獎勵。此過程會逐步微調(diào)模型。
  • 常規(guī)微調(diào)(不使用 GRPO)僅最大化下一詞的預(yù)測概率,而不會針對獎勵進行優(yōu)化。GRPO 針對獎勵函數(shù)進行優(yōu)化,而不僅僅是預(yù)測下一詞。
  • 你可以在多個 epoch 中重復(fù)使用數(shù)據(jù)。
  • 你可以預(yù)定義默認(rèn)獎勵函數(shù),以用于各種用例,或者你可以讓 ChatGPT / 本地模型為你生成它們。
  • 設(shè)計獎勵函數(shù)或驗證器沒有唯一正確的方法 —— 這方面可能性無窮無盡。然而,它們必須設(shè)計精良且有意義,因為設(shè)計不當(dāng)?shù)莫剟羁赡軙o意中降低模型性能。

獎勵函數(shù)示例

參考以下示例。可以將你的生成結(jié)果輸入到 ChatGPT 4o 或 Llama 3.1 (8B) 等 LLM 中,并設(shè)計一個獎勵函數(shù)和驗證器來評估它。例如,將你的生成結(jié)果輸入到你選擇的 LLM 中,并設(shè)置一條規(guī)則:「如果答案聽起來太機械化,則扣 3 分。」這有助于根據(jù)質(zhì)量標(biāo)準(zhǔn)優(yōu)化輸出。

示例 1:簡單算術(shù)任務(wù)

  • 問題:2 + 2
  • 答案:4
  • 獎勵函數(shù) 1:如果檢測到數(shù)字 → +1;如果未檢測到數(shù)字 → -1
  • 獎勵函數(shù) 2:如果數(shù)字與正確答案匹配 → +3;如果不正確 → -3
  • 總獎勵:所有獎勵函數(shù)的總和

示例 2:電子郵件自動化任務(wù)

  • 問題:接收電子郵件
  • 答案:發(fā)送電子郵件
  • 獎勵函數(shù):
  • 如果答案包含必需關(guān)鍵詞 → +1
  • 如果答案與理想答案完全匹配 → +1
  • 如果答案過長 → -1
  • 如果包含收件人姓名 → +1
  • 如果存在簽名塊(電話、電子郵件、地址)→ +1

Unsloth 基于鄰近度的獎勵函數(shù)

在前面的 GRPO Colab 筆記本,可以看到其中創(chuàng)建了一個完全從零開始構(gòu)建的自定義基于鄰近度的獎勵函數(shù),旨在獎勵那些更接近正確答案的答案。這個靈活的函數(shù)可以應(yīng)用于各種任務(wù)。

  • 在其中的示例中,是在 Qwen3 (Base) 上啟用了推理功能,并將其引導(dǎo)至特定任務(wù)
  • 應(yīng)用預(yù)微調(diào)策略,以避免 GRPO 默認(rèn)只學(xué)習(xí)格式
  • 使用基于正則表達式的匹配提升評估準(zhǔn)確度
  • 創(chuàng)建自定義 GRPO 模板,超越諸如「think」之類的一般提示詞,例如 <start_working_out></end_working_out>
  • 應(yīng)用基于鄰近度的評分 —— 模型會因更接近的答案獲得更多獎勵(例如,預(yù)測 9 比預(yù)測 10 更好),而異常值則會受到懲罰

GSM8K 獎勵函數(shù)

在其他示例中,Unsloth 使用了 @willccbb 提供的現(xiàn)有 GSM8K 獎勵函數(shù),該函數(shù)廣受歡迎且已被證明非常有效:

  • Correctness_reward_func – 獎勵完全匹配的標(biāo)簽。
  • Int_reward_func – 鼓勵僅使用整數(shù)的答案。
  • Soft_format_reward_func – 檢查結(jié)構(gòu),但允許少量換行符不匹配。
  • strict_format_reward_func – 確保響應(yīng)結(jié)構(gòu)與提示符匹配,包括換行符。
  • xmlcount_reward_func – 確保響應(yīng)中每個 XML 標(biāo)簽恰好對應(yīng)一個。
責(zé)任編輯:張燕妮 來源: 機器之心
相關(guān)推薦

2025-05-30 04:00:00

IBMRLVRGRPO

2025-05-28 02:25:00

2023-05-25 09:00:00

人工智能ChatGPTOpenAI

2025-06-10 03:30:00

2025-04-02 09:00:00

模型開源AI

2025-04-14 09:45:00

2025-04-27 09:19:00

強化學(xué)習(xí)模型AI

2022-11-02 14:02:02

強化學(xué)習(xí)訓(xùn)練

2025-02-13 10:34:30

LLM算法PPO

2024-07-26 09:33:22

2025-03-24 09:50:00

大模型自動駕駛AI

2025-06-05 08:40:00

2025-02-17 10:40:20

2022-12-01 08:00:00

2025-05-26 09:16:00

2025-02-21 12:24:14

2025-05-07 13:46:34

AI模型數(shù)據(jù)

2025-06-11 08:54:52

2025-03-11 13:07:58

2025-03-11 01:00:00

GRPO算法模型
點贊
收藏

51CTO技術(shù)棧公眾號