一文詳解大模型強化學習(RLHF)算法:PPO、DPO、GRPO、ORPO、KTO、GSPO

在這里插入圖片描述

一、 引言

大模型強化學習的核心目標是讓模型的輸出與人類目標、真實場景需求對齊。在工作和學習中,大模型強化學習訓練經常會遇到各種算法,各種O,在強化學習訓練選型過程中經常容易混淆,也分不清各種訓練算法的使用場景和優缺點。

本文將從“通俗原理-真實數據樣例-場景對比-實踐案例”四個維度,拆解這六種核心的強化學習算法,幫你搞懂每種算法的“核心優勢”與“適用邊界”,并結合對話、推薦、文本生成等場景,說明如何選擇合適的算法落地。

傳統強化學習中,PPO(近端策略優化)是首個在大模型訓練中落地的核心算法,但其在大規模模型(如千億參數)、復雜任務(如長鏈數學推理)中暴露了穩定性差、依賴獎勵模型等問題。為此,各個模型廠商相繼提出 DPO(直接偏好優化)、GRPO(群體相對策略優化)、ORPO(優勢比偏好優化)、KTO(卡尼曼-特沃斯基優化)和 GSPO(分組序列策略優化)等新算法:有的省去了獎勵模型的訓練,有的優化了內存占用,有的解決了混合專家(MoE)模型的訓練崩潰問題。

二、PPO:大模型強化學習的基礎算法

2.1 PPO 算法的概念與原理

PPO(近端策略優化)是一種通過策略梯度優化實現安全策略更新的強化學習算法。其核心思想可概括為:?在策略空間中劃定信任區域,通過限制參數更新幅度避免策略突變。這一特性使其尤其適合大語言模型的微調場景。

以對話模型優化為例:

? ?舊策略?:直接生成答案(如"答案是42")

? ?新策略?:嘗試分步推導(如"首先計算半徑,再代入公式…")

PPO通過概率比裁剪控制策略差異:當新策略生成分步回答的概率比舊策略高20%時,自動將更新幅度限制在安全閾值內(如ε=0.2),防止模型突然"學偏"。

2.2 PPO 的訓練方法與數據集樣例

訓練方法

PPO 的訓練就像“三步迭代優化”,每一輪都在“收集反饋-評估好壞-微調策略”:

  1. 收集樣本:讓當前模型(舊策略)和“環境”交互——對大模型來說,“環境”就是文本上下文(比如用戶的問題、歷史對話),模型生成一批響應后,記錄“輸入(狀態)-生成內容(動作)-獎勵(比如獎勵模型給的分數)”。
  2. 計算優勢值:用 GAE 給每個“動作”打分——比如模型生成“分步推導數學題”的優勢值高,說明這個動作“既當前有用,后續也能帶來好結果”;生成“模糊答案”的優勢值低,說明這個動作“短期看似能應付,長期會讓用戶不滿”。
  3. 更新策略:用“裁剪目標函數”微調模型——只保留“優勢值高且和舊策略差異小”的更新,確保模型每次只進步一點,不“跑偏”。
訓練數據集樣例

PPO 依賴“狀態-動作-獎勵”的序列數據,大模型場景中通常是“用戶輸入-模型響應-獎勵分數”的結構,其中“獎勵”由獎勵模型(如基于人類偏好訓練的模型)給出:

[{"episode_id": "ep_001",  // 一輪交互的唯一標識"steps": [               // 交互步驟(大模型場景通常單步,復雜對話多步){"state": "用戶輸入:請解釋什么是“強化學習”,用一句話說明",  // 輸入狀態(上下文)"action": "強化學習是讓智能體通過“試錯”從環境反饋中學習,不斷優化策略以獲得更多獎勵的技術",  // 模型動作(生成的響應)"reward": 0.85,  // 獎勵分數(0-1,越高表示越符合偏好)"next_state": "對話結束"  // 下一個狀態(無后續交互則為結束)}]},{"episode_id": "ep_002","steps": [{"state": "用戶輸入:用 Python 寫一個計算斐波那契數列前 10 項的代碼","action": "def fib(n):\n    a, b = 0, 1\n    res = []\n    for _ in range(n):\n        res.append(a)\n        a, b = b, a+b\n    return res\nprint(fib(10))","reward": 0.92,"next_state": "對話結束"}]}
]

2.3 PPO 的優缺點與適用場景

優缺點
優點缺點
1. 樣本效率高:不用像傳統策略梯度算法那樣每次都丟棄舊樣本,少量數據就能迭代優化;
2. 訓練易調優:對超參數(如學習率)不敏感,新手也能較快上手;
3. 通用性強:既能優化對話生成,也能適配文本摘要、代碼生成等任務。
1. 依賴獎勵模型:必須先訓一個“判斷好壞”的獎勵模型,若獎勵模型有偏差(比如誤把“冗長回答”當優質),PPO 會越訓越偏;
2. 長文本不穩定:對長鏈推理(如數學證明),因獎勵通常只給最后一個 token,中間步驟的“優勢值”計算不準,容易訓練波動;
3. 資源消耗高:需要同時維護“舊策略”和“新策略”,千億參數模型訓練時內存壓力大。
適用場景(對比其他算法)
  • 最適合:中等規模模型(如 7B-70B 參數)的“通用文本生成優化”,比如對話系統(如客服機器人)、常規文本摘要——這些場景中,獎勵模型容易訓練,且文本長度適中,PPO 的穩定性優勢能發揮。
  • 對比 DPO:PPO 需要訓獎勵模型,而 DPO 直接用偏好數據,若你沒有足夠資源訓獎勵模型,選 DPO;若你已有高質量獎勵模型,PPO 的通用性比 DPO 強。
  • 對比 GRPO:PPO 依賴價值函數(算優勢值),GRPO 不用,若你做長鏈數學推理(如 DeepSeekMath),GRPO 更適合;若你做常規對話,PPO 足夠。
  • 不適合:MoE 模型(如 Qwen3-MoE)、超大規模(千億參數以上)模型的復雜任務——這類場景容易出現訓練崩潰,需用 GSPO。

2.4 PPO 在大模型中的應用案例

  1. OpenAI GPT-3.5/4:GPT 系列基礎模型的核心優化算法就是 PPO——先通過監督微調訓出初始模型,再用人類偏好數據訓獎勵模型,最后用 PPO 讓模型“跟著獎勵模型的反饋優化”,最終實現“對話對齊人類需求”。
  2. Anthropic Claude:早期版本用 PPO 優化“安全對話”,通過獎勵模型懲罰“有害內容”(如歧視、暴力),PPO 則讓模型逐漸減少這類生成,同時保持回答的相關性。

三、DPO:不用獎勵模型的“直接對齊算法”

3.1 DPO 算法的概念與原理

DPO(直接偏好優化)是 “輕量型對齊算法”,核心思路是“跳過獎勵模型,直接用人類偏好數據訓模型”——解決了 PPO 依賴獎勵模型的痛點。

你可以把 DPO 理解為“讓模型‘看例子’學偏好”:比如人類標注員認為“回答 A(分步解釋)比回答 B(直接給答案)好”,DPO 就會讓模型“多生成像 A 這樣的內容,少生成像 B 這樣的內容”。它的核心邏輯基于“Bradley-Terry 模型”——簡單說,就是讓“人類喜歡的響應”在模型中的生成概率,比“不喜歡的響應”高,且差距越大越好。
例如:
用戶提問:“請解釋什么是椅子”
模型生成兩個響應:
??響應A?(偏好):“椅子是一種有靠背和扶手的家具,通常有四條腿,供人坐的。比如公園長椅、餐廳餐椅、辦公室辦公椅,不同材質的椅子用途也不同。”
?響應B?(非偏好):“椅子是供人坐的家具”

DPO 會優化模型參數,讓“生成 A 的概率 / 生成 B 的概率”變大——比如從原來的 1.2 倍,提升到 3 倍,這樣模型下次遇到類似問題,就更傾向于生成 A 類響應。

和 PPO 比,DPO 少了“訓獎勵模型”這一步,不僅節省了計算資源,還避免了“獎勵模型偏差”帶來的問題(比如獎勵模型誤判偏好)。

3.2 DPO 的訓練方法與數據集樣例

訓練方法

DPO 的訓練就像“兩步學偏好”,核心是“用成對數據教模型分好壞”:

  1. 收集偏好數據:讓人類標注員對模型生成的兩個響應打分——比如“更喜歡 A”“更喜歡 B”或“兩者差不多”,最終得到一批“輸入 x + 偏好響應 y + 非偏好響應 y’”的數據。
  2. 優化模型參數:構建“偏好損失函數”——讓模型生成 y 的概率比 y’ 高,同時限制模型“不要偏離原始生成能力”(比如不能為了學偏好,連基本的事實都錯了),用梯度下降最小化這個損失,完成優化。
訓練數據集樣例

DPO 依賴“成對偏好數據”,每個樣本必須包含“輸入、兩個響應、偏好標簽”,格式如下:

[{"sample_id": "dpo_001","input_x": "用戶輸入:為什么夏天白天比冬天長?",  // 原始輸入"preferred_response": "因為夏天太陽直射北半球,北半球的白晝時間變長,比如北京夏天凌晨 4 點天亮,晚上 7 點天黑,白天有 15 小時左右;而冬天太陽直射南半球,北京早上 7 點天亮,下午 5 點天黑,白天只有 10 小時左右",  // 人類喜歡的響應"dispreferred_response": "因為夏天地球離太陽近,所以白天長",  // 人類不喜歡的響應(事實錯誤)"preference_label": 1  // 1 表示更喜歡 preferred_response,0 表示更喜歡 dispreferred_response(此處固定為 1,因已明確標注)},{"sample_id": "dpo_002","input_x": "用戶輸入:推薦一本適合新手的編程入門書","preferred_response": "推薦《Python 編程:從入門到實踐》,這本書用案例驅動,比如做小游戲、數據分析項目,新手能邊學邊練,而且語法講解很通俗,不用先學復雜的計算機理論","dispreferred_response": "推薦《C++ Primer》,這是經典編程書,講得很全面",  // 不適合新手,人類不喜歡"preference_label": 1}
]

3.3 DPO 的優缺點與適用場景

優缺點
優點缺點
1. 無獎勵模型依賴:省去訓獎勵模型的步驟,計算資源消耗比 PPO 少 30%~50%;
2. 訓練穩定:不用像 PPO 那樣控制策略更新幅度,很少出現“訓練崩潰”;
3. 對齊精度高:直接用人類偏好數據,避免了“獎勵模型中轉”帶來的偏差(比如獎勵模型沒學到人類的細微偏好)。
1. 依賴高質量偏好數據:若標注數據有噪聲(比如標注員誤把差響應標為好),DPO 會學錯;
2. 復雜獎勵難適配:若任務需要“多維度評估”(如代碼生成需同時看正確性、效率、可讀性),成對偏好數據無法覆蓋所有維度,不如 PPO 的獎勵模型靈活;
3. 長文本效果弱:對長鏈推理(如數學證明),成對響應的標注成本極高,且 DPO 難以捕捉“中間步驟的偏好”,效果不如 GRPO/GSPO。
適用場景(對比其他算法)
  • 最適合:資源有限(如小團隊、中小規模模型)、需要快速對齊人類偏好的場景,比如開源模型的輕量微調(如 Llama 3-7B 的偏好對齊)、短文本對話(如客服機器人的常見問題回答)。
  • 對比 PPO:若你沒有足夠 GPU 訓獎勵模型(比如只有 1~2 張 A100),選 DPO;若你需要多維度評估(如代碼生成),PPO 的獎勵模型能整合“正確性+效率”等多指標,更適合。
  • 對比 ORPO:DPO 只需要偏好數據,ORPO 需要“監督數據+偏好數據”,若你沒有監督數據(如全新領域),選 DPO;若你有監督數據,ORPO 的“兼顧生成能力+偏好”效果更好。
  • 不適合:長文本生成(如小說續寫)、復雜推理任務(如數學公式推導)、需要多維度評估的任務——這些場景要么標注成本高,要么 DPO 難以捕捉細微偏好。

3.4 DPO 在大模型中的應用案例

  1. Llama 3:Meta 在 Llama 3 的后訓練中,用 DPO 替代了部分 PPO 的工作——通過收集 10 萬+ 英文/多語言偏好數據,用 DPO 快速對齊“對話自然度”和“事實準確性”,最終讓 Llama 3-70B 在對話任務上接近 GPT-3.5。
  2. Qwen2-7B:阿里巴巴在 Qwen2 的輕量版本中,用 DPO 優化“中文對話偏好”——針對中文用戶喜歡的“簡潔+禮貌”風格,收集了 5 萬+ 中文成對數據,用 DPO 微調后,模型的中文響應滿意度提升了 25%。

四、GRPO:不用價值函數的“長推理優化算法”

4.1 GRPO 算法的概念與原理

GRPO(群體相對策略優化)是 DeepSeek 團隊 2024 年提出的“長推理專用算法”,核心思路是“用‘群體對比’替代‘價值函數’,解決大模型長文本獎勵難計算的問題”。

先解釋一個痛點:大模型在長任務(如數學推理、代碼調試)中,通常只有“最后一步”會得到獎勵(比如“最終答案正確”給 1 分,錯誤給 0 分),中間步驟沒有獎勵——這導致 PPO 用的“價值函數”(算每個步驟的優勢值)根本訓不好,因為“中間步驟的好壞”無法判斷。

GRPO 的解決方案很直接:對同一個輸入,讓模型生成一組響應(比如 5 個),用“組內平均獎勵”當基線,判斷每個響應的好壞。比如用戶問“解方程組 2x+y=5,x-y=1”,模型生成 5 個響應:

  • 響應 1:步驟正確,答案 x=2,y=1(獎勵 1.0);
  • 響應 2:步驟有小錯,答案 x=3,y=2(獎勵 0.3);
  • 響應 3:步驟混亂,答案 x=1,y=3(獎勵 0.0);
  • 響應 4:步驟正確,答案 x=2,y=1(獎勵 1.0);
  • 響應 5:步驟部分正確,答案 x=2,y=0(獎勵 0.5)。

GRPO 會先算這組響應的平均獎勵((1.0+0.3+0.0+1.0+0.5)/5=0.56),再算每個響應的“優勢值”(響應獎勵 - 平均獎勵):比如響應 1 的優勢值是 0.44,響應 3 的優勢值是 -0.56。這樣一來,即使沒有中間步驟的獎勵,也能通過“群體對比”判斷每個響應的好壞。

另外,GRPO 還會限制模型“不要偏離初始的監督微調模型”(比如用 KL 散度正則),避免模型為了追求高獎勵而“胡編亂造”(比如數學推理步驟全錯,但答案蒙對)。

和 PPO 比,GRPO 去掉了“價值函數”,不僅節省了內存(千億參數模型訓練時內存占用減少 40%),還解決了長推理任務中“優勢值算不準”的問題。

4.2 GRPO 的訓練方法與數據集樣例

訓練方法

GRPO 的訓練就像“三步群體優化”,核心是“用組內對比找好壞”:

  1. 采樣響應組:對每個輸入 x(如數學題),讓當前模型生成一組響應(比如 5~10 個,稱為“群體”),確保響應有好有壞(比如有的答案對,有的錯)。
  2. 計算群體獎勵與優勢:用獎勵函數(如數學答案正確性評分、代碼運行成功率)給每個響應打分,再算“群體平均獎勵”,每個響應的優勢值 = 響應獎勵 - 平均獎勵(標準化后更穩定)。
  3. 更新策略:用“裁剪目標函數”微調模型——讓“優勢值高的響應”(比如正確的數學推理)在模型中的生成概率變高,同時限制模型偏離初始的監督微調模型,避免“學偏”。
訓練數據集樣例

GRPO 依賴“輸入+響應組+獎勵”的數據,每個樣本包含一個輸入和一組(通常 5~10 個)響應,格式如下:

[{"sample_id": "grpo_001","input_x": "用戶輸入:解數學題:已知一個三角形的兩邊長為 3cm 和 4cm,夾角為 90 度,求第三邊長",  // 長推理輸入(數學題)"response_group": [  // 響應組(5 個響應,有好有壞){"response": "這是直角三角形,用勾股定理:a2+b2=c2,32+42=9+16=25,所以第三邊長為 5cm","reward": 1.0  // 完全正確,獎勵滿分},{"response": "用勾股定理:3+4=7,所以第三邊長為 7cm",  // 公式用錯(沒平方)"reward": 0.2},{"response": "這是銳角三角形,第三邊長小于 7cm",  // 錯誤判斷三角形類型"reward": 0.0},{"response": "勾股定理:32+42=25,平方根是 5,所以第三邊長 5cm,單位是 cm",  // 正確,細節更全"reward": 1.0},{"response": "第三邊長為 5cm,但需要驗證是否滿足三角形三邊關系:3+4>5,3+5>4,4+5>3,滿足",  // 正確且加了驗證"reward": 1.0}],"group_stats": {  // 群體統計信息(訓練時自動計算,此處為示例)"mean_reward": 0.64,"std_reward": 0.48}}
]

4.3 GRPO 的優缺點與適用場景

優缺點
優點缺點
1. 無價值函數依賴:解決了長推理任務中“價值函數訓不好”的痛點,內存占用比 PPO 少 40%;
2. 長推理效果好:通過“群體對比”能捕捉“中間步驟的好壞”(比如數學推理的步驟正確性),比 DPO/PPO 更適合長任務;
3. 適配大規模模型:千億參數模型訓練時,因省去價值函數,能在有限 GPU 資源下運行(如 8 張 A100 可訓 DeepSeek-R1-70B)。
1. 對獎勵噪聲敏感:若獎勵函數有誤差(比如數學題判錯),“群體平均獎勵”會不準,導致優勢值計算偏差;
2. 全負樣本組問題:若一組響應全錯(比如模型生成的 5 個數學推理全錯),所有響應的優勢值接近 0,模型無法更新;
3. 計算成本高:每個輸入要生成 5~10 個響應,比 PPO(1 個響應)的計算量多 5~10 倍。
適用場景(對比其他算法)
  • 最適合:長鏈推理任務(如數學解題、代碼調試、邏輯證明)、大規模模型(70B 以上參數)的微調,比如 DeepSeekMath(數學推理模型)、CodeLlama 的代碼調試優化。
  • 對比 PPO:若你做數學推理(如解微積分題),PPO 的價值函數算不準中間步驟的優勢,GRPO 更適合;若你做短文本對話,PPO 的計算成本更低,更劃算。
  • 對比 GSPO:GRPO 解決了長推理的價值函數問題,但沒解決 MoE 模型的訓練崩潰問題;若你用 MoE 模型(如 Qwen3-MoE)做長推理,GSPO 更適合;若你用稠密模型(如 DeepSeek-R1),GRPO 足夠。
  • 不適合:資源有限的場景(如只有 1~2 張 GPU)、短文本任務(如客服常見問題)——這些場景中,GRPO 的“多響應采樣”成本太高,不如 DPO/PPO 性價比高。

4.4 GRPO 在大模型中的應用案例

  1. DeepSeek-R1-Zero:DeepSeek 團隊用 GRPO 優化“零樣本數學推理”——通過生成 8 個響應/輸入的群體數據,讓模型學會“對比不同推理路徑的好壞”,最終在 MATH 數據集(高中數學題)上的正確率提升了 18%,超過了 GPT-3.5。
  2. DeepSeekMath-70B:這是專門的數學推理模型,研究者用 GRPO 解決“步驟獎勵缺失”問題——即使只有“最終答案獎勵”,GRPO 也能通過群體對比,讓模型優化“中間推理步驟”(比如從“跳步”變成“分步推導”),步驟正確率提升了 30%。

五、ORPO:兼顧監督微調與偏好的“一體化算法”

5.1 ORPO 算法的概念與原理

ORPO(優勢比偏好優化)核心思路是“把‘監督微調’和‘偏好優化’揉成一步,既讓模型學好基礎能力,又對齊人類偏好”——解決了 DPO 只學偏好、容易丟基礎能力的問題。

傳統方法(如 PPO、DPO)通常是“先監督微調(SFT)學基礎能力,再用 RL 學偏好”,兩步分開訓,容易出現“學偏好后,基礎能力下降”(比如模型學會了禮貌對話,但連簡單的事實都答錯了)。

ORPO 的解決方案是“單步訓練,雙目標優化”:在損失函數中,同時包含“監督微調損失”(讓模型學好基礎能力,比如事實準確性)和“偏好懲罰項”(讓模型對齊人類偏好,比如對話自然度)。

舉個例子:用戶問“地球半徑是多少”,模型生成兩個響應:

  • 響應 A(監督正確,偏好差):“地球半徑約 6371 千米”(事實正確,但太簡潔,人類不喜歡);
  • 響應 B(監督正確,偏好好):“地球的平均半徑約 6371 千米,赤道半徑略長(約 6378 千米),兩極半徑略短(約 6357 千米),這個差異是地球自轉導致的”(事實正確,且詳細,人類喜歡)。

ORPO 的損失函數會做兩件事:

  1. 監督損失:確保模型生成的響應符合事實(比如不會把半徑說成 6371 米);
  2. 偏好懲罰項:讓模型生成 B 的概率比 A 高(用“優勢比”控制,比如 B 的概率 / A 的概率 > 2)。

這樣一來,模型在學偏好的同時,不會丟了基礎的事實準確性——相當于“一邊學‘說好話’,一邊不忘‘說真話’”。

和 DPO 比,ORPO 多了“監督損失”,能兼顧基礎能力;和 PPO 比,ORPO 不用訓獎勵模型,且一步完成訓練,更簡潔。

5.2 ORPO 的訓練方法與數據集樣例

訓練方法

ORPO 的訓練就像“一步雙目標學習”,核心是“同時抓基礎能力和偏好”:

  1. 準備雙數據集:一是“監督微調數據集”(輸入 x + 正確響應 y,比如事實性問答數據),二是“偏好數據集”(輸入 x + 偏好響應 y + 非偏好響應 y’,比如人類標注的成對數據)。
  2. 構建雙目標損失:損失 = 監督微調損失(讓模型生成正確響應) + λ × 偏好懲罰項(讓模型偏好響應的概率更高,λ 控制偏好的重要程度)。
  3. 單步更新模型:用梯度下降最小化這個雙目標損失,模型會在“學好事實”的同時,逐漸對齊人類偏好——不用分“監督微調”和“RL 優化”兩步。
訓練數據集樣例

ORPO 需要“監督數據”和“偏好數據”兩類數據,通常分開存儲,訓練時按比例混合使用:

1. 監督微調數據集(基礎能力訓練)
[{"sample_id": "orpo_sft_001","input_x": "用戶輸入:水的化學式是什么?","correct_response": "水的化學式是 H?O,由兩個氫原子和一個氧原子組成"  // 事實正確的響應},{"sample_id": "orpo_sft_002","input_x": "用戶輸入:《靜夜思》的作者是誰?","correct_response": "《靜夜思》的作者是唐代詩人李白,這首詩表達了詩人的思鄉之情"}
]
2. 偏好數據集(對齊偏好訓練)
[{"sample_id": "orpo_pref_001","input_x": "用戶輸入:水的化學式是什么?","preferred_response": "水的化學式是 H?O哦~簡單說就是兩個氫原子(H)和一個氧原子(O)結合在一起,我們日常喝的水、用的水都是這個成分",  // 事實正確+語氣友好(偏好)"dispreferred_response": "水的化學式是 H?O,沒什么好說的",  // 事實正確+語氣生硬(非偏好)"preference_label": 1},{"sample_id": "orpo_pref_002","input_x": "用戶輸入:《靜夜思》的作者是誰?","preferred_response": "《靜夜思》是唐代大詩人李白的代表作之一~詩里“床前明月光,疑是地上霜”這兩句特別有名,表達了他在異鄉對家鄉的思念",  // 事實正確+內容豐富(偏好)"dispreferred_response": "《靜夜思》作者是李白,唐代的",  // 事實正確+內容簡略(非偏好)"preference_label": 1}
]

5.3 ORPO 的優缺點與適用場景

優缺點
優點缺點
1. 一體化訓練:一步完成“監督微調+偏好對齊”,不用分兩步,節省訓練時間;
2. 兼顧基礎能力:有監督損失,避免了 DPO“學偏好丟事實”的問題;
3. 資源效率高:不用訓獎勵模型,計算成本比 PPO 低,比 DPO 只高 10%~20%。
1. 依賴雙數據集:必須同時有監督數據和偏好數據,若某類數據缺失(如全新領域沒有監督數據),無法使用;
2. 超參數敏感:偏好懲罰項的權重 λ 對效果影響大——λ 太小,偏好對齊差;λ 太大,基礎能力下降;
3. 復雜任務適配弱:對長推理(如數學證明),監督數據和偏好數據的標注成本極高,ORPO 難以覆蓋所有場景,效果不如 GRPO。
適用場景(對比其他算法)
  • 最適合:有監督數據、需要兼顧“事實準確性”和“偏好對齊”的場景,比如知識問答機器人(如醫療科普機器人,既要講對醫學知識,又要語氣親切)、教育類模型(如小學數學輔導,既要算對題,又要講清楚步驟)。
  • 對比 DPO:若你需要模型“既說真話,又說好話”(如醫療科普),ORPO 的監督損失能保證事實正確,更適合;若你沒有監督數據(如全新領域的對話),DPO 只需要偏好數據,更靈活。
  • 對比 PPO:ORPO 一步訓練,比 PPO 的“監督微調→訓獎勵模型→PPO 優化”三步更簡潔,若你追求訓練效率,選 ORPO;若你需要多維度獎勵(如代碼生成的“正確性+效率”),PPO 的獎勵模型更適合。
  • 不適合:無監督數據的場景、長推理任務(如數學證明)、資源極度有限的場景(如只有 1 張 GPU)——這些場景要么數據缺失,要么標注成本高,ORPO 難以發揮。

5.4 ORPO 在大模型中的應用案例

以智能助手優化為例,OPPO小布助手通過ORPO算法對DeepSeek-R1大模型進行微調,實現了意圖搜索升級與多輪對話記憶功能,使復雜問題解決能力提升170%,日均主動交互量占比達42%
。在醫療領域,ORPO被用于訓練AI診斷模型,通過對比優質與低質醫療報告數據,顯著提升診斷準確性,某三甲醫院應用后誤診率降低至0.8%,同時支持聯邦學習框架下的隱私保護部署。

六、KTO:模擬人類“怕損失”的“簡潔對齊算法”

6.1 KTO 算法的概念與原理

KTO(卡尼曼-特沃斯基優化)核心思路是“模擬人類‘怕損失’的決策習慣,用‘單響應標簽’替代‘成對偏好數據’,簡化對齊過程”——解決了 DPO/ORPO 依賴成對數據、標注成本高的問題。

KTO 的理論基礎是“前景理論”——人類對“損失”的敏感程度遠高于“收益”:比如丟 100 元的痛苦,比撿 100 元的快樂更強烈。KTO 把這個原理用到模型對齊上:

  • 對“人類喜歡的響應”(稱為“可取響應”,如正確的數學答案),模型若生成得不好,會受到“更重的懲罰”;
  • 對“人類不喜歡的響應”(稱為“不可取響應”,如錯誤的數學答案),模型若生成了,會受到“額外的懲罰”。

舉個例子:用戶問“1+1=?”,模型生成兩個響應:

  • 響應 A(可取):“1+1=2,這是基本的加法運算”(人類喜歡,標記為+1);
  • 響應 B(不可取):“1+1=3,因為兩個數相加可以大于 2”(人類不喜歡,標記為-1)。

KTO 會設置兩個懲罰系數:

  • λ_D(可取響應的懲罰系數,比如 1.2):若模型生成 A 的概率低,會用 λ_D 加大懲罰,督促模型多生成 A;
  • λ_U(不可取響應的懲罰系數,比如 1.5):若模型生成 B 的概率高,會用 λ_U 加大懲罰,督促模型少生成 B。

這樣一來,模型會像人類一樣“盡量避免生成壞響應,優先生成好響應”——而且 KTO 只用“單響應標簽”(每個響應標+1/-1),不用成對數據,標注成本比 DPO 低 50%~70%。

和 DPO 比,KTO 不用成對數據,標注更便宜;和 ORPO 比,KTO 不用監督數據,更靈活;但 KTO 對“細微偏好”(如“詳細回答”vs“簡潔回答”)的捕捉不如 DPO。

6.2 KTO 的訓練方法與數據集樣例

訓練方法

KTO 的訓練就像“兩步學‘避壞趨好’”,核心是“用單標簽教模型分‘好/壞’”:

  1. 收集單響應標簽數據:讓人類標注員對每個響應打“可取(+1)”或“不可取(-1)”標簽——比如“正確的數學答案”標+1,“錯誤的數學答案”標-1;“禮貌的對話”標+1,“無禮的對話”標-1。
  2. 構建前景理論損失:根據標簽計算損失——對+1 響應,損失隨生成概率降低而增大(用 λ_D 加權);對-1 響應,損失隨生成概率升高而增大(用 λ_U 加權),同時限制模型偏離初始預訓練模型(避免丟基礎能力)。
  3. 更新模型參數:用梯度下降最小化這個損失,模型會逐漸“多生成+1 響應,少生成-1 響應”。
訓練數據集樣例

KTO 依賴“單響應標簽數據”,每個樣本只有“輸入+響應+可取性標簽”,格式簡單,標注成本低:

[{"sample_id": "kto_001","input_x": "用戶輸入:計算 2+3×4 的結果","response": "先算乘法再算加法:3×4=12,2+12=14,結果是 14","desirability_label": 1  // 1=可取(正確+步驟清晰),-1=不可取},{"sample_id": "kto_002","input_x": "用戶輸入:計算 2+3×4 的結果","response": "2+3=5,5×4=20,結果是 20",  // 運算順序錯"desirability_label": -1},{"sample_id": "kto_003","input_x": "用戶輸入:你覺得人類會滅絕嗎?","response": "這個問題目前沒有確定答案~科學家認為,若人類能應對氣候變化、小行星撞擊等風險,長期生存的可能性很大;但如果忽視這些風險,可能會面臨危機。我們可以從現在開始保護地球,降低風險呀",  // 客觀+積極(可取)"desirability_label": 1},{"sample_id": "kto_004","input_x": "用戶輸入:你覺得人類會滅絕嗎?","response": "人類肯定會滅絕,早晚的事,現在做什么都沒用",  // 消極+絕對(不可取)"desirability_label": -1}
]

6.3 KTO 的優缺點與適用場景

優缺點
優點缺點
1. 標注成本低:只用單響應標簽,不用成對數據,標注效率比 DPO 高 2~3 倍;
2. 計算復雜度低:不用對比兩個響應的概率,損失函數計算簡單,訓練速度比 DPO 快 30%;
3. 適配不平衡數據:若可取響應少、不可取響應多(如醫療錯誤回答多),KTO 的“損失厭惡”機制能有效聚焦于“減少不可取響應”,魯棒性比 DPO 強。
1. 偏好捕捉粗:只能區分“好/壞”,無法捕捉“細微偏好”(如“詳細回答”vs“簡潔回答”),對齊精度不如 DPO;
2. 參數敏感:λ_D 和 λ_U 的設置對效果影響大——比如 λ_U 太小,模型仍會生成較多壞響應;
3. 基礎能力難兼顧:沒有監督損失,若訓練數據中可取響應的“事實準確性”不一,模型可能學偏(如把“詳細但錯誤的回答”當可取)。
適用場景(對比其他算法)
  • 最適合:標注資源有限、只需“粗粒度對齊”(好/壞區分)的場景,比如內容審核模型(區分“合規/違規”內容)、低成本開源模型微調(如用少量標注數據優化 Alpaca-7B)、不平衡數據場景(如醫療錯誤回答多,需優先減少錯誤)。
  • 對比 DPO:若你標注預算少(如只有 1 萬元標注費),KTO 的單標簽標注更便宜;若你需要精細偏好(如“對話自然度”的細微差異),DPO 的成對數據對齊精度更高。
  • 對比 ORPO:KTO 不用監督數據,若你沒有監督數據(如全新領域),KTO 更靈活;若你需要兼顧事實準確性(如知識問答),ORPO 的監督損失更適合。
  • 不適合:需要精細偏好對齊的場景(如高端對話機器人)、需要兼顧事實準確性的場景(如醫療科普)、長推理任務(如數學證明)——這些場景要么需要高精度對齊,要么需要基礎能力保障,KTO 難以滿足。

七、GSPO:解決 MoE 崩潰的“大規模訓練算法”

7.1 GSPO 算法的概念與原理

GSPO(分組序列策略優化)是阿里巴巴 Qwen 團隊 2024 年提出的“大規模模型專用算法”,核心思路是“讓‘優化單位’和‘獎勵單位’對齊——從‘逐詞優化’變成‘整段優化’,解決混合專家(MoE)模型的訓練崩潰問題”。

先解釋一個行業痛點:MoE 模型(如 Qwen3-MoE、GPT-4o)因參數多(千億甚至萬億)、專家分工不同,在傳統 RL 算法(如 PPO、GRPO)訓練中容易“崩潰”——比如某幾個專家突然“瘋狂輸出錯誤內容”,導致整個模型性能斷崖式下跌。原因是傳統算法“逐詞計算策略更新”:每個詞的生成概率變化都會影響更新,MoE 專家的微小偏差會在逐詞更新中被放大,最終導致崩潰。

GSPO 的解決方案是“整段優化”:不逐詞計算策略差異,而是計算“整個響應(整段文本)”的策略差異,讓更新幅度由“整段質量”決定,而非“單個詞的質量”。

比如用戶問“寫一個 Python 函數計算階乘”,模型生成一段響應(整段文本):

def factorial(n):if n < 0:raise ValueError("n 不能為負數")result = 1for i in range(1, n+1):result *= ireturn result

傳統算法會逐詞計算“新策略生成每個詞的概率 / 舊策略生成每個詞的概率”,再逐詞更新;而 GSPO 會計算“新策略生成這段代碼的整體概率 / 舊策略生成這段代碼的整體概率”,再根據這個“整段比率”更新模型——而且會用“長度歸一化”(比如代碼長 100 詞,就把比率開 100 次方),避免“長文本比率過大”導致的更新波動。

另外,GSPO 還會“裁剪整段比率”:若某段響應的比率超過 1+ε(如 1.2),就限制為 1.2,避免“極端比率”導致 MoE 專家偏差放大——相當于給 MoE 模型加了“全局穩定器”,從根源上解決訓練崩潰問題。

和 GRPO 比,GSPO 從“群體對比”升級到“整段優化”,更適合 MoE 模型;和 PPO 比,GSPO 解決了大規模模型的訓練穩定性問題,且訓練效率更高(因丟棄了 15% 低質量樣本,聚焦高價值更新)。

7.2 GSPO 的訓練方法與數據集樣例

訓練方法

GSPO 的訓練就像“四步大規模穩定優化”,核心是“整段評估+群體對比+穩定更新”:

  1. 生成響應組:對每個輸入 x(如復雜數學題、代碼需求),讓當前 MoE 模型生成一組響應(比如 8 個整段響應),確保覆蓋“好/中/差”不同質量。
  2. 計算整段獎勵與優勢:用多維度獎勵函數(如代碼的“運行成功率+效率+可讀性”、數學題的“步驟正確性+答案正確性”)給每個整段響應打分,再算“群體平均獎勵”,每個響應的優勢值 = 響應獎勵 - 平均獎勵(標準化后更穩定)。
  3. 計算整段比率:對每個整段響應,算“新策略生成概率 / 舊策略生成概率”,再做“長度歸一化”(開響應長度次方),得到整段比率。
  4. 裁剪與更新:對整段比率做裁剪(限制在 1-ε 到 1+ε 之間),再用“裁剪后的比率 × 優勢值”更新模型——只保留 85% 高優勢值樣本,丟棄 15% 低優勢值樣本,提升訓練效率。
訓練數據集樣例

GSPO 依賴“輸入+整段響應組+多維度獎勵”的數據,每個樣本包含一個輸入和一組整段響應,獎勵是多維度評分(更貼合復雜任務需求):

[{"sample_id": "gspo_001","input_x": "用戶輸入:寫一個 Python 函數,輸入是列表,輸出是列表中所有偶數的平方和(如輸入 [1,2,3,4],輸出 22+42=20)",  // 復雜代碼需求"response_group": [  // 整段響應組(8 個,此處簡化為 5 個){"response": "def even_square_sum(lst):\n    total = 0\n    for num in lst:\n        if num % 2 == 0:\n            total += num **2\n    return total\n# 測試:輸入 [1,2,3,4],輸出 20,正確","reward": {  // 多維度獎勵(總分 1.0)"correctness": 0.3,  // 運行正確(滿分 0.3)"efficiency": 0.25,  // 效率高(滿分 0.25)"readability": 0.25,  // 代碼易讀(滿分 0.25)"test_case": 0.2  // 帶測試用例(滿分 0.2)},"total_reward": 1.0  // 總分},{"response": "def even_square_sum(lst):\n    return sum(num** 2 for num in lst if num % 2 == 0)","reward": {"correctness": 0.3,"efficiency": 0.25,"readability": 0.2,  // 代碼簡潔但無注釋,可讀性略低"test_case": 0.0  // 無測試用例},"total_reward": 0.75},{"response": "def even_square_sum(lst):\n    total = 0\n    for num in lst:\n        if num % 2 == 1:\n            total += num **2\n    return total",  // 條件錯(取了奇數)"reward": {"correctness": 0.0,"efficiency": 0.25,"readability": 0.2,"test_case": 0.0},"total_reward": 0.45},{"response": "def even_square_sum(lst):\n    total = 0\n    for num in lst:\n        if num % 2 == 0:\n            total += num * num\n    return total\n# 測試:輸入 [2,4,6],輸出 4+16+36=56,正確","reward": {"correctness": 0.3,"efficiency": 0.25,"readability": 0.25,"test_case": 0.2},"total_reward": 1.0},{"response": "def even_square_sum(lst):\n    # 這是計算偶數平方和的函數\n    total = 0\n    for i in range(len(lst)):\n        num = lst[i]\n        if num % 2 == 0:\n            total += num **2\n    return total\n# 測試:輸入 [1,3,5],輸出 0,正確","reward": {"correctness": 0.3,"efficiency": 0.2,  // 用了索引,效率略低"readability": 0.25,"test_case": 0.2},"total_reward": 0.95}],"group_stats": {"mean_total_reward": 0.83,"std_total_reward": 0.21}}
]

7.3 GSPO 的優缺點與適用場景

優缺點
優點缺點
1. 解決 MoE 訓練崩潰:整段優化避免了逐詞更新的偏差放大,MoE 模型訓練穩定性提升 90%;
2. 訓練效率高:丟棄 15% 低價值樣本,聚焦高優勢值更新,同等計算資源下,性能提升比 GRPO 高 20%;
3. 適配復雜任務:多維度獎勵+整段評估,適合長推理(如數學證明)、復雜代碼生成等任務;
4. 簡化基礎設施:整段優化對精度容忍度高,可簡化 RL 訓練的硬件適配(如不用高精度計算)。
1. 實現復雜:整段比率計算、長度歸一化、多維度獎勵整合都需要定制化開發,比 PPO/DPO 難實現;
2. 計算資源需求高:每個輸入要生成 8~10 個整段響應,且需計算多維度獎勵,GPU 顯存占用比 GRPO 高 30%;
3. 理論基礎待完善:目前缺乏完整的收斂性證明,部分超參數(如長度歸一化的次方數)需靠實驗調整。
適用場景(對比其他算法)
  • 最適合:大規模 MoE 模型(如 Qwen3-MoE、GPT-4o)的復雜任務訓練,比如千億參數模型的數學推理(如解微積分)、工業級代碼生成(如分布式系統代碼)、長文本邏輯證明(如哲學論證)。
  • 對比 GRPO:GRPO 適合稠密模型的長推理,GSPO 適合 MoE 模型的長推理——若你用 MoE 模型,GSPO 能解決訓練崩潰問題;若你用稠密模型,GRPO 的計算成本更低。
  • 對比 PPO:PPO 適合中等規模模型的通用任務,GSPO 適合大規模 MoE 模型的復雜任務——若你訓千億參數 MoE 模型,PPO 容易崩潰,GSPO 更穩定。
  • 不適合:中小規模模型(如 7B-70B 稠密模型)、資源有限的場景(如只有 4 張以下 A100)、短文本任務(如客服常見問題)——這些場景中,GSPO 的“高計算成本”性價比太低。

7.4 GSPO 在大模型中的應用案例

  1. Qwen3 系列模型:阿里巴巴用 GSPO 訓練 Qwen3 的三個核心版本——Qwen3-Instruct(對話)、Qwen3-Coder(代碼)、Qwen3-Thinking(推理),均為 MoE 架構(千億參數)。GSPO 讓模型在訓練中未出現一次崩潰,且在 MATH 數學數據集上的正確率比 GRPO 高 22%,在 HumanEval 代碼數據集上的通過率比 GRPO 高 18%。
  2. Qwen3-30B-A3B-Base:這是 Qwen3 的中等規模 MoE 模型,GSPO 和 GRPO 比實驗——在同等計算成本下(8 張 A100,訓練 7 天),GSPO 微調后的模型在“長鏈邏輯推理”任務上的表現比 GRPO 高 25%,且訓練過程中顯存波動小于 5%,GRPO 則出現 3 次顯存溢出。

八、大模型強化學習算法比較

8.1 核心維度對比表

算法核心創新數據需求計算成本適合模型規模核心適用場景關鍵痛點
PPO裁剪機制穩更新,通用型強狀態-動作-獎勵序列(需獎勵模型)中小規模(7B-70B 稠密)通用文本生成、短對話依賴獎勵模型,長推理/ MoE 不穩定
DPO無獎勵模型,直接用成對偏好成對偏好數據(x,y,y’)中低中小規模(7B-70B 稠密)輕量偏好對齊、短對話長推理標注成本高,難捕細微偏好
GRPO群體對比代價值函數,長推理優輸入+響應組+獎勵中大規模(70B 稠密-千億稠密)長鏈推理(數學/代碼)全負樣本組問題,MoE 不穩定
ORPO單步兼顧 SFT 與偏好監督數據+偏好數據中小規模(7B-70B 稠密)知識問答、教育輔導依賴雙數據集,超參數敏感
KTO單標簽+前景理論,低成本單響應標簽數據(x,y,±1)小規模(7B-13B 稠密)內容審核、低成本微調偏好精度低,難兼顧事實
GSPO整段優化,MoE 穩定輸入+整段響應組+多維度獎勵極高大規模(千億-萬億 MoE)復雜推理、工業級代碼實現復雜,中小模型性價比低

8.2 場景選擇決策樹

  1. 第一步:看模型類型與規模

    • 若為 MoE 模型(千億以上) → 直接選 GSPO;
    • 若為 稠密模型(70B 以上) → 優先選 GRPO(長推理)或 PPO(通用);
    • 若為 稠密模型(7B-70B) → 進入第二步。
  2. 第二步:看數據資源

    • 只有單響應標簽數據 → 選 KTO;
    • 有偏好數據但無監督數據 → 選 DPO;
    • 既有偏好數據又有監督數據 → 選 ORPO;
    • 有獎勵模型(或能訓獎勵模型) → 選 PPO。
  3. 第三步:看任務類型

    • 若為 長鏈推理(數學/代碼) → 選 GRPO(稠密)或 GSPO(MoE);
    • 若為 短文本對話/通用生成 → 選 PPO/DPO/ORPO;
    • 若為 內容審核/低成本微調 → 選 KTO。
選型建議

大模型強化學習算法已從“通用型 PPO”發展到“場景專用型 GSPO”,每種算法都有其“核心優勢”與“適用邊界”:

  • 若是小團隊,做短文本對話:選 DPO/KTO,低成本快速對齊;
  • 若是中團隊,做長推理(數學/代碼):選 GRPO,平衡效果與成本;
  • 若是大團隊,做大規模 MoE 模型:選 GSPO,解決訓練崩潰,釋放千億參數潛力。

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

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

相關文章

C++ 常見面試題匯總

基礎知識 一、C 基礎語法C 和 C 的區別&#xff1f; C 支持面向對象&#xff08;封裝、繼承、多態&#xff09;。C 引入模板、STL、異常處理。值傳遞、指針傳遞、引用傳遞的區別&#xff1f; 值傳遞&#xff1a;拷貝一份副本。指針傳遞&#xff1a;傳地址&#xff0c;可修改原數…

ES06-SpringData集成

ES06-SpringData集成 文章目錄ES06-SpringData集成1-參考網址2-知識整理3-Spring Data Elasticsearch 9.0.0 完整示例4-知識補充1-Elasticsearch JAVA操作有三種客戶端:1. TransportClient&#xff08;已廢棄&#xff09;2. JestClient&#xff08;第三方 HTTP 客戶端&#xff…

對于鏈表相關經典算法題:環形鏈表的約瑟夫問題的解析

開篇介紹&#xff1a; Hello 大家&#xff0c;在上一篇博客中&#xff0c;我們一同拆解了「206. 反轉鏈表」和「876. 鏈表的中間結點」這兩道單鏈表經典題目&#xff0c;通過對指針操作的細致打磨&#xff0c;相信大家對單鏈表的特性與算法設計思路有了更深入的理解。而在今天…

MySQL集群——主從復制

目錄 一、環境搭建、部署 1. RHEL7.9、9.3的搭建 二、主從復制 1. 環境說明 2. 環境準備 1&#xff09;克隆RHEL79_mysql_master 2&#xff09;改名為 “RHEL79_mysql_slave” 并修改IP 3&#xff09;修改主機名 3. 部署MySQL主從同步 1&#xff09;主庫(mysql-master) 2&…

《用 asyncio 構建異步任務隊列:Python 并發編程的實戰與思考》

《用 asyncio 構建異步任務隊列:Python 并發編程的實戰與思考》 一、引言:并發編程的新時代 在現代軟件開發中,性能已不再是錦上添花,而是產品成功的基石。尤其在 I/O 密集型場景中,如網絡爬蟲、實時數據處理、微服務通信等,傳統的同步編程模式往往力不從心。 Python …

【Linux】yum工具篇

目錄一、軟件包管理器1.1 什么是軟件包1.2 Linux軟件生態二、yum具體操作2.1 查找軟件包2.2 安裝軟件包2.3 卸載軟件配置文件所在路徑個人主頁<—請點擊 Linux專欄<—請點擊 一、軟件包管理器 1.1 什么是軟件包 在Linux下安裝軟件, 一個通常的辦法是下載到程序的源代碼…

撬動制造全場景增效,開利空調找到了怎樣的“通關密碼”?

由深圳軟件協會指導、法大大和信息俠聯合出品的《制造行業合同數智化升級白皮書》&#xff08;以下簡稱“白皮書”&#xff09;首次提出了 “電子簽法律AI” 雙輪驅動模型。在制造行業面臨供應鏈協同、合規風控及全球化出海等多重挑戰的當下&#xff0c;法大大依托豐富的制造企…

[Android]RecycleView的item用法

RecyclerView 是 Android 提供的一個強大的列表控件&#xff0c;用來顯示大量數據。RecyclerView 的主要特點 1. 高性能的視圖復用機制 Recycle就是循環的意思&#xff0c;那么recycleview的特點也很鮮明了&#xff0c;它只會創建出在屏幕內和一定緩存的itemview,當view滑出屏幕…

AI驅動的軟件測試:革命性的自動化、缺陷檢測與實驗優化

引言在當今快節奏的軟件開發生命周期&#xff08;SDLC&#xff09;中&#xff0c;傳統測試方法已逐漸無法滿足對速度、覆蓋面和準確性的極高要求。人工智能&#xff08;AI&#xff09;和機器學習&#xff08;ML&#xff09;技術的融入&#xff0c;正在從根本上重塑軟件測試的格…

繼續優化基于樹狀數組的cuda前綴和

在之前的博客《借助樹狀數組的思想實現cuda版前綴和》中&#xff0c;我們用三個kernel實現了基于樹狀數組的cuda版前綴和&#xff0c;但是在數據量較大時速度不如傳統的reduce-then-scan方法&#xff0c;主要原因在于跨block的reduce階段沒有充分利用所有的cuda核心。在本博客中…

Qt圖片資源導入

右鍵項目&#xff0c;點擊添加新文件 選擇Qt -> Qt Resource File 資源文件起名 如&#xff1a;res 生成res.qrc文件 在項目的同級目錄下創建文件夾res&#xff0c;并將準備好的資源粘貼進去 右鍵qrc文件&#xff0c;選中Open in Editor 添加前綴 前綴是各種類型圖片的分類&…

嵌入式第四十六天(51單片機(中斷,定時器))

一.獨立按鍵設置1.#include "key.h"void init_key(void) {P1 | (0x0F << 4); }int key_pressed(void) {static int ret 0;if((P1 & (1 << 4)) 0){ret 1;}else if((P1 & (1 << 5)) 0){ret 2;}else if((P1 & (1 << 6)) 0){r…

Visual Studio Code2024安裝包及安裝教程

一、軟件下載軟件名稱&#xff1a;Visual Studio Code 2024安裝環境&#xff1a;window10及以上系統下載鏈接&#xff1a;https://pan.quark.cn/s/d9831b28c69a解壓軟件Bandizip下載鏈接&#xff1a;https://pan.quark.cn/s/a54e79b5d553二、軟件安裝1、下載后&#xff0c;先解…

fps:游戲玩法

能幫到你的話&#xff0c;就給個贊吧 &#x1f618; 文章目錄游戲玩法倒計時僵尸潮游戲成功&失敗計時玩法&#xff1a;玩家在計時內存活&#xff0c;成功&#xff1b;反之失敗Game界面&#xff1a;由關卡調用計時系統計時完成&#xff1a;調用結果界面結果界面玩家死亡&…

如何建立針對 .NET Core web 程序的線程池的長期監控

如何建立針對 .NET Core web 程序的線程池的長期監控 建立針對 .NET Core Web 應用程序線程池的長期監控是一個系統性的工程&#xff0c;它涉及代碼集成、指標收集、存儲、可視化和告警。 核心思路 線程池監控不是孤立的&#xff0c;它必須與應用程序的整體性能指標&#xff08…

前端開發學習路徑

前端開發學習路徑前端開發基礎技能HTML、CSS和JavaScript是前端開發的三大核心技術。HTML用于構建網頁結構&#xff0c;CSS負責樣式設計&#xff0c;JavaScript實現交互功能。掌握這三項技術是學習前端開發的基礎。現代前端開發通常需要了解ES6語法&#xff0c;包括箭頭函數、解…

一款沒有任何限制的免費遠程手機控制手機的軟件簡介

這是一款沒有任何限制的免費遠程手機控制手機的軟件支持安卓和蘋果1.安裝1.1被控制端安裝airdroid1.2控制端air mirror2.登錄同一個賬號3.控制使用打開控制端軟件選擇要控制的機器直接點“遠程控制“連接上后就可以任意操作被控手機了

在word中使用lateX公式的方法

非常好的問題&#xff01;這是一個許多科研人員和學生都渴望實現的功能。但需要明確的是&#xff1a; **Microsoft Word 本身并不具備“自動”將 LaTeX 代碼實時轉換為渲染后公式的功能。** 它不像 Overleaf 或 VS Code 的 Markdown 插件那樣&#xff0c;輸入 $Emc^2$ 就立刻變…

23種設計模式——代理模式(Proxy Pattern)詳解

?作者簡介&#xff1a;大家好&#xff0c;我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式&#xff0c;持續分享Java技術內容。 &#x1f34e;個人主頁&#xff1a;Meteors.的博客 &#x1f49e;當前專欄&#xff1a;設計模式 ?特色專欄&#xff1a;知識分享 &#x…

webpack scope hositing 和tree shaking

Scope Hoisting&#xff08;作用域提升&#xff09; 和 Tree Shaking&#xff08;搖樹優化&#xff09; 是現代前端構建中至關重要的概念。它們是構建工具&#xff08;如 Webpack、Rollup、Vite&#xff09;用來優化最終打包產物的核心技術。 核心概念快速理解 Tree Shaking&am…