大语言模型的完整训练周期从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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 选项来定义群…