原文地址:https://zhuanlan.zhihu.com/p/30201040247 引言:从预训练到后训练 2023 年,当 ChatGPT 惊艳世界时,很多人第一次意识到:原来 AI 不仅能背课文 这些聪明表现的背后,得益于大语言模型(LLM)的两个关键训练阶段:预训练(Pretraining)和后训练(Post-training)。 ,我们沿用上述原论文给出的分类视角(taxonomy),从「微调」、「强化学习」、「测试时拓展」三个类别去认识各种后训练技术。 更新后的权重矩阵为: 由于r远小于d和k,因此 LoRA 只需要训练很少的参数,就可以达到与全参数微调相近的性能。 实践指南:如何选择后训练方案 6.1 决策流程图 6.2 工具链推荐
机器之心报道 编辑:Panda 现如今,微调和强化学习等后训练技术已经成为提升 LLM 能力的重要关键。 LLM 的训练过程大致可分为两个阶段:预训练和后训练。 预训练阶段通常依赖在大规模语料库上的下一 token 预测目标,后训练阶段通常则包括多轮微调和对齐。 通过这些目标明确的后训练技术,LLM 可以更好地与人类意图和道德伦理要求对齐,最终提高其在现实世界中的适用性。下面总结了关键的后训练阶段。 LLM 中的监督微调 如图 2 所示,微调是 LLM 后训练配方的基本组成部分。 LLM 后训练评估基准 为了评估 LLM 后训练阶段的表现,人们已经提出了很多涉及多个领域的基准: 推理 强化学习对齐 多语言评估 通用理解 对话和搜索 结构良好的评估框架可确保全面了解 LLM 在各种任务中的优势和局限性
自训练适用不同规模数据集和不同强度增强数据的训练; 3、自训练并且可以看作对预训练的补充,联合预训练和自训练可以获得更大的增益。 2 研究动机 作者希望能解决以下问题: 预训练对训练结果有多大程度的帮助?什么情况下使用预训练是无效的? 与预训练相比,我们可以使用自训练并获得相似或更好的结果吗? 如果自训练优于预训练(暂做这样的假设),那它在多大的程度上比预训练好? 在什么情况下自训练比预训练更好? 自训练的灵活性和可扩展性如何? 我的看法:在ImageNet上训练的大多数模型都没有使用很高强度的增强方法。高强度增强数据后,模型可能无法正确收敛。实际上,模型有时可能会对增强过拟合,当然这还需要进行适当的细节研究。 3、自监督预训练 vs 自训练 有监督的 ImageNet预训练会损害最大规模数据集和高强度数据增强下的训练效果。但是自监督的预训练呢?
大模型训练技术概述 LLM训练的三个阶段 训练大型语言模型不是一个单一的过程,相反,它是一个多层的训练过程组合,每个过程都有其独特的作用,并对模型的性能做出贡献。 大模型预训练技术 大模型预训练简介 预训练是指在模型的初始阶段,使用大量数据对模型进行训练,以便让模型学习到通用的特征和知识。这些特征和知识可以是语言模型中的词嵌入,或者是图像识别模型中的视觉模式。 支持预训练、后训练、英语、中文等场景中的数据分析、清洗和合成。 支持数据模型协同开发,通过沙盒实验室实现快速迭代,提供反馈循环、可视化等功能,让您更好地理解和改进数据和模型。 现有的研究证明,预训练数据的数量和质量都对训练效果具有重大影响。 在获取充足的预训练数据后,数据质量直接决定了模型的实际性能。通过提升数据质量,语言模型就能展现出与更大规模模型相匹敌甚至更为优异的性能。
本文将会重点介绍训练后量化技术的两种方式:动态和静态方法,将模型权重和激活从浮点数转换为整数,以减少模型大小和加速推理。并以 KL 散度作为例子讲解校准方法和量化粒度控制来平衡模型精度和性能。 训练后量化的方式 训练后量化的方式主要分为动态和静态两种。 其核心是计算量化比例因子,使用静态量化后的模型进行预测,在此过程中量化模型的缩放因子会根据输入数据的分布进行调整。相比量化训练,静态离线量化不需要重新训练,可以快速得到量化模型。 目的就是改变量化域,实则就是改变真实的分布,并使得修改后得真实分布在量化后与量化前相对熵越小越好。 训练后量化的技巧 对权重使用每通道(per-channel)粒度,对激活使用每张量(per-tensor)粒度 权重张量在不同通道中的值分布差异很大,如果使用单一的缩放因子进行量化,可能会导致较大的精度损失
神经网络训练好后,预测若干张图片(实际上是numpy 数组),可将numpy 数组转换成 size 为 (batch,channels, height, width), 类型为float 的 tersor 后,直接预测。 注意要手动将数据归一化,mean值和标准差 与 训练集的 transforms 的归一化参数一致。
本文提出了 AdaRound,一种用于训练后量化的更好的权重舍入机制,它可以适应数据和任务损失。AdaRound 速度很快,不需要对网络进行微调,仅需要少量未标记的数据。 AdaRound 不仅比舍入取整有显著的提升,而且还为几种网络和任务上的训练后量化建立了新的最新技术。 在全面的研究中,表明 AdaRound 为几个网络和任务(包括 ResNet18,ResNet50,MobilenetV2,InceptionV3 和 DeeplabV3)提供了最新的训练后量化新技术。 这意味着在进行训练后量化时,通过仔细舍入权重,可以获得很多收益。本文的其余部分旨在设计一种有充分根据和计算效率的舍入机制。 ? 随机舍入与四舍五入对比 方法 在本节中,提出AdaRound,这是一种用于训练后量化的新舍入程序,在理论上是有充分根据的,并且在实践中显示出显着的性能改进。本文从理论上分析由于量化引起的损失。
构造多个无监督任务来学习词法、句法和语义的信息;且通过增量的方式进行多任务学习,引入新任务后,并不是只使用新的任务来训练,而是通过多任务学习同时学习之前的任务和新增加的任务,这样既要学习新的信息的同时也不能忘记老的信息 预训练了一个微调后可以同时用于自然语言理解和自然语言生成的下游任务模型,核心框架transformer,预训练和目标结合了以下三个: 单向语言模型(同ELMO/GPT),在做attention时只能mask CMLM可以将显式的跨语言信息作为训练信号,更好的训练跨语言预训练模型。方法分为3步: 由n-gram向量推断得到n-gram翻译表。 用预训练的模型初始化翻译模型得到的编码器和解码器,进行无监督机器翻译模型的训练。 8. 试图解决大部分预训练模型训练成本高,参数量巨大的问题。
LoRA 原理及实现前言✍ 在大模型后训练这条线里,大模型的参数量往往是几十亿、上百亿。 而在前言我们也提到过,LoRA的核心想法:不需要所有的参数同时训练,冻结原始参数,只训练一个小的 ΔW。 Q1:为什么可以直接通过一个低秩矩阵训练就可以达到好的效果? 了解了为什么可以这么做后,我们来看一下LoRA在实际工程中是怎么实现的, 以 Transformer 里最常见的线性层为例:原始权重矩阵:W_0 \in \mathbb{R}^{d_{\text{out 2.2 LoRA Dropout在很多工程实现中,LoRA 会在A x 后加一个 dropout,例如:h_{\text{out}} = W_0 x + \frac{\alpha}{r} B(\text Trainertrainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, # 预处理后的数据
当我们谈论"训练自己的文生图模型"时,实际上存在两条截然不同的路径:预训练(Pre-training)和后训练(Post-training)。 二、核心概念深度解析2.1预训练与后训练的本质区别要理解后训练的价值,我们首先需要了解预训练模型的本质。 2.2扩散模型的工作原理在深入后训练技术之前,有必要简要理解扩散模型(DiffusionModel)的工作原理,因为这直接关系到我们如何设计训练策略。 三、后训练技术全景图后训练技术经过近两年的快速发展,已经形成了一个丰富的技术生态。不同的技术适用于不同的场景,选择正确的技术路线是成功的关键。 五、选择基础模型选择合适的基础模型是后训练的第一个重要决策。
构造多个无监督任务来学习词法、句法和语义的信息;且通过增量的方式进行多任务学习,引入新任务后,并不是只使用新的任务来训练,而是通过多任务学习同时学习之前的任务和新增加的任务,这样既要学习新的信息的同时也不能忘记老的信息 预训练了一个微调后可以同时用于自然语言理解和自然语言生成的下游任务模型,核心框架transformer,预训练和目标结合了以下三个: 单向语言模型(同ELMO/GPT),在做attention时只能mask CMLM可以将显式的跨语言信息作为训练信号,更好的训练跨语言预训练模型。方法分为3步: 由n-gram向量推断得到n-gram翻译表。 用预训练的模型初始化翻译模型得到的编码器和解码器,进行无监督机器翻译模型的训练。 8. 试图解决大部分预训练模型训练成本高,参数量巨大的问题。
训练时:前向:用低比特 W_0 参与计算 + LoRA 分支的浮点增量;反向:只对 LoRA 权重(A、B)求梯度,W_0 不更新。 1.1 QLoRA 和普通 LoRA 的本质区别是什么? QLoRA 证明了:在大规模 LLM 上,用 NF4 这种 4bit 格式 + Double Quantization + PagedOptimizer,再配合 LoRA,只训练低秩增量,就可以在几乎不掉点的前提下 4bit_use_double_quant=True, # double quantization bnb_4bit_quant_type="nf4", # NF4 或 FP4)# 2) 加载量化后的基座模型 train_dataset, batch_size=BATCH_SIZE, shuffle=True, num_workers=4, collate_fn=collate_fn,)训练代码
QMamba: Post-Training Quantization for Vision State Space Models QMamba:面向视觉状态空间模型的后训练量化方法 https://www.arxiv.org 鉴于在资源受限的边缘设备上部署SSMs的计算成本较高,训练后量化(Post-Training Quantization, PTQ)作为一种技术,具有推动SSMs高效部署的潜力。 训练后量化 量化是一种有效的模型压缩技术,它将权重和激活值从浮点数转换为低比特整数,从而减少内存存储和计算消耗。 量化方法大致可分为两类:量化感知训练 (Quantization-Aware Training, QAT)[1, 4, 5] 和训练后量化 (Post-Training Quantization, PTQ 6 结论 在本研究中,我们首次提出了 QMamba,这是首个专为基于状态空间模型(SSM)的视觉模型设计的后训练量化(PTQ)框架之一。
,感兴趣的读者可以前往阅读:后训练(Post-training) = SFT + 偏好对齐(RLHF / DPO / ...)所以从 “会说话”到“会听话 + 懂规矩”,中间还差一整块流程——这就是我们本章要讲的 :后训练(Post-training) = SFT + 偏好对齐(RLHF / DPO / …)在这一章中,主要讲解后训练的具体内容。 预训练 vs 后训练 的区别? 预训练学的是“语言分布”,后训练学的是“人类偏好 + 任务风格”阶段 训练目标 数据来源 直观理解 后,对SFT后的模型进行输出头替换,从原来的输出的词概率替换为reward标量。
当前产业共识是,大模型后训练不再是简单的模型优化,而是AI落地的必经之路。 企业需要将通用基座模型,训练成深度理解自身业务、具备领域知识、能执行复杂策略的智能引擎。 企业中后训练普遍会面对数据质量差、标注成本高、奖励信号与评估体系难以统一的挑战。 行业中有些企业已经有了最佳实践。 比如知乎采用的是大模型预打标+主动学习,来提升数据质量。 这些最佳实践体现出,整个后训练的完整路线是: 1、Data:准备高质量的数据,为模型注入领域知识; 数据是后训练的基石,数据质量决定了后训练效果的上限。 企业做大模型后训练,超过60%时间花费在数据准备上。 数据准备挑战的核心是,原始质量参差不齐,包含大量噪音、冗余和低价值信息,企业自有数据专业且垂直,直接用于训练会导致模型泛化能力缺失。 4、Evaluation:构建可量化的模型评测,挂钩业务指标; 模型评估师衡量后训练成效的最终标尺,核心在于用客观、可量化的结果证明技术投入的商业价值。
在前面的 LoRA / QLoRA 里,我们基本解决了两个问题: 显存问题:QLoRA 把 base 模型压到 4bit,再挂一个全精度 LoRA 分支,显存几乎抠到极致; 参数效率问题:LoRA 只训练低秩增量 但在工业、科研中,依然存在着一个问题:同样的数据、同样的训练流程下,用 LoRA 微调和用 Full Fine-tuning 微调,最终效果之间的差距依然存在着GAP,显然是通过精度为代价兑换的。 DoRA 的核心想法: 先把预训练权重 `$W_0$` 拆成 “方向 + 幅度”, 了解了核心想法之后,我们来看一下DoRA具体是怎么操作的: 1️⃣ 权重分解(Weight Decomposition ,表示“这列权重最后要放多大”; 所有列的 m_j 合在一起,就是一个可训练的向量m \in \mathbb{R}^{1 \times k} 。 ,最后训练长度标量 Q1:DoRA 和 LoRA 的本质区别是什么?
最初,我们通过“混合运算”为训练后量化提供支持,该方法可量化模型参数(例如权重),但以浮点方式执行部分计算。今天,我们很高兴宣布推出一款新工具:训练后整型量化。 优化模型以缩减尺寸、延时和功耗,使准确率损失不明显 为何应使用训练后整型量化 我们之前发布的“混合”训练后量化方法可在许多情况下减少模型大小和延迟时间,但却必须进行浮点计算,这可能不适用于所有硬件加速器 注:“混合”训练后量化 链接 https://www.tensorflow.org/lite/performance/post_training_quantization 我们已推出全新的训练后整型量化方法 CPU 大小和延迟时间,即应使用“混合”训练后量化工具。 文档和教程 您可以在 TensorFlow 网站上找到关于训练后整型量化、新量化规范以及训练后整型量化教程的详细信息。我们非常乐于了解您对此工具的使用情况 — 欢迎您分享自己的案例!
预训练和后训练这两个阶段,就像是那漫长旅程里的两大转折点,前者铺就了宽广的底子,后者则添上了细腻的温度。 我自己也折腾过一个后训练的活计,用预训练好的模型微调成聊天伙伴。还是魔搭的框架,这次直接从社区拉Alpaca数据集,避免外挂依赖。 你现在看到的就是最经典的“前后对比”:阶段现在的表现(预训练完成)后训练目标(你马上就能做到)预训练结束能流利生成“像人写的”文本,但完全不听指令→只给了个底子后训练(SFT)能听懂Instruction 0.94表示训练到第0轮的94%你现在看到的,就是后训练最经典、最震撼的“loss雪崩现场! 预训练的狂飙突进容易卷起网络的尘埃,后训练的把关又该怎么握住自由与安全的秤?
解码异或后的数组 难度:简单 描述 未知 整数数组 arr 由 n 个非负整数组成。 经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。 例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。 给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。
在每一轮交互中,智能体感知到环境目前所处的状态,经过自身的计算给出本轮的动作,将其作用到环境中;环境得到智能体的动作后,产生相应的即时奖励信号并发生相应的状态转移。 RLHF的强化学习训练过程可以分解为三个核心步骤: 多种策略产生样本并收集人类反馈 训练奖励模型 训练强化学习策略,微调 LM RLHF就是基于人类反馈对语言模型进行强化学习,和一般的Finetune ,在语料上直接训练。 大模型强化学习技术-推理能力增强 下面是论文LLM Post-Training: A Deep Dive into Reasoning Large Language Models一些关键要点 大型语言模型(LLMs)后训练方法的分类 (配代码解读) - 知乎 李宏毅深度强化学习笔记(一)Proximal Policy Optimization (PPO) - 51CTO博客 ChatGPT会取代搜索引擎吗 - 知乎 推理类大模型的后训练增强实践分析