张奇 复旦大学 ChatGPT2023年--大模型报税、写诗、写代码,“无所不能” ChatGPT2023年--大模型“无所不能” 2023年大家拿着锤子到处找钉子 ChatGPT2024年--大模型落地总是“差一口气” ChatGPT2024年--大模型落地总是“差一口气” ChatGPT2024年--大模型落地总是“差一口气” 语言模型无法进行逆向知识搜索,除非知识以逆序出现在预训练数据中 Physics of Language Models:Part3.2,KnowledgeManipulation,Allen-ZhuZ.,LiY.,Arixv2023 MeatAI/FAIRLabs ChatGPTGPT-o1preview号称物理问答达到“博士:水平 ChatGPTGPT-o1preview似乎也不能很好的解决初中数学问题 •在GSM8K和MATH数据集问题的基础上,加⼊了⼀些“陷阱”,构造了MathTrap数据集。•改编后的题⽬很多时候没有定义明确的答案或者⽆解,只有能够同时理解原题和“陷阱”所涉及知识,才能找出其中的⽭盾点,发现“陷阱”所在。•MathTrap_Public上,GPT-o1-preview的回答准确率仅为24.3%•MathTrap_Private上,GPT-o1-preview API的测试准确率为38.0%,相⽐GPT-4 API的36.0%,⼏乎没有提升 为什么? 从飞机发展史看AI发展的核心问题 ChatGPTChatGPT为什么这么强?基础理论对于技术发展至关重要 1903年12月17日,世界上第一架载人动力飞机首飞 ChatGPTChatGPT为什么这么强?同时期各种脑洞大开的“飞行器” ChatGPTChatGPT为什么这么强?莱特兄弟创造“飞行者一号”的历程 1890年代前期莱特兄弟就从新闻、杂志或者照片上看到了德国航空先驱奥托·李林达尔研制的动力滑翔机 1896年5月,塞缪尔·兰利成功试飞了一架蒸汽动力的无人飞机模型 莱特兄弟认为困扰航空先驱们的飞行难题有三点:机翼、发动机以及如何控制飞机 1899年7月,威尔伯·莱特制作了一架长5英尺,形似双翼飞机的箱型风筝用来测试翘曲机翼技术 莱特兄弟兄弟建造了风洞,为200多种不同翼弧的翼型完成了旋转臂测试(一种测量升力和空气阻力的早期手段),并对其中的38种做了更详细的测试,同时也对广受认可的升力方程中的斯密顿系数提出了质疑,当时已经被提出了100多年。 基于展弦比知识和更精确的斯密顿系数,莱特兄弟设计了他们新的1902年款滑翔机 1903年莱特兄弟用云杉木来建造他们配备有动力装置的飞行者一号 https://arxiv.org/pdf/2303.08774 回归基础理论进行分析 ChatGPTChatGPT为什么这么强?语言模型真正做的事情—文字接龙 语言模型的核心任务始终是生成一个“合理的延续”,即根据已有的文本,生成一个符合人类书写习惯的下一个合理内容。所谓“合理”,是指根据数十亿个网页、数字化书籍等人类撰写内容的统计规律,推测接下来可能出现的内容。 17ChatGPT完成像写文章这样的任务时,它实际上只是一遍又一遍地询问:“在已有的文本的基础上,下一个词应该是什么?”——并且每次都会添加一个词。 SomepeoplewenttotheMoon标注人员构造目标答案CD大模型基础大模型1.大模型训练每个阶段分别完成什么功能?10.大模型是否具备推理能力? 2.预训练阶段能记住什么知识?4.什么才是高质量的SFT训练数据? 奖励函数<latexitsha1_base64="lxRiODWDiKsfqfp81f4ZDxA1qxw=">AAAB+nicbVC7SgNBFL0bXzG+opY2g0FIFXZF1DJgYxnRPCBZwuxkNhkyj2VmVghrPsFWezux9Wds/RInyRaaeODC4Zx7OZcTJZwZ6/tfXmFtfWNzq7hd2tnd2z8oHx61jEo1oU2iuNKdCBvKmaRNyyynnURTLCJO29H4Zua3H6k2TMkHO0loKPBQspgRbJ10r/vjfrni1/w50CoJclKBHI1++bs3UCQVVFrCsTHdwE9smGFtGeF0WuqlhiaYjPGQdh2VWFATZvNXp+jMKQMUK+1GWjRXf19kWBgzEZHbFNiOzLI3E//1IrGUbOPrMGMySS2VZBEcpxxZhWY9oAHTlFg+cQQTzdzviIywxsS6tkqulGC5glXSOq8Fl7Xg7qJSr+b1FOEETqEKAVxBHW6hAU0gMIRneIFX78l78969j8VqwctvjuEPvM8fmSKUZg==</latexit>rk1000+GPU月级别训练时间1-100GPU天级别训练时间1-100GPU天级别训练时间1-100GPU天级别训练时间3.如何评价预训练模型优劣?5.有监督微调改变了基础模型的什么?7.强化学习适合于什么任务?8.如何稳定高效的完成RLHF的训练?6.有监督微调的训练策略是什么?9.如何融合外部环境状态以及利用合成数据? ChatGPT实现过程 1.大模型训练每个阶段分别完成什么功能? 需要足够多的“曝光”才能完成记忆 2.预训练阶段能记住什么知识? 达到2bit/参数对于每个知识要达到1000次曝光如果只有100次曝光的话,会减少到1bit/参数 “垃圾数据”对知识获取有显著影响 Wikipediavs.CommonCrawl 直接通过训练语料的统计就可以计算得到知识记忆概率 Physics of Language Models: Part 3.3的研究并未对知识的特异性进行分析 联想总裁杨元庆华为总裁任正非具有别的含义,且出现次数频繁,导致该知识记忆难度大 直接通过训练语料的统计就可以计算得到知识记忆概率 基于模版变换的知识记忆评估方案p(x)p(y)/p(x,y) 预训练阶段思考 预训练阶段主要完成知识记忆+表示学习 •开源大模型已经可以很好的进行句子/段落/篇章表示•OpenAI基本放弃了通过模型知识记忆直接进行问题回答 预训练阶段结论 1.同一个知识点必须用不同的语言表达方式大量重复,模型才能学习到 2.大规模数据的PPL值可以有效衡量模型的知识记忆能力3.具有高知识密度的高质量的训练数据至关重要4.经过足够的训练模型可以达到2bit/参数的知识存储能力 大模型的能力是如何获取的 指令微调—利用少量数据训练模型具备任务能力 知识问答任务: 输入:复旦大学有几个校区? 理想输出:复旦大学现有4个校区,分别是邯郸校区、新江湾校区、枫林校区和张江校区。其中邯郸校区是复旦大学的主校区,邯郸校区与新江湾校区都位于杨浦区,枫林校区位于徐汇区,张江校区位于浦东新区。 作文: 输入:写一个小故事,关于一只熊去海滩,与海豹交朋友,然后回家 理想输出:从森林里走出一只可爱的小熊,它叫贝利。贝利一直对大海充满好奇,于是他决定去海滩看看。他跳跃着穿过河流和草地,终于来到了一片美丽的海滩。贝利兴奋地跑着,感受着海风的清凉。突然,他注意到海滩上有一只憨态可掬的海豹,名叫萨米。萨米正在玩耍,好像是在找贝利这样的新朋友。贝利好奇地走过去,和萨米打了个招呼。萨米非常友好地回应道:“嗨,你是新来的吗?我是萨米,很高兴认识你!”贝利开心地笑了起来,他们迅速成为了好朋友。… 针对特定任务如何构造SFT训练数据 大模型完成知识问答任务 4.什么才是高质量SFT训练数据? ⼤语⾔模型(LLMs)通过在海量数据集上的预训练,能够编码丰富的世界知识,并且可以通过微调将这些知识应⽤于问答(QA)任务。如何有效地微调LLMs以提升QA任务表现的策略仍需研究。 Q1:在SFT阶段需要多少数据才能让LLMs学会QA任务? Q2:不同的SFT数据集如何影响LLMs在QA任务上的表现? Q3:不同LLMs在SFT阶段对数据的需求有何差异? 大模型完成知识问答任务 •使⽤了ENTITYQUESTIONS,包含24个不同话题知识的问答数据集 •12个与地点相关的原始训练集作为训练数据𝐷𝑡𝑟𝑎𝑖𝑛,将它们对应的测试集作为测试集𝐷𝑡𝑒𝑠𝑡,并将剩余12个话题的测试集作为领域外测试集𝐷𝑡𝑒𝑠𝑡−𝑜𝑜𝑑 •给定⼀个预训练的LLM,为了详细分析其在SFT之后执⾏QA任务的表现,应⽤如上定义的多模板补全机制,根据其知识记忆⽔平将训练和测试集均进⾏了5个级别的划分 Yeetal.Empirical Insights on Fine-Tuning Large Language Models forQuestion-Answering,arXiv2024 大模型完成知识问答任务 1.SFT的数据量需求 •使⽤不同记忆⽔平的训练数据𝐷𝑡𝑟𝑎𝑖𝑛−𝑖的来分析每个LLM•将训练数据划分为六个不同的数据量级别,从60个样本到完整数据集不等,并通过从12个话题中均匀抽样来构建训练集•实验结果表明,经过SFT后,仅需60个训练样本就⾜以使LLMs⾼效执⾏QA任务,并展现出强⼤的泛化能⼒•⽆论基础模型或记忆⽔平如何,LLMs在使⽤较少训练样本时的表现优于使⽤960个或全部样本。⼤多数模型在𝑁𝑡𝑟𝑎𝑖𝑛=60时达到或接近最佳表现 大模型完成知识问答任务 2.使⽤不同记忆⽔平的数据进⾏微调的影响 •⽆论使⽤何种数据进⾏微调,LLMs始终对预训练期间记忆较好的知识提供更准确的答案•在特定记忆⽔平的数据上进⾏训练能够提升LLMs在该⽔平知识上的表现•总体⽽⾔,更有效的策略是使⽤⾼记忆⽔平的数据进⾏SFT 大模型完成知识问答任务 3.不同LLMs的数据需求差异 •不同LLM的记忆差距很⼤•使⽤相同的训练数据在不同LLM上训练得到的结果有很⼤差异 大模型完成知识问答任务 •在SFT阶段仅需60条数据就能激活预训练时编码的知识,使LLMs能够有效执⾏QA任务•使⽤不同知识记忆层次的数据进⾏SFT,对LLMs的表现有显著并且有规律的影响•对于QA任务来说最优的SFT数据集因具体模型⽽异 有监督微调阶段的训练方式 有监督微调的四种方式 6.有监督微调的训练策略是什么? 有监督微调的四种方式 1.数学推理、编程和一般能力与SFT数据量的关系如何? 2.当将这三种能力结合在SFT中时,是否会出现性能冲突? 3.导致性能冲突的关键因素是什么? 4.不同SFT策略对复合数据的影响是什么? 实验设置 SFT数据集{D1,D2,...,Dk},每个数据集Di表示一个任务Di= {qi,j,ri,j}j包含输入和回答 测试数据集: 训练数据集: 数学:GSM8KRFT编程:Code Alpaca通用:ShareGPT 数学:GSM8KTestSet编程:Humaneval通用:MT-Bench 实验分析:RQ1单个任务不同数据量 实验分析:RQ2单个任务vs.混合任务 训练数据少时,能力得以提高;训练数据多时,混合数据则使得能力则减弱,与单个任务训练相比,这种现象更为明显。 随着模型大小的增加,在低资源环境下的表现也会随之提高,特别是在数学和一般能力方面。 实验分析:RQ3任务混合比例影响 不同的SFT能力在任务格式和数据分布上存在显著差异时,数据比例的影响是微不足道的。 然而,当存在一定程度的相似性时,数据比例可能导致显著的性能波动。 有监督微调阶段结论 1.参数量大的模型在使用相同数量的数据进行训练时表现出优越性能 2.混合数据来源在低资源场景中提高了性能,但在高资源场景中性能下降 3.数据量直接影响性能,而数据比例的影响在实验设置中不显著 4.DMT策略有效地缓解了性能冲突 知识回答和其他任务冲突如何解决? 大规模微调破