大語言模型的完整訓練周期從0到1的體系化拆解

以下部分內容參考了AI。?

?

要真正理解大語言模型(LLM)的創生過程,我們需要將其拆解為一個完整的生命周期,每個階段的關鍵技術相互關聯,共同支撐最終模型的涌現能力。以下是體系化的訓練流程框架:

階段一:數據工程 - 大模型的根基

  1. 數據采集與清洗

    • 多源異構數據:爬取網頁(Common Crawl)、書籍、論文、代碼(GitHub)、對話數據等

    • 去重與質量過濾:基于規則/LM的垃圾內容剔除,語言檢測(保留多語種但需平衡)

    • 數據安全合規:版權爭議內容處理,隱私信息脫敏(如郵箱、電話號碼)

  2. Tokenizer設計與訓練

    • BPE/WordPiece/Unigram算法選擇:平衡詞匯表大小與OOV問題

    • 特殊Token設計:<|im_start|>等對話標記,領域相關符號(如代碼中的縮進)

    • 多語言支持:通過SentencePiece實現跨語言分詞(如LLaMA的20萬詞表)

階段二:模型架構設計 - Transformer的進化
  1. 核心架構選擇

    • Decoder-only結構:因果注意力掩碼(GPT系列)

    • 稀疏注意力優化:FlashAttention-2的IO感知計算(提升3倍訓練速度)

    • 位置編碼創新:RoPE(相對位置編碼,支持長度外推)

  2. 組件級優化

    • 激活函數:SwiGLU(比ReLU更平滑的梯度流)

    • 歸一化層:RMSNorm(省去均值計算,適合超大模型)

    • 注意力頭機制:GQA(Grouped-Query Attention,平衡KV緩存與效果)

  3. 擴展性設計

    • MoE架構:如Mixtral的8個專家+路由網絡,顯存消耗僅1/4

    • 3D并行策略:數據并行+流水并行(PipeDream)+張量并行(Megatron-LM)

階段三:預訓練 - 解鎖模型潛能
  1. 訓練目標設計

    • 標準語言建模:next-token prediction(覆蓋95%以上訓練步)

    • 填充預測(Fill-in-middle):提升代碼生成能力(如StarCoder)

    • 多任務混合訓練:在1%數據中混合指令數據(為微調鋪墊)

  2. 優化策略

    • 學習率調度:余弦退火+Warmup(例如峰值3e-4,持續20k步)

    • 混合精度訓練:FP16+動態Loss Scaling(A100顯存節省40%)

    • 梯度裁剪:閾值0.1-1.0(防止梯度爆炸)

  3. 穩定性保障

    • Checkpoint保存:每2小時保存一次(含優化器狀態)

    • 監控指標:Perplexity突變為重啟信號,梯度范數監測

    • 災難性遺忘應對:保留5%通用數據作為正則化

?階段四:對齊與微調 - 從知識到智能

  1. 監督微調(SFT)

    • 數據構造:指令-響應對(如Alpaca的52k數據)

    • 課程學習:先單輪對話后多輪,逐步增加難度

    • 災難性遺忘緩解:Lora(低秩適配器,僅訓練0.1%參數)

  2. 偏好對齊

    • RLHF流程

      1. 獎勵模型訓練:基于Bradley-Terry模型的對數損失

      2. PPO優化:KL散度約束防止過度優化(β=0.1-0.2)

    • DPO替代方案:直接優化策略梯度,無需顯式獎勵模型

  3. 持續學習

    • 增量訓練:插入新的專家層(如PaLM 2的pathways)

    • 參數隔離:Side Network防止舊知識覆蓋

?階段五:部署優化 - 讓模型落地

  1. 推理加速

    • 量化方案:GPTQ(3bit量化,精度損失<1%)

    • 算子融合:將LayerNorm+GEMM合并為單一CUDA Kernel

    • 動態批處理:vLLM的PagedAttention技術

  2. 安全防護

    • 推理時干預:基于概率的拒絕采樣(如Llama Guard)

    • 后門檢測:激活空間異常值分析(如MAD防御)

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

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

相關文章

吃水果(貪心)

文章目錄 題目描述輸入格式輸出格式樣例輸入樣例輸出提交鏈接提示 解析參考代碼 題目描述 最近米咔買了 n n n 個蘋果和 m m m 個香蕉&#xff0c;他每天可以選擇吃掉一個蘋果和一個香蕉&#xff08;必須都吃一個&#xff0c;即如果其中一種水果的數量為 0 0 0&#xff0c;則…

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(4)

1.問題描述&#xff1a; LoginWithHuaweiIDButton不支持深色模式下定制文字和loading樣式&#xff1f; 解決方案&#xff1a; LoginWithHuaweiIDButtonParams 中的有個supportDarkMode屬性&#xff0c;設置為true后&#xff0c;需要自行響應系統的變化&#xff0c;見文檔&am…

【C語言】指針詳解(接)

前言&#xff1a; 文接上章&#xff0c;在上章節講解了部分指針知識點&#xff0c;在本章節為大家繼續提供。 六指針與字符串&#xff1a;C 語言字符串的本質 在 C 語言中&#xff0c;字符串實際上是一個以\0結尾的字符數組。字符串常量本質上是指向字符數組首元素的指針&…

第5講、Odoo 18 CLI 模塊源碼全解讀

Odoo 作為一款強大的企業級開源 ERP 系統&#xff0c;其命令行工具&#xff08;CLI&#xff09;為開發者和運維人員提供了極大的便利。Odoo 18 的 odoo/cli 目錄&#xff0c;正是這些命令行工具的核心實現地。本文將結合源碼&#xff0c;詳細解讀每個 CLI 文件的功能與實現機制…

如何將 PDF 文件中的文本提取為 YAML(教程)

這篇博客文章將向你展示如何將 PDF 轉換為 YAML&#xff0c;通過提取帶有結構標簽的標記內容來實現。 什么是結構化 PDF&#xff1f; 一些 PDF 文件包含結構化內容&#xff0c;也稱為帶標簽&#xff08;tagged&#xff09;或標記內容&#xff08;marked content&#xff09;&…

銀發團扎堆本地游,“微度假”模式如何盤活銀發旅游市場?

? 銀發微度假&#xff0c;席卷江浙滬 作者 | AgeClub呂嬈煒 前言 均價200-300元的兩天一夜微度假產品&#xff0c;正在中老年客群中走紅。 “我們屬于酒店直營&#xff0c;沒有中間商賺差價&#xff0c;老年人乘坐地鐵到目的地站&#xff0c;會有大巴負責接送&#xff0c;半…

蘋果iOS應用ipa文件進行簽名后無法連接網絡,我們該怎么解決

蘋果iOS應用ipa文件在經過簽名處理后&#xff0c;如果發現無法連接網絡&#xff0c;這可能會給用戶帶來極大的不便。為了解決這一問題&#xff0c;可以采取一系列的排查和解決步驟&#xff0c;以確保應用能夠順利地訪問互聯網。 首先&#xff0c;確保你的設備已經連接到一個穩…

MySQL 中 ROW_NUMBER() 函數詳解

MySQL 中 ROW_NUMBER() 函數詳解 ROW_NUMBER() 是 SQL 窗口函數中的一種&#xff0c;用于為查詢結果集中的每一行分配一個??唯一的連續序號??。與 RANK() 和 DENSE_RANK() 不同&#xff0c;ROW_NUMBER() 不會處理重復值&#xff0c;即使排序字段值相同&#xff0c;也會嚴格…

Leetcode百題斬-二叉樹

二叉樹作為經典面試系列&#xff0c;那么當然要來看看。總計14道題&#xff0c;包含大量的簡單題&#xff0c;說明這確實是個比較基礎的專題。快速過快速過。 先構造一個二叉樹數據結構。 public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode…

Asp.Net Core 如何配置在Swagger中帶JWT報文頭

文章目錄 前言一、配置方法二、使用1、運行應用程序并導航到 /swagger2、點擊右上角的 Authorize 按鈕。3、輸入 JWT 令牌&#xff0c;格式為 Bearer your_jwt_token。4、后續請求將自動攜帶 Authorization 頭。 三、注意事項總結 前言 配置Swagger支持JWT 一、配置方法 在 …

MySQL 定時邏輯備份

文章目錄 配置密碼編寫備份腳本配置權限定時任務配置檢查效果如果不想保留明文密碼手工配置備份密碼修改備份命令 配置密碼 cat >> /root/.my.cnf <<"EOF" [client] userroot passwordYourPassword EOF編寫備份腳本 cat > /usr/local/bin/mysql_dum…

在qt中使用c++實現與Twincat3 PLC變量通信

這是一個只針對新手的教程&#xff0c;下載安裝就不說了&#xff0c;我下的是TC31-Full-Setup.3.1.4024.66.exe是這個版本&#xff0c;其他版本應該問題不大。 先創建一個項目 選中SYSTEM&#xff0c;在右側點擊Choose Target&#xff08;接下來界面跟我不一樣沒關系&#xf…

云原生微服務devops項目管理英文表述詳解

文章目錄 1.云原生CNCF trail map云原生技術棧路線圖 2. 微服務單體應用與微服務應用架構區別GraphQLKey differences: GraphQL and REST 3.容器化&編排dockerKubernetesContainers and ContainerizationContainer Basics 4. DevOps & CI/CDTerms and Definitions 5.Ag…

pyside 使用pyinstaller導出exe(含ui文件)

第一步&#xff1a;首先確保安裝好pyinstall&#xff0c;終端運行 pyinstaller -w main.py 生成兩個文件夾 打開exe文件報錯&#xff0c;問題是ui文件找不到 第二步&#xff1a;將ui文件復制到exe所在文件夾&#xff0c;打開成功 ![在這里插入圖片描述](https://i-blog.csdni…

kerberos在無痕瀏覽器 獲取用戶信息失敗 如何判斷是否無痕瀏覽器

kerberos在無痕瀏覽器 獲取用戶信息失敗 如何判斷是否無痕瀏覽器 js 代碼 其他地方用直接導入js getCurrentUserId 這是自己后端獲取 域賬號地址 我是成功返回200 //true普通瀏覽器 fasle 無痕瀏覽器 export const checkBrowserMode async () > {try {const response a…

HTML 計算網頁的PPI

HTML 計算網頁的PPI vscode上安裝live server插件&#xff0c;可以實時看網頁預覽 有個疑問&#xff1a; 鴻蒙density是按照類別寫死的嗎&#xff0c;手機520dpi 折疊屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…

華為OD機試真題——Boss的收入(分銷網絡提成計算)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

2025 A卷 100分 題型 本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式; 并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析; 本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分…

<el-date-picker>組件傳參時,選中時間和傳參偏差8小時

遇到一個bug&#xff0c;不仔細看&#xff0c;都不一定能發現&#xff0c;bug描述&#xff1a;我們有一個搜索框&#xff0c;里面有一個時間選擇器&#xff0c;當我使用<el-date-picker>時&#xff0c;我發現當我選擇時分秒之后&#xff0c;顯示都正常&#xff0c;但是當…

uni-app開發特殊社交APP

uni-app開發特殊社交APP 目錄 1.展示APP功能 2.展示項目結構 3.關于我的GitHub 引言 博主最近自己在GitHub上面上傳了一個關于社交軟件的項目&#xff08;該項目早已開發完畢&#xff09;, 這個社交軟件比較特殊, 被稱之為blind-date&#xff0c; blind-date 是基于 uni-…

深入研究Azure 容器網絡接口 (CNI) overlay

啟用cni overlay 在通過portal創建aks的時候,在networking配置上,選中下面的選項即可啟用。 通過CLI創建AKS 要創建具有 CNI 覆蓋網絡的 AKS 群集,需要在創建群集時指定 --network-plugin azure 和 --network-plugin-mode 覆蓋選項。 還需要指定 --pod-cidr 選項來定義群…