久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    如何訓(xùn)練你的大型語言模型

     數(shù)據(jù)治理精英館 2025-08-18 發(fā)布于浙江

    打造一個(gè)聽起來很智能的大型語言模型 (LLM) 助手,就像在反復(fù)塑造泥塑一樣。你從一塊泥土開始,把它擠壓成一個(gè)可行的結(jié)構(gòu),然后開始精雕細(xì)琢,直到最終成品。越接近最終成品,那些精妙的點(diǎn)綴就越重要,正是這些點(diǎn)綴決定了最終成品是杰作還是恐怖谷效應(yīng)。
    在完成前面的步驟之前,你無法開始處理細(xì)節(jié)。同樣,你也不能直接把一個(gè)沒有經(jīng)過預(yù)訓(xùn)練的 LLM 架構(gòu)扔進(jìn)偏好優(yōu)化和推理中。模型需要有足夠的基礎(chǔ),才能獲得哪怕是一點(diǎn)點(diǎn)獎(jiǎng)勵(lì),從而朝著合理的良好行為方向發(fā)展。
    這種“塑造”過程仍然是一個(gè)活躍的研究領(lǐng)域,我們還沒有完全達(dá)到超級(jí)一致的尋求真理和有意圖的助手的圣杯,但我們在對(duì)這門手藝的集體理解方面已經(jīng)取得了巨大的進(jìn)步。
    Kimi和Deepseek 的論文都向世界揭示了大量有價(jià)值的信息,關(guān)于如何進(jìn)行預(yù)訓(xùn)練并添加監(jiān)督微調(diào)和強(qiáng)化學(xué)習(xí)作為層,以不斷提高 LLM 的實(shí)用性。
    作為參考,Deepseek V3 的訓(xùn)練基于14.8萬億代幣這大約相當(dāng)于1.23億部平均長度的小說的文本。為了提供一個(gè)規(guī)模感,谷歌在 2010 年估計(jì),人類總共寫了 1.29 億本書。
    一 模型訓(xùn)練技巧:大型語言模型雕塑家的工具
    為了獲得復(fù)雜的語言模型行為,例如思路鏈 (CoT) 推理和工具使用,LLM 在三個(gè)耦合循環(huán)中接受訓(xùn)練。
    1.自監(jiān)督預(yù)訓(xùn)練
    就像粘土成型后才能開始雕刻一樣,語言模型只有在擁有一個(gè)能夠運(yùn)作的人類語言模型后,才能開始實(shí)現(xiàn)復(fù)雜的推理行為。它們需要能夠從某種數(shù)據(jù)分布中生成令人信服的文本,然后才能將其文本轉(zhuǎn)化為類似聊天的交互和推理。
    第一個(gè)循環(huán)是預(yù)訓(xùn)練階段,通過對(duì)混合領(lǐng)域數(shù)據(jù)進(jìn)行大規(guī)模自監(jiān)督學(xué)習(xí),獲得原始容量和通用先驗(yàn)知識(shí)。模型會(huì)從各種來源獲取大量原始文本數(shù)據(jù):代碼、百科全書、教科書、網(wǎng)頁等等。自監(jiān)督學(xué)習(xí)的應(yīng)用方式是在文本中制造空白,并迫使模型學(xué)習(xí)如何填補(bǔ)空白并學(xué)習(xí)人類語言的趨勢。
    現(xiàn)代堆棧依賴于架構(gòu)和系統(tǒng)技巧:混合專家 (MoE)可在不降低密集計(jì)算成本的情況下提高容量,多頭潛在注意力MLA)可縮減注意力內(nèi)存,FP8/MuonClip可實(shí)現(xiàn)穩(wěn)定的高吞吐量數(shù)值計(jì)算,有時(shí)還會(huì)使用多標(biāo)記預(yù)測 (MTP)來提高目標(biāo)函數(shù)的密度并實(shí)現(xiàn)更快的推測解碼。可以將其視為大規(guī)模地教授模型“語言的工作原理”,同時(shí)對(duì)訓(xùn)練過程進(jìn)行設(shè)計(jì),使其不會(huì)耗盡 GPU 或?qū)е聯(lián)p失曲線爆炸。
    2.訓(xùn)練后微調(diào)
    第二個(gè)循環(huán)是訓(xùn)練后,它賦予基礎(chǔ)模型可操控性和風(fēng)格。團(tuán)隊(duì)通常從對(duì)指令、JSON 格式和工具調(diào)用軌跡進(jìn)行監(jiān)督微調(diào) (SFT)開始,以教會(huì)模型如何按照指令與用戶交互。如果沒有微調(diào),LLM 就只能無限地補(bǔ)充文本并從訓(xùn)練堆中重復(fù)使用 token。我們需要通過合成一個(gè)類似腳本的聊天交互數(shù)據(jù)集,將這個(gè)流引導(dǎo)到與用戶更簡潔的交互中,該數(shù)據(jù)集將用于引導(dǎo)模型的 token 生成趨向于“指令”格式。這就是所謂的指令微調(diào)
    當(dāng)模型能夠以類似聊天的方式進(jìn)行響應(yīng)后,我們就可以應(yīng)用更精細(xì)的強(qiáng)化學(xué)習(xí) (RL) 技術(shù),例如直接偏好優(yōu)化 (Direct Preference Optimization)群體相對(duì)策略優(yōu)化 (GRPO),來塑造語氣、安全性以及對(duì)模式的遵循。這正是流程中對(duì)齊部分發(fā)揮作用的地方,我們開始塑造模型,以創(chuàng)建人類認(rèn)為有用的輸出。
    最后,我們可以應(yīng)用特定的行為強(qiáng)化學(xué)習(xí)技術(shù)。其中一種技術(shù)是針對(duì)數(shù)學(xué)/代碼/格式的可驗(yàn)證獎(jiǎng)勵(lì)強(qiáng)化學(xué)習(xí),其中自動(dòng)評(píng)分器會(huì)為正確答案的模型提供明確的獎(jiǎng)勵(lì)。另一種是以思維鏈 (CoT)推理為中心的強(qiáng)化學(xué)習(xí)(o1/R1 風(fēng)格),它推動(dòng)文本中類似人類的思維模式和自我反思,通過更長的生成時(shí)間和測試時(shí)間計(jì)算來增強(qiáng)問題解決能力。
    工具使用培訓(xùn)
    就像思維行為通過強(qiáng)化學(xué)習(xí)引導(dǎo)灌輸?shù)侥P椭幸粯樱ぞ呤褂檬橇硪环N生成模式,在模型調(diào)整時(shí)會(huì)更自然地出現(xiàn)
    為了讓 LLM 生成正確的輸出以使用系統(tǒng)集成,我們參與了代理/工具循環(huán),讓模型學(xué)習(xí)如何在現(xiàn)實(shí)世界中執(zhí)行操作。在這里,實(shí)驗(yàn)室擴(kuò)展高覆蓋率的工具調(diào)用軌跡并強(qiáng)制執(zhí)行嚴(yán)格的模式,然后在沙盒環(huán)境(瀏覽器、終端、代碼庫)中進(jìn)行訓(xùn)練,以縮小“知”與“行”之間的差距。少量的聯(lián)合強(qiáng)化學(xué)習(xí)可以提高工具成功率并減少延遲,但大部分可靠性仍然來自于良好的軌跡和規(guī)范的模式。
    最近有報(bào)道稱,OpenAI o3 類推理模型已成功利用工具調(diào)用訓(xùn)練循環(huán)與推理微調(diào)相結(jié)合,使模型能夠自發(fā)地使用工具間歇性地生成推理文本。
    來自開源領(lǐng)域的兩個(gè)具體錨點(diǎn)可以讓我們深入了解這一過程。DeepSeek -V3使用671B 參數(shù)的 MoE,每個(gè) token約有37B 活躍數(shù)據(jù),在14.8T 的 token上進(jìn)行預(yù)訓(xùn)練,并在FP8MTP中進(jìn)行分層,以穩(wěn)定訓(xùn)練并加速推理。Kimi K2 的MoE可擴(kuò)展到約 1.04T 參數(shù),每個(gè) token約有32B 活躍數(shù)據(jù),在15.5T 的 token上進(jìn)行預(yù)訓(xùn)練,并依賴MuonClip來避免萬億參數(shù)規(guī)模的損失峰值。然后,它通過大規(guī)模工具使用綜合和聯(lián)合強(qiáng)化學(xué)習(xí),大量依賴于代理/工具循環(huán)。
    在實(shí)踐中:預(yù)訓(xùn)練創(chuàng)建一個(gè)對(duì)語言有一致理解的模型,后訓(xùn)練灌輸行為屬性,使模型能夠在聊天中使用工具、推理和角色扮演。
    3.微調(diào)與提示
    當(dāng)我們能夠?yàn)橹噶钫{(diào)整模型提供完整的指令集并讓它遵循提示指令時(shí),為什么我們還要進(jìn)行微調(diào)?
    原因在于指令微調(diào)的程度有限。提示中的潛在指令空間巨大,模型需要平衡先前關(guān)于工具調(diào)用的指令與來自新數(shù)據(jù)源的后續(xù)信息。很快,上下文就會(huì)變得極其混亂,注意力也會(huì)變得緊張。
    如果不學(xué)習(xí)如何以正確的方式理解所有信息,以及在正確的時(shí)間關(guān)注哪些信息,指令調(diào)優(yōu)模型在代理工具使用場景中很快就會(huì)崩潰。雖然可以繞過非工具調(diào)用模型的局限性,但通常來說,插入一個(gè)因成功駕馭指令遵循、推理和工具使用的復(fù)雜空間而獲得獎(jiǎng)勵(lì)的模型會(huì)更有效。
    二 塑造之手:數(shù)據(jù)是什么樣的
    LLM 訓(xùn)練過程中最關(guān)鍵的部分當(dāng)然是數(shù)據(jù)。獲取足夠的數(shù)據(jù)來建模語言,存儲(chǔ)數(shù)據(jù)、引用和注釋數(shù)據(jù),并將其按固定長度的序列分塊輸入到模型中,這背后有一個(gè)復(fù)雜的過程。
    從生物信息學(xué)來看,我發(fā)現(xiàn)這個(gè)過程與DNA測序在機(jī)制上存在相似之處。為了使DNA達(dá)到可讀取的程度,需要經(jīng)過一個(gè)漫長而敏感的預(yù)處理流程。而一旦將解決方案放入測序儀中,測序儀對(duì)序列的長度和質(zhì)量會(huì)有特定的要求,才能真正讀取數(shù)據(jù)。
    對(duì)于 LLM 來說,情況有些類似。為了提高效率,我們需要能夠?qū)⒄麄€(gè)文本語料庫分塊,并在訓(xùn)練期間將質(zhì)量控制的、帶注釋的固定長度輸入到模型中,以便我們能夠大規(guī)模地進(jìn)行高效的并行處理。
    端到端數(shù)據(jù)處理路徑從“原始源”中發(fā)現(xiàn)的各種格式的數(shù)據(jù)一直到可以作為令牌 ID 整齊地加載到 Python DataLoader 中的固定長度序列。
    下面重點(diǎn)介紹在進(jìn)行預(yù)訓(xùn)練之前所需的一些關(guān)鍵數(shù)據(jù)處理階段:
    數(shù)據(jù)來源:編寫爬蟲程序、購買許可證、訪問公共文本數(shù)據(jù)轉(zhuǎn)儲(chǔ)。數(shù)據(jù)并非來自單一語料庫,而是可能分散在許多不同的地方。數(shù)據(jù)需要以快照的形式及時(shí)捕獲,一旦預(yù)訓(xùn)練開始,模型就只能通過使用工具和上下文工程來訪問新信息。
    提取、規(guī)范化和質(zhì)量保證:文本需要以盡可能高質(zhì)量的格式清晰地提取。這就像一個(gè)過濾器,可以防止“垃圾進(jìn),垃圾出”。通常,會(huì)有各種自動(dòng)化算法從 PDF、HTML 網(wǎng)站、GitHub 代碼和其他來源中提取文本,并確保文本主體不受噪音污染。完全無噪音是不可能的,但絕大多數(shù)數(shù)據(jù)應(yīng)該是合乎邏輯且合理的,這樣模型才能在自監(jiān)督學(xué)習(xí)下達(dá)到收斂(“穩(wěn)定訓(xùn)練”)。
    注釋和結(jié)構(gòu)化:使用自動(dòng)化算法遍歷、注釋和存儲(chǔ)已清理的文本樣本。這通常涉及添加段落框架、文檔長度、Schema 注釋(Markdown、JavaScript、純文本、HTML)以及其他有用的標(biāo)簽等信息,這些信息可在訓(xùn)練期間使用,并為訓(xùn)練團(tuán)隊(duì)提供寶貴的統(tǒng)計(jì)摘要,用于故障排除。
    分塊、分片和填充:文本內(nèi)容隨后被“切分”成塊,并使用特殊標(biāo)記來指示文檔結(jié)束、文件結(jié)束以及其他注釋信息,再將其標(biāo)記為數(shù)字 ID,并進(jìn)行填充以確保每個(gè)序列的長度相同。一旦獲得等長序列,就可以更輕松地將它們排列成組,并一次性將多個(gè)序列輸入模型訓(xùn)練循環(huán),從而實(shí)現(xiàn)大規(guī)模并行訓(xùn)練。
    示例文檔架構(gòu):

      "doc_id" : "01J2Y2G2F6X9S7J3SYZ3QW6W0N" ,           // ULID/UUID 

      "source" : { 

        "type" : "web|book|paper|code|forum|wiki|synthetic" , 

        "url" : "https:///post" ,             // 用于 web 

        "repo" : "github.com/org/repo" ,                 // 用于代碼

        "commit" : "0f3c1a..." ,                         // 用于代碼

        "path" : "src/utils/math.py" ,                    // 用于代碼

      }, 

      "title" : "FFT 簡介" , 

      "lang" : "en" ,                                    // ISO 639-1 

      "script" : "Latn" ,                                // ISO 15924 

      "license" : "CC-BY-4.0" ,                          // SPDX id 或策略 bucket 

      “created_at”:“2023-04-12T09:21:37Z”,

      “collected_at”:“2025-07-25T14:03:11Z”,


      “content”:“帶有段落的純文本正文... \ n \ n ##部分\ n文本繼續(xù)......”,

      “structure”:{ 

        “format”:“markdown | plaintext | html | latex | rst”,

        “segments”:[ 

          { “start_char”:0,“end_char”:128,“type”:“paragraph” },

          { “start_char”:129,“end_char”:180,“type”:“heading”,“l(fā)evel”:2 },

          { “start_char”:181,“end_char”:420,“類型”:“代碼”,“l(fā)ang_hint”:“python” } 

        ] 

      },


      “元數(shù)據(jù)”:{ 

        “域”:“”,

        “主題”:[ “signal_processing”,“數(shù)學(xué)” ],

        “閱讀水平”:11.2,

        “l(fā)ength_chars”:4231, 

        "length_tokens_est" : 950
       }, 


      "quality" : { 

        "ppl_small_lm" : 28.7 ,                          // 困惑度濾波器信號(hào)

        "toxicity" : 0.004 ,                             // [0,1] 

        "pii" : { "email" : 1 , "phone" : 0 , "ssn" : 0 },          // 計(jì)數(shù)

        "watermark_prob" : 0.01                         // LLM 編寫的檢測器

      }, 


      "dedup" : { 

        "raw_sha1" : "0e5b4...8f" , 

        "text_sha1" : "a1c2d...9a" , 

        "simhash" : "9b7a3f12" , 

        "minhash" : [ 121 , 9981 , 733 , 4211 , 5901 ]        // 5× 64 位或更高

      }, 


      "policy_flags" : { 

        "nsfw" : false , 

        "copyright_sensitive" : false , 

        "allowed_for_training" : true

       }, 


      "eval_overlap" : { 

        "mmlu" : 0.0 , "gsm8k" : 0.0 , "humaneval" : 0.0    // n-gram/regex 凈化

      }, 


      "split" : "train|val|test"

     }
    打包和填充模式示例:

      “sample_id” : “01J2Y3AZ7X12P5 ...” ,

      “seq_len” : 8192 ,

      “tokenizer” :“  sentencepiece_v5_en_32k” ,

      “input_ids” : [ 1017,42,1337 , “...” ] ,“ labels_n1 ” :[ 42,1337,9001 ,“...” ] ,//下一個(gè) 標(biāo)記標(biāo)簽“l(fā)abels_mtp” :{ //對(duì)于MTP是可選的“ depth” :2 ,“ n2 ” :[ 1337,9001,7 ,“...” ] //第二個(gè)下一個(gè)標(biāo)記標(biāo)簽} ,“attn_mask” :“ ...” ,“position_ids” :“ ...” ,“doc_spans” :[ { “doc_id” :“01J ... W0N” ,“start_tok” :0 ,“end_tok” :2500 } ,{ “separator” :“<eod>” } ,{ “doc_id” :“01J ... 9KX” ,“start_tok” :100 ,“ end_tok” :5600 } ,{ “ separator” :“ <eod>” } ,{ “doc_id ” : “ 01J ... 2Q3” ,“start_tok” :0 ,“end_tok” :92 } ] ,“tags” :[ “web” ,“math” ,“code_block_present” ] ,“mix_weight” :0.85 ,//由采樣器使用“l(fā)ong_context_bucket” :0 //例如,0:8k、1:32k、2:128k } 

    三 預(yù)備訓(xùn)練:塑造粘土
    我們將研究Deepseek和Kimi通過公開預(yù)印本分享的兩個(gè)預(yù)訓(xùn)練案例研究。
    DeepSeek-V3
    DeepSeek V3 是一個(gè)包含6710 億個(gè)參數(shù)的MoE模型,每個(gè) token約有 370 億個(gè)活躍參數(shù)。它使用MLA注意力機(jī)制來壓縮鍵值對(duì) (KV) 并優(yōu)化內(nèi)存/延遲,并實(shí)現(xiàn)了無輔助損失負(fù)載平衡,以及經(jīng)過超大規(guī)模驗(yàn)證的FP8混合精度。
    它基于14.8 萬億個(gè)標(biāo)記進(jìn)行訓(xùn)練;工程協(xié)同設(shè)計(jì)在預(yù)訓(xùn)練、上下文擴(kuò)展和后訓(xùn)練方面帶來總端到端成本 ≈ 2.788M H800-GPU 小時(shí)。
    KimiK2
    Kimi K2 是一個(gè)擁有1.04 萬億個(gè)參數(shù)的MoE ,每個(gè) token約有 320 億個(gè)活躍參數(shù)。它還利用MLA作為更節(jié)省內(nèi)存的注意力機(jī)制,擁有384 位專家,每個(gè) token 選取 8 位專家。它支持128K token的上下文窗口。
    Kimi K2 模型使用MuonClip(Muon + QK-Clip )對(duì)15.5 萬億個(gè) token進(jìn)行了預(yù)訓(xùn)練,以消除萬億參數(shù) MoE 規(guī)模下的損失尖峰。該模型強(qiáng)調(diào) token 效率是首要的擴(kuò)展系數(shù)。
    與 Deepseek V3 不同,該模型的后期訓(xùn)練具有明確的代理性:大規(guī)模工具使用合成以及針對(duì)真實(shí)和模擬環(huán)境的聯(lián)合 RL 。
    四 情境擴(kuò)展:管理感官超負(fù)荷
    你可能閱讀過關(guān)于如何在 DeepSeek V3 架構(gòu)的注意力機(jī)制中使用旋轉(zhuǎn)位置編碼 (RoPE) 來傳遞關(guān)于 token 位置的相對(duì)信息的文章。這些位置編碼是模型區(qū)分輸入文本不同部分相同 token 能力的重要組成部分。
    暴露相對(duì)距離的訓(xùn)練機(jī)制的存在也意味著,如果輸入文本的長度發(fā)生變化,那么模型將不再能夠可靠地關(guān)注超出其最大訓(xùn)練注意力的文本。
    這個(gè)問題在訓(xùn)練過程中通過上下文擴(kuò)展的過程來處理,它可以被認(rèn)為是一種“訓(xùn)練課程”,其中模型從簡單開始,最初學(xué)習(xí) 8,000 個(gè)標(biāo)記的短序列,然后重新校準(zhǔn)以逐步處理 16,000 個(gè)標(biāo)記、32,000 個(gè)標(biāo)記等更大的塊。
    前沿模型通常通過分階段的訓(xùn)練課程(從短到長)擴(kuò)展到128K或更長,并進(jìn)行位置/注意力調(diào)整和“針狀”壓力測試,以避免在長序列中出現(xiàn)回歸。DeepSeek V3 技術(shù)論文報(bào)告了從 8K 到 32K 再到 128K 的兩階段擴(kuò)展。
    然而,Kimi K2 卻是一個(gè)反例:截至 2025 年 7 月,Kimi K2 技術(shù)論文導(dǎo)出了 12.8 萬億個(gè)開箱即用的數(shù)據(jù),這些數(shù)據(jù)使用 MLA、長序列 RoPE 和 MuonClip 管理著萬億參數(shù)規(guī)模的訓(xùn)練。這是一個(gè)在一年時(shí)間內(nèi)實(shí)現(xiàn)訓(xùn)練創(chuàng)新的案例,它有可能取代之前長上下文預(yù)訓(xùn)練的前沿范式。
    五 訓(xùn)練后:雕琢細(xì)節(jié)
    在“后訓(xùn)練”階段,模型的行為得以形成。在后訓(xùn)練之前,模型只是一個(gè)文本補(bǔ)全工具,可以對(duì)文本進(jìn)行自回歸并預(yù)測下一個(gè)標(biāo)記。在后訓(xùn)練期間,我們可以嘗試通過監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)技術(shù)來強(qiáng)制執(zhí)行訓(xùn)練數(shù)據(jù)中沒有的某些行為。在這個(gè)階段,指令遵循、聊天角色扮演、推理和工具使用等功能開始出現(xiàn)。
    1.監(jiān)督微調(diào)(SFT)
    SFT 只是監(jiān)督微調(diào)模型對(duì)精選對(duì)話和演示進(jìn)行下一個(gè) token 預(yù)測。“獎(jiǎng)勵(lì)”是隱式的:你最小化了模型希望生成的 token 的交叉熵。這意味著,如果模型生成了與示例數(shù)據(jù)完全相同的文本,你將獲得最大的獎(jiǎng)勵(lì)。
    您可以通過以下方式控制模型的學(xué)習(xí)內(nèi)容:
    標(biāo)記了哪些標(biāo)記(按角色/字段掩蓋損失)。
    某些模式出現(xiàn)的頻率(混合權(quán)重、課程)。
    結(jié)構(gòu)執(zhí)行的嚴(yán)格程度(數(shù)據(jù)構(gòu)建期間的驗(yàn)證器)。
    具體來說,你將對(duì)話序列化為 token,并針對(duì)想要模擬的部分計(jì)算損失。這通常是助手的回復(fù)以及(對(duì)于工具而言)函數(shù)調(diào)用對(duì)象,而不是用戶文本或原始工具輸出。
    我們通常從指令調(diào)優(yōu)開始,這是 SFT 的一部分,我們在此塑造模型,使其表現(xiàn)得像一個(gè)助手,并遵循用戶指令和系統(tǒng)提示。用于指令調(diào)優(yōu)的 SFT 數(shù)據(jù)輸入如下所示:

      “id” : “sft-0001” ,

      “system” : “你是一個(gè)簡潔的助手。” ,

      “messages” : [ 

        { “role” : “user” , “content” : “用一段話解釋dropout。” } ,

        { “role” : “assistant” , “content” : “Dropout隨機(jī)將單位歸零......” } 

      ] ,

      “l(fā)oss_mask” : { 

        “assistant” : true,   //標(biāo)記這些標(biāo)記

        “user” : false         //不要在這里計(jì)算損失

      } ,

      “tags” : [ “instruction” , “science.explain” , “concise” ] 

    }
    在訓(xùn)練期間,結(jié)構(gòu)化數(shù)據(jù)將被序列化為單個(gè)標(biāo)記序列,并在用戶標(biāo)記上加上掩碼,以使模型根據(jù)對(duì)話中助手的行為進(jìn)行自我塑造。
    單字符串對(duì)話的 ChatML 樣式模板如下所示:
    <BOS> 
    <|system|>

    你是一個(gè)簡潔的助手。

    <|eot|> 

    <|user|>

    用一段話解釋dropout。

    <|eot|> 

    <|assistant|> 

    Dropout隨機(jī)將單位歸零…… 

    <|eot|>
    請注意,這個(gè)階段被稱為監(jiān)督微調(diào)的原因是我們明確地以未掩蔽的標(biāo)記形式提供標(biāo)簽,并要求助手精確地生成這些標(biāo)記以實(shí)現(xiàn)目標(biāo)(最小化未掩蔽的標(biāo)記生成的損失函數(shù))。
    2.偏好優(yōu)化(廉價(jià)、穩(wěn)定的控制)
    直接偏好優(yōu)化 (DPO) 是一種基于偏好的后訓(xùn)練方法,通過比較而不是黃金答案進(jìn)行學(xué)習(xí)。
    對(duì)于每個(gè)提示,您需要提供一個(gè)已選答案和一個(gè)被拒絕的答案。該模型經(jīng)過訓(xùn)練,使得在特定策略下,相對(duì)于固定的參考策略(通常是 SFT 檢查點(diǎn)),已選答案比被拒絕的答案更有可能。本例中沒有提供評(píng)判/獎(jiǎng)勵(lì)模型,也沒有 PPO 循環(huán);只有一個(gè)穩(wěn)定的離線目標(biāo)。
    DPO不是教你說什么(SFT),而是教你兩種可能表達(dá)方式中哪一種更好(語氣、安全性、簡潔性、格式準(zhǔn)確性)。它成本低廉、功能強(qiáng)大,而且易于迭代。
    由于穩(wěn)定性、靈活性和降低的成本,許多堆棧現(xiàn)在在完全強(qiáng)化學(xué)習(xí)與人工反饋 (RLHF) 之前(或代替)默認(rèn)為DPO(可能除了二進(jìn)制替代方案KTO )。
    對(duì)于每個(gè)樣本,DPO 的數(shù)據(jù)輸入通常類似于以下內(nèi)容:

      "id" :  "dpo-00421" , 
      "prompt" :  "<BOS>\n<|system|>\n你是一個(gè)簡潔的助手。\n<|eot|>\n<|user|>\n用一段話解釋dropout。\n<|eot|>\n" , 

      "chosen" :     "<|assistant|>\nDropout隨機(jī)屏蔽單元... (清晰、簡潔)\n<|eot|>\n" , 

      "rejected" :   "<|assistant|>\nDropout是一種最初... (雜亂無章/不合規(guī)范)\n<|eot|>\n" , 

      "meta" :  { "reason" :  "簡潔/風(fēng)格" ,  "source" :  "human_label" } 

    }
    我們可以看到,我們正在根據(jù)提示進(jìn)行指令調(diào)整,這是一個(gè) ChatML 序列化輸入,模型現(xiàn)在應(yīng)該可以理解它。
    下面的 Python 偽代碼詳細(xì)說明了如何應(yīng)用 DPO:
    import torch 
    import torch.nn. functional as F 


    # 這是偽代碼,但需要這些代碼才能在實(shí)際實(shí)現(xiàn)中存在:

    # - dpo_loader:生成包含字段 .prompt_ids、.chosen_ids、.rejected_ids、.assistant_mask 的批次

    # - policy:可訓(xùn)練模型(θ)

    # -reference_policy:凍結(jié)參考模型(θ_ref),通常是 SFT 檢查點(diǎn)

    # - seq_logprob(model, prompt_ids, respond_ids, mask, length_normalize=True):返回

    # 僅對(duì)掩碼輔助標(biāo)記(可選長度歸一化)的序列對(duì)數(shù)概率


    beta = 0.1 # dpo_loader  中批次的偏好分離強(qiáng)度:    prompt_ids = batch.prompt_ids           # [B, T_prompt]     chosen_ids = batch.chosen_ids           
    # [B, T_answer]     rejected_ids = batch.rejected_ids         
    # [B, T_answer]     assist_mask = batch.assistant_mask       
    # [B, T_answer] bool (僅在輔助標(biāo)記上損失) 
    #當(dāng)前策略下的序列對(duì)數(shù)概率 (θ) ---     logp_chosen = seq_logprob(policy, prompt_ids, chosen_ids, mask=assistant_mask)     logp_rejected = seq_logprob(policy, prompt_ids, rejected_ids, mask=assistant_mask) 
    # --- 凍結(jié)參考下的序列對(duì)數(shù)概率 (θ_ref) ---     logp0_chosen = seq_logprob(reference_policy, prompt_ids, chosen_ids, mask=assistant_mask).detach()     logp0_rejected = seq_logprob(reference_policy, prompt_ids, accepted_ids, mask=assistant_mask).detach() 
    # --- DPO 邊際:鼓勵(lì)政策擴(kuò)大相對(duì)于參考的選擇與拒絕差距 ---     margin_current = (logp_chosen - logp_rejected)      
    # 在 θ 下    margin_reference = (logp0_chosen - logp0_rejected)     
    # 在 θ_ref (無 grad) 下    z = beta * (margin_current - margin_reference) 
    # 數(shù)值穩(wěn)定:-log σ(z) == BCEWithLogits(z, target=1)     loss = F.binary_cross_entropy_with_logits(z, torch.ones_like(z)) 
    # 標(biāo)準(zhǔn)優(yōu)化器步驟    policy.zero_grad(set_to_none= True )     loss.backward()     torch.nn.utils.clip_grad_norm_(policy.parameters(), max_norm= 1.0 )   
    # 可選但有用for p in policy.parameters(): if p.grad is not None and torch.isnan(p.grad). any():引發(fā)RuntimeError(“漸變中的 NaN”)
     策略.優(yōu)化器.步驟()
    對(duì)于每個(gè)樣本,正在訓(xùn)練的模型將因生成以下文本而獲得最大獎(jiǎng)勵(lì):
    (1)與所選文本完全相同
    (2)與被拒絕的文本完全不同
    (3)與我們開始的參考模型(指令調(diào)整的 SFT 檢查點(diǎn))生成的文本在字符上沒有太大區(qū)別
    隨著時(shí)間的推移,給定足夠多的示例,模型的新檢查點(diǎn)將開始根據(jù)用戶偏好行事,而不僅僅是遵循來自監(jiān)督訓(xùn)練數(shù)據(jù)的特定示例,同時(shí)保留從指令調(diào)整中學(xué)習(xí)到的核心行為。
    通常,結(jié)合用戶輸入對(duì)于塑造一個(gè)在開放世界中對(duì)用戶“感覺”有用的助手的模型至關(guān)重要,因?yàn)橹噶钫{(diào)整數(shù)據(jù)集通常只是一組由團(tuán)隊(duì)內(nèi)部合成和/或來自開源研究工作的預(yù)先準(zhǔn)備好的、精心策劃的對(duì)話。
    3.強(qiáng)化學(xué)習(xí)
    強(qiáng)化學(xué)習(xí) (RL) 在現(xiàn)代技術(shù)棧中體現(xiàn)在兩個(gè)方面:可驗(yàn)證的端點(diǎn)(數(shù)學(xué)/代碼/格式),可用于自動(dòng)評(píng)分輸出;以及長遠(yuǎn)推理(o-series/R1 風(fēng)格)。為了提高效率,兩者通常使用群相對(duì)策略優(yōu)化 (GRPO) 家族中的群相對(duì)、無批評(píng)更新,而不是完整的近端策略優(yōu)化 (PPO) + 價(jià)值函數(shù)循環(huán)。
    4.群體相關(guān)策略優(yōu)化
    GRPO 是一種程序,它允許我們使用獎(jiǎng)勵(lì)函數(shù)有效地評(píng)估模型相對(duì)于自身的最佳性能,而無需提供特定的標(biāo)簽。
    與 PPO 不同,我們不需要單獨(dú)的評(píng)價(jià)模型來評(píng)估模型的性能。相反,我們讓模型生成少量候選答案,并根據(jù)自動(dòng)檢查進(jìn)行評(píng)分,然后對(duì)獲得最高分的答案進(jìn)行獎(jiǎng)勵(lì)。這些檢查通常是在生成的文本上運(yùn)行的函數(shù),用于檢查諸如是否存在精確答案、是否通過單元測試、數(shù)據(jù)模式是否有效,以及有時(shí)還會(huì)進(jìn)行負(fù)面獎(jiǎng)勵(lì),例如長度或延遲懲罰。
    訣竅在于,分?jǐn)?shù)在組內(nèi)是相對(duì)的,因此你可以從樣本本身“免費(fèi)”獲得低方差優(yōu)勢信號(hào)。你不需要第二個(gè) LLM 來執(zhí)行計(jì)算,因此相對(duì)于 PPO,它顯著降低了計(jì)算成本。
    PPO 風(fēng)格的裁剪步驟將更新保持在信任區(qū)域內(nèi),而序列級(jí)、長度歸一化的對(duì)數(shù)概率確保整個(gè)生成過程都能獲得獎(jiǎng)勵(lì),而不僅僅是最終的 token。最終形成了一個(gè)簡單、穩(wěn)定且可擴(kuò)展的循環(huán):增加組規(guī)模以增強(qiáng)信號(hào),模型就會(huì)穩(wěn)步向輸出靠攏,最終確保輸出始終符合評(píng)分標(biāo)準(zhǔn)。
    下面的一些 Python 偽代碼有助于更具體地概念化正在發(fā)生的事情:
    # 超參數(shù)
    group_size = 8           # K

     clip_epsilon = 0.2

     temperature = 0.8

     top_p = 0.95 


    for prompt in prompt_batch: 

        # 1) 從 *舊* 策略中提出 K 個(gè)候選完成

        candidates = sample_candidates(old_policy, prompt, group_size, 

                                       temperature=temp, top_p=top_p) 


        # 2) 使用程序化的獎(jiǎng)勵(lì)函數(shù)對(duì)每個(gè)候選進(jìn)行評(píng)分

        rewards = [compute_reward(prompt, completion) for completion in candidates] 


        # 3) 群體相對(duì)優(yōu)勢(K 個(gè)樣本內(nèi)的 z 分?jǐn)?shù))
         advantage = zscore(rewards)   # (r_i - mean) / (std + eps) 


        # 4) 使用 PPO 樣式剪輯的策略梯度更新(序列級(jí)、長度歸一化)

        for completion, advantage in  zip (candidates, advantage): 

            logprob_new = sequence_logprob(policy, prompt, completion, 

                                           mask= "assistant" , length_normalize= True ) 

            logprob_old = sequence_logprob(old_policy, prompt, completion, 

                                           mask= "assistant" , length_normalize= True ).detach() 


            unlikely_ratio = torch.exp(logprob_new - logprob_old) 

            loss += -torch.clamp(likelihood_ratio, 1 - clip_epsilon, 1 + clip_epsilon) * advantage 


        optimizer.zero_grad() 

        loss.backward() 

        optimizer.step() 


        # 5) 信賴域簿記(標(biāo)準(zhǔn) PPO 風(fēng)格:刷新舊策略)

         old_policy.load_state_dict(policy.state_dict())
    5.可驗(yàn)證獎(jiǎng)勵(lì)的強(qiáng)化學(xué)習(xí)
    當(dāng)你能編寫一個(gè)程序自動(dòng)判斷答案是否“好”時(shí),你就能廉價(jià)且安全地?cái)U(kuò)展強(qiáng)化學(xué)習(xí)。通常,一個(gè)擁有數(shù)萬億個(gè)參數(shù)的前沿模型需要數(shù)百萬個(gè)示例、數(shù)億次嘗試(“候選軌跡”)以及數(shù)萬億個(gè)標(biāo)記的生成,才能顯著改變模型的行為。這意味著,人工監(jiān)控模型為獲得獎(jiǎng)勵(lì)而經(jīng)歷的每一次事件/軌跡是不現(xiàn)實(shí)的。“可驗(yàn)證的獎(jiǎng)勵(lì)”是指那些能夠通過某種自動(dòng)方式來確定模型模擬的任務(wù)是否正確完成的獎(jiǎng)勵(lì)。
    與 SFT/DPO(完全離線)不同,強(qiáng)化學(xué)習(xí)任務(wù)是提示加評(píng)分。每個(gè)示例都會(huì)有一個(gè)提示,其中包含需要完成的任務(wù)、需要解決的問題或其他類型的完成請求,其結(jié)果可以通過編程驗(yàn)證。
    對(duì)于代碼來說,這可以是編寫一個(gè)能夠通過單元測試、代碼檢查和其他類型程序性檢查的函數(shù)。對(duì)于數(shù)學(xué)來說,這可以是對(duì)完整答案中我們期望看到的特定表達(dá)式進(jìn)行精確匹配,例如方程式、引理和證明說明。
    數(shù)學(xué)任務(wù)和代碼任務(wù)的最小 JSON 示例如下所示:
    數(shù)學(xué)

      "id" :  "rl-math-0007" , 

      "prompt" :  "<BOS>\n<|system|>只用數(shù)字回答。<|eot|>\n<|user|>37*91 是多少?<|eot|>\n" , 

      "rewarders" :  [ 

        { "type" :  "exact_answer" ,  "target" :  "3367" } , 

        { "type" :  "format_regex" ,  "pattern" :  "^[0-9]+$" } , 

        { "type" :  "length_penalty" ,  "alpha" :  0.001 } 

      ] 

    }
    編碼

      "id" : "rl-code-1031" , 

      "prompt" : "<BOS> \n <|system|>編寫一個(gè) Python 函數(shù) resolve(),讀取 stdin 并打印答案。<|eot|> \n <|user|>給定 N,輸出總和 1..N。<|eot|> \n " , 

      "rewarders" : [ 

        { "type" : "unit_tests" , "tests" : [ "tests/sum_to_n_*.txt" ], "timeout_ms" : 2000 }, 

        { "type" : "runtime_penalty" , "beta_ms" : 0.0005 }, 

        { "type" : "format_regex" , "pattern" : "def resolve \\ (" } 

      ], 

      "sandbox" : { "image" : "py3.11","內(nèi)存大小" : 512 } 

    }
    獎(jiǎng)勵(lì)是用于處理生成文本的程序,用于評(píng)估給予模型的獎(jiǎng)勵(lì)金額。這些程序應(yīng)該對(duì)符合人類預(yù)期的結(jié)果給予高額獎(jiǎng)勵(lì),并對(duì)不符合預(yù)期的結(jié)果進(jìn)行懲罰。
    注意:模型對(duì)齊的研究專門考察獎(jiǎng)勵(lì)機(jī)制與預(yù)期行為之間的匹配。實(shí)現(xiàn)真正的對(duì)齊通常非常棘手,因?yàn)樵S多代模型可能會(huì)“破解”獎(jiǎng)勵(lì)機(jī)制,并在不真正符合人類預(yù)期的情況下獲得高額獎(jiǎng)勵(lì)。
    這樣的例子包括,當(dāng)模型記住一個(gè)等式而沒有在數(shù)學(xué)結(jié)果中正確顯示工作時(shí),或者編寫一個(gè)剛剛通過單元測試但由于缺乏常識(shí)性應(yīng)急措施而在生產(chǎn)中變得脆弱的函數(shù)時(shí)。
    6.思路鏈推理 RL(o 系列/R1 風(fēng)格)。
    為了優(yōu)化長期問題的最終正確性以及輕量級(jí)格式約束,我們需要引入更深層次的內(nèi)部計(jì)算作為模型的基本行為。這是通過讓LLM自行學(xué)習(xí)一種針對(duì)難題的結(jié)構(gòu)化思維模式來實(shí)現(xiàn)的,這種模式的獎(jiǎng)勵(lì)僅基于最終正確性。
    推理微調(diào)是可驗(yàn)證獎(jiǎng)勵(lì)強(qiáng)化學(xué)習(xí)的一個(gè)子集,其中不提供針對(duì)特定分步活動(dòng)的獎(jiǎng)勵(lì),而僅提供正確性信號(hào)。目標(biāo)是必須完全學(xué)習(xí)獲得最終獎(jiǎng)勵(lì)的過程,在這個(gè)訓(xùn)練階段,我們相當(dāng)于“去掉了輔助輪”。
    兩個(gè)常見的附加內(nèi)容:
    ·語言/格式獎(jiǎng)勵(lì)。例如,“用英語回答;最后一句是Final Answer: ...”。
    ·流程塑造(可選)。通過中間檢查(子目標(biāo)、無需工具的推導(dǎo))可獲得小額獎(jiǎng)勵(lì),而無需在推理階段透露具體解決方案。
    DeepSeek 的R1表明,基于強(qiáng)大的預(yù)訓(xùn)練基礎(chǔ)(無需 SFT 冷啟動(dòng))的純推理強(qiáng)化學(xué)習(xí)可以引發(fā)長視界推理。之后,他們通過一輪小型 SFT 傳遞和另一輪強(qiáng)化學(xué)習(xí),成功解決了強(qiáng)化學(xué)習(xí)推理問題。
    然后,V3將 R1 的推理提煉回其聊天模型中。OpenAI 的o1線路同樣以大規(guī)模強(qiáng)化學(xué)習(xí)為中心,用于隱藏的思路鏈。
    使用 GRPO 進(jìn)行 CoT 訓(xùn)練的樣本如下所示:

      "id" :  "rl-reason-2203" , 

      "prompt" :  "<BOS>\n<|system|>請僅提供思考后的最終數(shù)字答案。\n<|eot|>\n<|user|>若 f(x)=...,則計(jì)算 ...<|eot|>\n" , 

      "rewarders" :  [ 

        { "type" : "equality_modulo" , "target" : "(2*sqrt(3))/5" } , 

        { "type" : "format_regex" , "pattern" : "^Final Answer: " } , 

        { "type" : "language" , "lang" : "en" ,  "gamma" :  0.05 } 

      ] , 
      "sampling" :  { "K" :  8 ,  "temp" :  0.9 } 

    }
    我們可以看到,這種模式與具有可驗(yàn)證獎(jiǎng)勵(lì)的模式非常相似,但是我們只是將難度增加到一定程度,要求模型利用內(nèi)部邏輯以某種方式自行找到最終答案。
    在可驗(yàn)證獎(jiǎng)勵(lì)中,模型很容易不假思索地生成答案,但推理訓(xùn)練的目標(biāo)是注入一組非標(biāo)準(zhǔn)且需要長遠(yuǎn)思維的特殊問題。其結(jié)果是,思維鏈?zhǔn)降莫?dú)白在訓(xùn)練過程中自然而然形成了。大型語言模型(LLM)從未被明確教導(dǎo)如何生成思維獨(dú)白,但他們最終需要這樣做才能在這些任務(wù)中獲得獎(jiǎng)勵(lì)。
    與可驗(yàn)證獎(jiǎng)勵(lì)的樣本相比,這些任務(wù)需要更加仔細(xì)地策劃,并且期望與可驗(yàn)證獎(jiǎng)勵(lì)數(shù)據(jù)集相比,每個(gè)樣本的模型將生成更多的令牌。
    注意:你可能已經(jīng)注意到,以推理為中心的強(qiáng)化學(xué)習(xí)和具有可驗(yàn)證獎(jiǎng)勵(lì)的強(qiáng)化學(xué)習(xí)之間存在許多相似之處。有一個(gè)超級(jí)對(duì)齊(superalignment)領(lǐng)域,專門處理“不可驗(yàn)證”的獎(jiǎng)勵(lì),我們試圖讓大型語言模型(LLM)生成一些我們無法簡單解決的答案。
    更具體地說,它涉及當(dāng)獎(jiǎng)勵(lì)機(jī)制不再是一個(gè)易于評(píng)估的透明函數(shù)時(shí),如何使模型與人類對(duì)行為和安全的期望相一致。這最終超出了本文的討論范圍,但由于它處于訓(xùn)練后研究的前沿,因此是一個(gè)非常有趣的主題,值得進(jìn)一步研究。
    六 讓大型語言模型與現(xiàn)實(shí)世界互動(dòng):工具的使用
    大多數(shù)“工具使用對(duì)齊”都發(fā)生在 RL之前:你向模型傳授模式和軌跡,然后使用強(qiáng)化學(xué)習(xí)來打磨邊緣。
    我們首先需要在 SFT 中教授工具使用直覺,通過添加需要 LLM 生成特定工具使用模式(通常為 XML 或 JSON)的示例,然后在對(duì)話中添加“工具”角色來捕獲來自該工具的真實(shí)世界反饋。
    通常,我們要求模型生成特定的結(jié)構(gòu)化模式,以便與其環(huán)境中的程序、集成或代碼(“工具”)進(jìn)行交互,并期望這種行為能夠推廣到具有各種模式的各種工具。指令調(diào)優(yōu)應(yīng)該允許模型泛化圍繞特定工具和模式的自定義用戶提示,并根據(jù)具體業(yè)務(wù)用例遵循這些提示。
    外匯價(jià)格查詢的示例可能以 JSON 格式如下所示:

      “id” : “sft-tool-0219” ,

      “system” : “您可以調(diào)用工具。更喜歡 JSON 答案。“ ,

      ”tools“ : [ { “name” :“fx.lookup” ,“schema” :“fx.lookup.input_schema” } ] ,

      “messages” : [ 

        { “role” :“user” ,“content” :“現(xiàn)在歐元→加元的匯率是多少?” } , 

        { "role" : "assistant" , "tool_call" : { "name" : "fx.lookup" , "arguments" : { "base" : "EUR" , "quote" : "CAD" } } } , 

        { "role" : "tool" , "name" : "fx.lookup" , "content" : { "rate" : 1.47 , "timestamp" : "2025-08-09T10:22:01Z" } } , 

        { "role" : "assistant" , "content" : "{\"pair\":\"EUR/CAD\",\"rate\":1.47}" } 

      ] , 

      "loss_mask" :  { 

        "assistant.tool_call" :  true ,    // 學(xué)習(xí)名稱+參數(shù) JSON 

        "assistant.text" :  true ,         // 學(xué)習(xí)最終摘要/JSON 

        "user" :  false , 

        "tool.content" :  false           // 不要記住原始工具輸出

      } 
    }
    這將被序列化為以下內(nèi)容,其中模型必須學(xué)習(xí)準(zhǔn)確地完成輔助消息:
    <BOS> 
    <|system|> 您可以調(diào)用工具。最好使用 JSON 格式的答案。<|eot|> 

    <|user|> 現(xiàn)在歐元兌加元的匯率是多少?<|eot|> 

    <|assistant|><|tool_call|>{"name":"fx.lookup","arguments":{"base":"EUR","quote":"CAD"}/><|eot|> 

    <|tool|><|fx.lookup|>{"rate":1.47,"timestamp":"2025-08-09T10:22:01Z"}/><|eot|> 

    <|assistant|>{"pair":"EUR/CAD","rate":1.47}/><|eot|>
    然后,我們可以在沙箱中使用 GRPO 強(qiáng)化學(xué)習(xí)來獲得可驗(yàn)證的獎(jiǎng)勵(lì):

      "id" :  "rl-tool-0817" , 

      "prompt" :  "<BOS>\n<|system|>僅在需要時(shí)使用工具。以 JSON 格式響應(yīng)。\n<|eot|>\n<|user|>當(dāng)前 EUR→USD 匯率是多少?\n<|eot|>\n" , 

      "tools" :  [ "fx.lookup" ] , 

      "environment" :  { 

        "sandbox" :  "http" , 

        "rate_limits" :  { "fx.lookup" :  5 } , 

        "secrets_policy" :  "none_leak" 

      } , 

      "rewarders" :  [ 

        { "type" : "tool_success" ,  "name" : "fx.lookup" ,  "checker" : "value_in_range" ,  "range" : [ 1.3 , 1.7 ] ,  "weight" :1.0 } ,

        { “type” :“schema_valid” , “target” :“assistant_json” , “weight” :0.2 } ,

        { “type” :“l(fā)atency_penalty” , “beta_ms” :0.0003 } ,

        { “type” :“no_op_penalty” , “delta” :0.1 } ,                //懲罰不必要的調(diào)用

        { “type” :“arg_semantics” , “rule” :“base!=quote” , “weight” :0.2 } 

      ] ,

      “l(fā)imits” : {  “max_calls” : 2 , “max_tokens” : 512  } 

    }
    強(qiáng)化學(xué)習(xí)中最棘手的部分是確保現(xiàn)實(shí)世界的工具使用示例具有清晰、可驗(yàn)證的獎(jiǎng)勵(lì)。這并非總是可行,我們可以看到,獎(jiǎng)勵(lì)器的數(shù)量現(xiàn)在已經(jīng)增加,試圖將模型“限制”在特定行為中,使其與人類在真實(shí)環(huán)境中對(duì)模型的期望相一致。
    問題在于,在復(fù)雜的現(xiàn)實(shí)世界中,獲取獎(jiǎng)勵(lì)的途徑數(shù)量非常多:通常比合法的完成路徑數(shù)量高出幾個(gè)數(shù)量級(jí)。這通常會(huì)導(dǎo)致用戶在使用工具時(shí)出現(xiàn)某種“角色扮演”行為,即模型學(xué)習(xí)到了一些非真實(shí)的獎(jiǎng)勵(lì)獲取路徑,而沒有以準(zhǔn)確的方式正確表達(dá)核心邏輯和環(huán)境約束。
    這將我們帶入了后訓(xùn)練的前沿,這里的情況尚不明晰,仍有待進(jìn)一步探索。我個(gè)人認(rèn)為,人工智能能力的下一次演進(jìn)并非來自更高的計(jì)算能力或預(yù)訓(xùn)練規(guī)模,而是來自對(duì)后訓(xùn)練過程的持續(xù)改進(jìn),以防止獎(jiǎng)勵(lì)黑客攻擊,并縮小模型可能的軌跡,使其能夠以合理的方式找到真正的獎(jiǎng)勵(lì)。
    七 案例研究
    1.使用 DeepSeek-V3 進(jìn)行強(qiáng)化學(xué)習(xí)和蒸餾
    Deepseek-V3 是一個(gè)擁有 671B 參數(shù)的 MoE,每個(gè) token 約有 37B 個(gè)有效參數(shù)。它基于多頭潛在注意力 (MLA) 構(gòu)建,以實(shí)現(xiàn)高效的內(nèi)存上下文處理,并在多 token 預(yù)測(MTP) 目標(biāo)下進(jìn)行訓(xùn)練。MTP 細(xì)節(jié)至關(guān)重要:該模型預(yù)測兩個(gè)連續(xù)的 token;在推測解碼過程中,第二個(gè) token 的接受率約為 85% 到 90%,這意味著推理時(shí)每秒大約可以生成 1.8 倍的 token,且不會(huì)造成質(zhì)量損失。可以將其視為合法地?fù)屜冉灰孜磥?token 并獲利。
    從規(guī)模上看,V3在預(yù)訓(xùn)練期間消耗了14.8T 令牌,端到端消耗了約 2.788M H800 GPU 小時(shí) ,這個(gè)數(shù)字已經(jīng)包含了長上下文擴(kuò)展和后訓(xùn)練。該堆棧運(yùn)行混合精度FP8,以確保在整個(gè)訓(xùn)練過程中保持經(jīng)濟(jì)高效和穩(wěn)定。這不僅僅是“向右旋轉(zhuǎn)旋鈕”那么簡單;報(bào)告強(qiáng)調(diào)了穩(wěn)定的運(yùn)行(沒有無法恢復(fù)的損失峰值)以及清晰的基礎(chǔ)架構(gòu),以實(shí)現(xiàn)這一點(diǎn)。
    后訓(xùn)練階段是 V3 的個(gè)性和推理能力得以提升的關(guān)鍵。團(tuán)隊(duì)運(yùn)用監(jiān)督式微調(diào)和強(qiáng)化學(xué)習(xí),將R1 系列中的推理行為提煉回聊天模型中。實(shí)際上,他們直接在預(yù)先訓(xùn)練好的基礎(chǔ)模型上進(jìn)行強(qiáng)化學(xué)習(xí),無需 SFT,然后再將這些行為壓縮回去改進(jìn)基礎(chǔ)模型。通過這種方式,強(qiáng)化學(xué)習(xí)的迭代循環(huán)可以持續(xù)改進(jìn)基礎(chǔ)模型,從而為更復(fù)雜的強(qiáng)化學(xué)習(xí)提供更完善的基礎(chǔ)。
    2.Kimi K2 的 Agentic 工具使用
    Kimi K2 的設(shè)計(jì)明確地是一個(gè)代理模型,而非純聊天模型。其底層是一個(gè)1.04T 參數(shù)的 MoE ,每個(gè) token約 320 億個(gè)活躍數(shù)據(jù),并包含MLA;該架構(gòu)傾向于稀疏性,以便在擴(kuò)展專家池的同時(shí)保持活躍 FLOP 的合理性。他們將專家總數(shù)增加到 384 位(其中 k=8 個(gè)活躍專家),并將注意力頭數(shù)量減半至 64 位(相較于 V3),這一權(quán)衡既控制了吞吐量,又在稀疏擴(kuò)展規(guī)律下改善了驗(yàn)證損失。上下文開箱即用,大小為128K
    K2 引入了MuonClip: Muon 加上 QK-Clip 機(jī)制,該機(jī)制可以重新縮放查詢/鍵的投影,以防止注意力邏輯爆炸,從而允許它們在15.5T 的 token上進(jìn)行預(yù)訓(xùn)練 而不會(huì)出現(xiàn)損失峰值。如果你曾經(jīng)見過萬億級(jí)的運(yùn)行因?yàn)樯贁?shù)幾個(gè) head 爆炸而搖搖欲墜,那么這是一個(gè)務(wù)實(shí)的解決方案,既能保持 Muon 的 token 效率,又能保證訓(xùn)練的流暢性。
    后期訓(xùn)練側(cè)重于工具的大規(guī)模使用。首先,K2 投資于一個(gè)大型合成/真實(shí)代理數(shù)據(jù)管道,該管道可生成工具規(guī)格、多輪軌跡和基于規(guī)則的評(píng)估;然后,它應(yīng)用一種聯(lián)合 RL方案,將可驗(yàn)證的獎(jiǎng)勵(lì)(調(diào)用是否成功?JSON 是否有效?)與自我批評(píng)規(guī)則相結(jié)合,以塑造靜態(tài)痕跡無法傳授的行為。
    他們甚至發(fā)布了一個(gè)用于函數(shù)調(diào)用的令牌模板,并描述了一個(gè)“強(qiáng)制器”約束解碼器,該解碼器保證調(diào)用與生成時(shí)聲明的模式相匹配;這對(duì)于任何對(duì)抗脆弱函數(shù)調(diào)用格式的人來說都很有用。
    最后,K2 的發(fā)布方式就像一個(gè)產(chǎn)品。開放權(quán)重檢查點(diǎn)(基礎(chǔ)和指令)在FP8 區(qū)塊中發(fā)布,并附帶vLLM、SGLang 和 TensorRT-LLM的部署示例,這為想要評(píng)估或在生產(chǎn)環(huán)境中運(yùn)行它的團(tuán)隊(duì)縮短了“hello world”的路徑。

      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 中文丝袜人妻一区二区| 亚洲VA中文字幕无码久久| 午夜性色一区二区三区不卡视频| 国产第一页浮力影院草草影视| 影音先锋人妻啪啪AV资源网站| 国产精品成人中文字幕| 国产激情电影综合在线看| 人妻av无码系列一区二区三区| 18级成人毛片免费观看| 欧美 日韩 亚洲 精品二区| 一区二区三区鲁丝不卡| 一本一道久久A久久精品综合| 亚洲色大成网站WWW永久麻豆| 亚洲 欧美 国产 制服 动漫| 嘿咻嘿咻男女免费专区| 午夜久久久久久禁播电影| 免费无码AV一区二区波多野结衣| 精品玖玖玖视频在线观看| 亚洲男女羞羞无遮挡久久丫| 亚洲男女一区二区三区| 制服丝袜美腿一区二区| 欧美XXXX黑人又粗又长| 男女激情一区二区三区| 精品久久久久成人码免费动漫| 狠狠爱五月丁香亚洲综| 97成人碰碰久久人人超级碰oo| 亚洲AV成人无码精品电影在线 | 不卡AV中文字幕手机看| 精品一区二区中文字幕| 国产白嫩护士被弄高潮| 久久被窝亚洲精品爽爽爽| 国产精品中文字幕久久| 中文乱码人妻系列一区二区| 亚洲 都市 无码 校园 激情 | 久久国产免费观看精品3| 国产亚洲精品第一综合另类灬| 99热精品毛片全部国产无缓冲 | 国产成人无码免费网站| 国产另类ts人妖一区二区| 亚洲国产精品一区二区WWW| 粗壮挺进邻居人妻|