)
图片来自于 midjourneyIntroduction to Generative AI 2024 Spring文章目录1、第6講大型語言模型修練史 — 第一階段: 自我學習累積實力2、第7講大型語言模型修練史 — 第二階段: 名師指點發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)3、第8講大型語言模型修練史 — 第三階段: 參與實戰打磨技巧 (Reinforcement Learning from Human Feedback, RLHF)4、In-context Learning、Instruct Learning、RLHF 的区别与联系5、RLHF 和 alignment 的关系6、参考1、第6講大型語言模型修練史 — 第一階段: 自我學習累積實力第一阶段self-supervised learning第二阶段supervised learninginstruction fine-tuning第三阶段RLRLHF训练可能会失败需要不断调超参数训练失败了换组参数once again机器学习只管找到的参数有没有符合训练资料不管有没有道理容易overfitting为什么神经网络可以正确分辨宝可梦和数码宝贝呢【AI】《Explainable Machine Learning》如何避免模型根据颜色来区分猫狗增加训练资料的多样性eg 增加黄色的猫、黑色的狗如何让机器找到比较合理的参数随机初始化参数 train from scratch好的初始化参数类比知识先验egpretrain上哪找先验知识上面例子如果说在低压下水的沸点是 100 就是错的50 才可能是对的语法蓝色曲线 - Syntactic语义紫色曲线 - Semantic仅仅为了“学会说话”即让生成的内容听起来像人话并不需要海量数据。——学习到具备语言知识的能力大概 1 亿个 words 就可以世界知识Winograd极其“昂贵”——学习世界知识30B 可能还不够语言能力Syntax/Semantics是低门槛的而真正的智能和常识World Knowledge是靠海量数据堆出来的。世界知识是非常丰富、有层次的需要大量的文字资料self-supervised learning自监督学习过滤有害内容去除 html 符号去掉低品质资料可以用训练好的资料品质分类器去掉重复资料有被侵权的风险即使参数量超大结果也不是很好试用下 GPT3找找当年的感觉davinci-002达芬奇 002如何写 prompt 会大幅影响其能力训练一个比 GPT 更大的模型也没有出现解决问题的能力你问它问题它还反过来问你问题为什么语言模型不能好好回答问题因为其实你也没这样教他2、第7講大型語言模型修練史 — 第二階段: 名師指點發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)Instruction learning为什么需要 USER 和 AI因为提问者可能自问自答这个时候不是输出答案而是输出答案是否正确人力贵无法收集太多资料容易 overfitting如果只用人类督导的数据过拟合可以用第一阶段的模型做 pretrain配合督导式学习起飞Instruction Tuning这是大语言模型LLM训练中的一个特定阶段。它利用监督学习的技术让模型学会“听从人类指令”学习人类对话的行为模式AlignmentInstruction Tuning指令微调本质上就是一种特殊的 Supervised Learning监督学习。Instruct 是 Supervise 在通向通用人工智能AGI道路上的一次华丽转身。LoRALow-Rank Adaptation之所以能在大模型时代封神是因为它用极其优雅的数学手段解决了“微调成本”与“推理效率”之间的结构性矛盾。LoRA 在原始权重矩阵W 0 W_0W0旁边并联Parallel了一个旁路。对于输入x xx输出h hh的计算变为h W 0 x Δ W x W 0 x B A x h W_0 x \Delta W x W_0 x BAxhW0xΔWxW0xBAx这种并联结构允许我们在训练完成后将B A BABA两个矩阵相乘的结果直接加回到W 0 W_0W0中。在推理时模型依然是原来的形状实现了“训练时有感知推理时零延迟”。即使原始权重W WW是1024 × 1024 1024 \times 10241024×1024LoRA 认为真正起作用的变化可以用两个极小的矩阵A AA1024 × r 1024 \times r1024×r和B BBr × 1024 r \times 1024r×1024相乘来模拟其中r rr通常只有 4 或 8。LoRA 的伟大之处在于它发现了一个“物理 Bug”大模型的参数虽然多但在处理特定任务时绝大多数参数的变动是冗余的。通过Low-Rank低秩这一手术刀它精准地切掉了冗余留下了精华。在多种语言上做预训练后只要教某一个语言的某一个任务自动学会其他语言的同样任务训练 BERT Pre-train预训练任务是猜词和判断句子关系。使用 BERT Fine-tune微调任务是解决具体的业务问题。Human Performance (黑色实线)不同形状代表 GLUEGeneral Language Understanding Evaluation 综合测评基准 里的不同子任务BERT 及其变体BERT STILTs, BERT BAM显著拉高了各项任务散点的下限。MT-DNN 和 XLNet模型已经正式在综合评分上超越了人类水平。这张图表是“规模法则Scaling Law” 的早期证明更好的架构Transformer 更大的数据Pre-train 合理的任务适配Fine-tune/Multi-task 机器在语言理解上全面压制人类。翻译、编修、摘要不仅要学会交给它的任务还要学会举一反三的能力之前标题是 xxx is All you need审稿人看腻了这种名字改名了可以不断的学习知识成为全才但是容易忘记之前学习的知识这篇文章介绍的是如何复习学过的知识用上述任务来训练通用模型FLAN在没见过的任务上表现比 GPT-3 要好few-shot 指的是in-context learningeg导入讯息1.8K 个任务 fine-tune全才左图横轴模型的参数量右图横轴模型的任务数纵轴表示在没有见过的任务上的表现微调后效果上来了GPT (最左侧) 原始的预训练模型。它只会“根据概率续写文字”并不理解什么是指令。GPT (prompted) 通过少量示例Few-shot prompting也即 in-context learnig引导后的原始模型——模型参数没变SFT (Supervised Fine-Tuning) 经过有监督微调后的模型——模型参数变了。在 SFT 的基础上用户可以通过 Few-shot 来告诉模型一些非常细微的个性化要求比如“请模仿鲁迅的文风写这段话例子如下……”。PPO-ptx(核心突破点) 这是加入了RLHF基于人类反馈的强化学习后的模型即 InstructGPT 的完全体。它的表现评分最高远超 SFT 和原始 GPT。FLAN T0 这是当时学术界其他优秀的指令微调模型作为对比项说明 InstructGPT 的 RLHF 方案在人类偏好上更胜一筹。Y轴 Likert score李克特量表评分 代表了人类评价者的主观评分。评分越高说明人类认为该模型给出的回答更符合意图、更真实且无害。梳理一下预训练提供了“智力” 就像一个读过万卷书但没受过社会化教育的天才。SFT提供了“规矩” 教会模型基本的工作格式。PPO(Proximal Policy Optimization近端策略优化算法强化学习的策略优化方法RLHF) 提供了“灵魂” 通过不断的人类反馈模型学会了如何以人类喜欢的方式说话避开反人类或无意义的回答。FLAN 的资料产生方式任务模板化 (Task-specific Templates)这道题有这几种问法OpenAI GPT-3/InstructGPT 的方式用户真实数据 (User-driven Data)当人类这样问时他们想要什么FLAN 模式 容易让模型变成“刷题高手”一旦用户问出模板之外的问题模型可能就懵了。OpenAI 模式 因为训练资料直接来自用户模型对 Prompt 的鲁棒性Robustness 极强更能处理模糊、口语化的表达。只用了上万资料而已instruction fine-tuning 是画龙点睛兵贵精不贵多quality is all you needless is more foralignment我们缺乏高质量的 instruction fine-tuning 资料可以以 ChatGPT 为师对 ChatGPT 做逆向工程让 GPT 想任务根据任务想可能的提问方式根据提问得到答案小公司都逆向工程来获取 instruction fine-tuning 资料哈哈哈instruction fine-tuning 资料可以通过逆向工程获取但是普通人缺乏足够强大的 pretrain model直到 Meta 开源了LLaMA是第一个达到商用级性能且引发全民关注的开源基础模型。LLaMA-13B 在多项指标上超越了 175B 的 GPT-3且能在单张显卡上运行。它真正开启了“大模型平民化”的时代。llama 开源后1 个多月Alpaca、Vicuna基于 llama pretrain 相继出现Stanford Alpaca (2023.03) 底座 LLaMA-7BVicuna (2023.03) 底座 LLaMA-13Bllama 飞入寻常百姓家3、第8講大型語言模型修練史 — 第三階段: 參與實戰打磨技巧 (Reinforcement Learning from Human Feedback, RLHF)提问对回答不满意可以点刷新GPT 会重新回答你可以根据对新的回答评价GPT 收集这些人类反馈后可以进一步 fine-tuning 模型第一阶段self-supervised learning第二阶段supervised learninginstruction fine-tuning第三阶段RLHF微调让人觉得好的答案输出概率高一些让人觉得不好的答案输出概率低一些有时候人类写出正确答案不容易但是容易判断好坏、对错Instruction fine-tuning每次接龙都是对的不一定结果是最好的學習對生成結果做通盤考量中间先堵死自己的棋子最后才能获得胜利弃子争先”的围棋哲理真正的胜利不在于局部得失而在于全局视野虚竹“自杀”白棋恰似放下自我方得新生。“珍珑棋局”已成为中文语境中 “看似无解、实则需跳出框架” 的代名词RLHF 的全局观和其类似不是每一步最优最后一定会胜利文字接龙棋盘接龙整体看起来是生成式学习每一步是分类问题alphaGo跟着棋谱学习人类老师下哪里就跟着下哪里语言模型和下围棋有很多相似之处但细节上也是有很多差异的eg围棋输赢有确定的规则但是语言模型答案的好坏有时候没有统一的标准是不明确的语言模型产生两个答案让人类选出更好的比让语言模型产生一个答案让人类选 yes or no 更简单因为一个没有对比就没有伤害哈哈哈一个答案有时候也没有很好的标准判断到底好 or 不好alphaGO 强化学习时对手可以是 alphaGO 的其它版本但语言模型的 RL需要人类介入如何更有效的利用人类的回馈勇者欣梅尔虽过世但一直激励着芙莉莲类比人类一直激励着语言模型虽然人类不在哈哈哈如何做到呢这个想象出来的人类火之意志曼巴精神答案是回馈模型reward model根据人类的喜好训练回馈模型问题和答案匹配回馈模型的得分变高问题和答案不匹配回馈模型输出的分数降低Stage 1: SFT (Supervised Fine-Tuning instruction fine-tuning) —— 工程师编写指令和理想回答对预训练模型进行有监督微调。Stage 2:RM (Reward Model) Training—— 训练奖励模型。Stage 3: RLHF (Reinforcement Learning from Human Feedback)把问题和答案一起输入给回馈模型然后根据回馈模型的得分 fine-tune 语言模型让好的答案出现的概率高不好的答案出现的概率低最小参数量的 GPT 模型经过 RLHF 后也优于最大的没有经过 RLHF 后的模型和虚拟的人类学习过度了也不一定好横轴 (KL from supervised baseline) 代表模型偏离“初始状态”SFT 之后的状态的程度。数值越大说明强化学习PPO对模型的改变越大模型为了拿高分行为变得越“极端”。纵轴 (Fraction preferred to ref) 代表胜率。即模型生成的摘要有多少比例被认为比参考答案Baseline更好。虚线 (RM prediction - 奖励模型的预估)随着训练进行奖励模型认为模型表现越来越好胜率一路飙升最终趋近于 1.0近乎完美。这说明模型成功学会了如何讨好“奖励模型”来拿高分。实线 (Actual preference - 人类的真实偏好)上升期左侧 训练初期随着分数的提高人类确实觉得摘要质量变好了。崩盘期右侧 当 KL 散度超过一定阈值约 10 左右后人类真实评分开始断崖式下跌。当模型为了拿高分而疯狂偏离初始分布时它生成的摘要在人类看来已经变得怪异、冗长或者充满了某种特定的小花招失去了实用价值。类似于 GAN成功讨好 or 欺骗了 reward model过度优化Overoptimization导致的 ChatGPT “性格缺陷”。极度啰嗦Excessive verbosity在 RLHF 的数据标注中人类标注员往往下意识地认为“更长的回答更专业、更努力”。奖励模型捕捉到了这个偏差导致模型学会了通过增加字数来“刷分”。过度道歉与自我怀疑Excessive apologies, self-doubt为了避免冲突和误导导致被扣分模型选择了最安全的策略无底线道歉。喜欢以“作为 AI 语言模型”开头“As an AI language model”这是 Safety Alignment安全对齐 过度的结果。为了通过人类对安全性、客观性的考核模型被训练出了一套标准的“防御性话术”。模棱两可Hedging language给出明确答案是有风险的。如果答案错了在 RLHF 中会得到极低的评分而给出一个平庸但“正确”的废话则能稳拿及格分。过度拒绝Over-refusals模型在训练中被植入了过于严苛的过滤器。为了绝对安全模型宁可错杀一千拒绝正常请求也不放过一个回答有害请求。缓解虚拟老师方法缺陷的方法DPOKTO对比了大型语言模型LLM对齐Alignment技术的三种主流演进路线经典的 RLHF以及两种更高效的替代方案 DPO 和 KTO。虚拟老师可以是另外一个 LLM这个语言模型甚至可以是语言模型本身什么答案叫做好其实是没有固定标准的eg 从不同角度来评判答案标准会不一样很多时候人类自己都无法判断回答的好坏如果提供了一个不正确的反馈可能就会把模型引导到一个不正确的方向上就没有办法变得更好alignment对齐人类的偏好和需求4、In-context Learning、Instruct Learning、RLHF 的区别与联系In-context Learning 是“给个样子照着做”Instruct LearningSupervised Fine-TuningSFT 是“手把手教怎么做”而 RLHF 是“做完之后看脸色”。维度In-context Learning (ICL)Instruct Learning (SFT)RLHF (强化学习)阶段推理/使用阶段训练/微调阶段训练/精修阶段参数变化不更新参数更新参数更新参数数据形式3-5 个 Prompt 示例万级“指令-标准答案”对十万级“好坏排序”数据人类角色提供参考示例编写标准教科书担任裁判进行打分主要目的快速适配临时小任务让模型学会“听从指令”让模型更安全、更有灵性预训练让模型博览群书拥有了智力。SFTInstruct Learning instruction fine-tune让模型学会规矩不再乱说话。RLHF让模型学会讨人喜欢变得博学且优雅。ICL是用户在最后使用时给模型加的一点“定制化小贴士”。5、RLHF 和 alignment 的关系RLHF Reinforcement Learning from Human Feedback基于人类反馈的强化学习它是一种训练方法流程通常是先训练一个基础模型Pretraining人类对回答打分 / 排序训练一个奖励模型Reward Model用强化学习常见是 PPO优化模型RLHF 本质用“人类偏好”当奖励信号训练模型Alignment 是目标让 AI 像人类期望那样行为RLHF 是实现这个目标的核心方法之一用人类反馈训练6、参考https://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.phphttps://www.bilibili.com/video/BV18fXbY6Eis/?spm_id_from333.1387.homepage.video_card.clickvd_source8e91f8e604278558ec015e749d1a3719