阅读提示:
本篇系列内容的是建立于自己过去一年在以LLM为代表的AIGC快速发展浪潮中结合学术界与产业界创新与进展的一些碎片化思考并记录最终沉淀完成,在内容上,与不久前刚刚完稿的那篇10万字文章 「融合RL与LLM思想,探寻世界模型以迈向AGI」间有着非常紧密的联系,可以说,这篇长篇文章中的很多内容也是基于这些碎片化的思考与沉淀,当然也正是这样的一个个碎片化的、看似玄幻大胆、step by step的探索过程,才促成我最终完成那篇看上去并不是特别易读的文章。
因此,这个系列文章将以笔记的形式,去重新回顾体会一下自己去年的这些碎片化思考与探索历程,并希望将这些碎片化的、step by step探索式的思考与历程分享给大伙。一方面去回顾、修正自己之前的思考和观点,一方面作为那篇长文阅读的补充参考,并在其中的内容中标注出与其相关的阅读指针与提示。
在内容记录形式上,因为一年前自己的思考历程按时间顺序记录呈现出一定的主题割裂与内容的碎片化,我将按照时间线顺序向大家呈现一年前自己的想法,内容上可能进行一些合并和整合但会尽量保持原文内容不变。
另外大伙需特别注意的是,因为保持了原始记录时内容的不变(仅修改笔记上的笔误与错字),一年前的想法跟当前的认知可能会有较大的差异和改变,也会存在一些不成熟观点,千万不要被我当时片面的观点所误导。主要是想给大家抛出一些过去技术进展当中存在的一些问题和关键点,当然坦率地说,自己确实也在回顾中针对某些想法有了新的思路!如果大家针对我过去或刚完稿的那篇文章有更有建设性的意见甚至批评指正那就更好了!
最后,为了不让这个系列笔记显得不那么单调,在每一篇内容中会附上一些过去自己经历的有趣的生活照片或的图片,有吃喝玩乐,有学术美图,也有搞笑娱乐。
「2023年02月28日 · ICL与SFT的羁绊」
背景提要 ↓
今天回忆的时间点仍将停留在1年3个月之前,在ChatGPT刚刚面向公众开放服务的第5个月当中,除了模型其强大的内容生成能力给大众带来的持续冲击与一次又一次的惊喜之外,更多长期在这一领域从事研究或工作的人们也在逐渐接受和改变着之前自己无论从事于AI算法领域,亦或是AI工程化、AI产品设计的诸多工作内容与形式,其中有一项对于LLM来说非常特殊的关联附属品,不管是对于模型在训练阶段的算法建模来说,还是模型在推理与应用重构方面均变得尤为重要,即「prompt」。
当前,prompt技术已经成为人们围绕大语言模型·LLM的一项重要工具或技能,如不管是与在LLM的内容交互生成领域中的角色扮演、长上下文理解、COT或*OT等思维推理模式还是当下的RAG或Agent框架等等,可以说背后都能隐约的感受到prompt在其中的作用与内涵。
而隐藏在prompt技能背后的始作俑者,是来自于去年火热的「In-Context Learning-ICL」思想,我们看到在当初围绕ICL这一现象,诸多研究团队展开了探寻其背后原理的道路,有“微信AI团队以标签为锚的LLM学习方法探索研究”;有“来自北大、清华、微软的研究者将 ICL 理解为一种隐式微调,并提供了经验性证据来证明 ICL 和显式微调在多个层面上表现相似”;有当时的代表性论文”Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?“对ICL展开了论证;在这些论述的结论中,却始终无法很好的将ICL与SFT在模型训练与模型推理过程中的神经网络反向梯度与正向信号激活形式化统一起来,当然这也可能为后续的角色扮演、长上下文理解、COT或*OT等思维推理模式还是当下的RAG或Agent框架等留下了伏笔。
接上一篇20230221·「Little Prompt,Big Power」回忆录中的内容,其中有提到关于基于「In-Context Learning-ICL的prompt工程」与「基于模型SFT」两者之间隐约有着某种结果上的等效性或在底层概念逻辑上存在某种抽象形式的等价,因此,依稀记得那一天清晨散步时的进一步梳理和思考,在对于两者之间在底层概念逻辑上存在着更深层次等价性的猜想与假设,有着更进一步的理解,如下是本次记录相关内容,结合20230221·「Little Prompt,Big Power」的思考进行了重新梳理。
同样,需大家注意的是:因为时间跨度比较长且为了尽量将我的思考内容记录维持原样不做改动,难免那那的思考会存在不成熟、片面、局限甚至是表述不清、错误的观点,但即便这样,我仍然相信并期待在字里行间中,大家能够体会并挖掘出一些对自己当下和未来的一些有价值的prompt。- 在自己回顾时之前的记录时,确实也涌现了对曾经的某一问题的新的体会和想法。
ps,大家也可以对照「融合RL与LLM思想,探寻世界模型以迈向AGI」这篇文章的上篇结尾处与下篇开头部分来看待prompt这一思想,我在其中也有过相关的细致的论述,并在文末,将截取「融合RL与LLM思想,探寻世界模型以迈向AGI · 上篇」的结尾处部分内容,方便供大家一起参考阅读。
记录正文 ↓
ICL与SFT的两种对模型本身的结构和任务推理模式感觉一种是scale-out,一种是scale-up的;- 在上一篇回顾记录中有提到,大家可参考
LLM的预训练生成模式相对比传统判别模型的这种判别模式反映出当在做下游任务时,SFT会对信息熵即现实世界知识压缩的更具有领域目标性·取决于目标任务的设计;
还有一种两者间(LLM的ICL与传统判别模型的SFT)区别的感性直觉:LLM在任务训练以及推理的模式是基于tokenize的,传统判别式模型是任务指定性的,虽然可能两者的语义空间离散度是一样的,但对于模型的输入与输出侧的这种模式的不同,可能会衍生出ICL和SFT对于我们来讲的两种底层的数学变换模式;- 训练过程中的目标优化形式的不同,这里可能需要用一个「目标空间组合优化」这一新概念来尝试阐释。- 感兴趣的同学请私信留言或加我微信探讨。
LLM在这种tokenize的预训练阶段,可能对于输入与输出侧的序列的整体分布上的映射在其中的模型底层数学变换中会针对不可预知的下游特殊任务模式带来一些语义空间的信息增益(拟合),即可能习得某种发散性的知识,但更抽象的、更领域纵深化的一些知识无法形成有效的泛化,而对于SFT来说,带来的领域特定任务模式的这种所谓的知识压缩泛化效果会更好;- 同样,这里也蕴含着「目标空间组合优化」这一整体思想
可能对于传统判别式模型从任务模式上来说,更偏向于细分领域抽象任务,且对于tokenzie这种面向的更广域的概念表征世界中来说,很难形成领域知识的压缩或模式的泛化能力,即LLM预训练阶段过程中,在【整体基于模型结构的数学变换任务收敛方向】上,很难自然的在输出隐层阶段形成很好的模型预测效果,因此需要SFT或RLHF,SFT或RLHF的是这类细分领域数据的分布拟合。
补充两周前的两种(ICL&SFT)模式的等价或等效性,可参考上一篇其中论述内容:(1)数学变换上的等价→在纯数学维度上,一种是所谓的scale out,一种是scale up,一种是上下文作为变量的变换,一种是参数作为变量的变换,最终都是对数据分布的一种底层数学变换模式;(2)不同任务类型及对应不同模型结构变换上的等价→(2)这里可能需要分别by任务和by模型结构来看,所谓两种范式的等效性来自于底层数学变换本质相同(随具象性有差异),即模型结构的数学变换本质相同,详细解释为:对于两者不同的输入数据,模型会依据本身的模型结构及参数进行变换调整,其中重要的是变换的策略会呈现多样性及类似于生物学的多功能性,看起来是完全两个不同的本质,但其实结构所带来的变换的本质是一样的。比如类GPT LLM,在推理过程中,由于prompt的不同,导致MOE模型结构中的专家模块指引上的变换路径(这种变换当然也依赖模型结构影响),而传统的小模型,由于其模型结构与上述LLM大模型差异巨大,针对不同的输入,模型肯定也会依据自身的参数结构进行推理过程中的变换,只不过变换的复杂度会小很多(不会产生类似参数finetune这样大的幅度,而上述LLM举例来说由于内部使用了attention,moe或adapter等机制,这种变换达到了SFT效果)。
另外,今天与小伙伴们在测试chatGPT的一个医疗交互场景中,直觉性的感受到chatGPT中模型结构的一种内涵:如往往某些时候,LLM模型中的输入表征浅层对于prompt所给予的信息量是比较少的,然而即便这样少的信息量提示差异,模型往往在生成的结果上会体现出非常大的差异甚至是复杂度完全不同的内容(如COT中的step by step),当然,表面上可以归结于模型预训练阶段的训练样本的记忆,但其背后的内涵可能是模型结构的本质不同,如模型内通过多层的特征变换实现了某种信息扩展,在扩散的过程中会通过纯模型网络结构及结构中激活参数进行其中神经网络单元的激活,被扩散到的神经元算子会根据少量而抽象的prompt经过多隐层的特征变换(本质是数学上某种正向或反向变换)来进行激活,这里可能也是一个子模型结构,最简单的比如attention,而非input输入的信息去左右模型的运算 - 即:知识被真正的融入模型结构参数中了。
因此,在得到针对上述两种任务所对应的两种模型推理模式中的In-Context Learning-ICL和SFT来说,通过分析其两者之间的模式差异后,我们不难发现两者之间隐含着某些共性的东西,比如输入域表征与模型参数对于模型任务的推理(本质上是某种形式的数学变换)从底层数学变换的角度来看其本质是相同的,看似的表象上的差异则是这两者之间数学变化的复杂程度及与之对应的模型结构的复杂性的区别。
「章节节选」
除了上述向大家所阐释的LLMs的token化生成式推理模式以及对应的模型架构的两个关键内涵之外,接下来想再跟各位读者一起分享探讨一下大模型(LLM)中的「In-Context Learning」这一概念和意义-不光局限于LLM本身的意义,甚至将「In-Context Learning」这一概念更广泛的延展到模型任务推理以及模型训练的普遍而深远的意义之上。之所以要将目光聚焦到「In-Context Learning」这一概念,主要原因更多是由于在LLM中Context对于模型训练任务过程中所采用的训练思想,模型推理过程中的few-shot和zero-shot以及带来的prompt learning&prompt engineering等一系列思想有着深刻的内涵联系。
Think:如果上述所提及的token化是针对于整个模型任务的输出侧的一种普遍适应性的创新,那么Context所涉及的上述一系列内涵思想则代表了对于模型任务输入侧的一种普遍适应性的创新。这里的“普遍适应性”则代表了模型处理广泛而普遍任务的一种泛化能力,同时利用上下文所实现的一系列x-shot或prompt engineering似乎与模型本身参数的Tuning又有着些许隐含的关联,或者在某些层面上两者有着本质的同一性。
在探索「In-Context Learning」这看似神秘和诡异的现象前,希望能先从几个问题入手,尝试从问题出发,逐步剥开其中的奇妙内涵。
在ChatGPT于2022年10月正式发布前,围绕语言模型的「In-Context Learning」「few-shot」「zero-shot」「prompt engineering」等思想已经有很多研究论文涌现出来,不同于传统判别式推理模型,其更多的提示场景用于解决生成式推理任务,而这种生成式推理任务场景似乎又与Prompt-Learning这种模型基于Prompt的训练、推理方式又有着某种天然的匹配与契合性。然而随着ChatGPT发布后为人们所带来的惊艳以及席卷全球的火爆热度之余,相当一部分AI研究者也将目光从这种惊艳与热点上缓缓移开,回归到冷静的思考,并结合之前自身所在的AI研究领域所进行的一系列技术路径的尝试及研究成果与ChatGPT在任务性能、任务类型、任务扩展、任务范围、训练思想、模型结构等维度进行反思与探寻,以寻求在技术与方法本身在底层逻辑上实现一定的对齐与自洽。
问题一:为什么「In-Context Learning」或相关的「few-shot」「zero-shot」「prompt e与gineering」等思想能打破传统训练范式并建立新的技术路径进行模型下游任务的SFT,而不用在调整模型任何参数的情况下,在实现传统模型精调后的目标及Benchmark测试中,已经媲美或超越相当一部分的原有模型微调任务的SOTA(当然这里离不开LLM所采用的海量训练数据Pre-training下习得、压缩的广泛而通用知识)。
问题二:LLM与传统模型的任务有哪些差异和相同的点?
问题三:是否所有传统模型下的任务都能很好的尝试用LLM来有效解决?
针对问题一,在学术界和产业界一直有着相关理论上探讨和争论:
如在推理阶段,研究人员专注于基于给定的演示来分析In-Context Learning-ICL能力是如何运行的,因为不涉及显式学习和参数更新,通常从梯度下降的角度进行分析,并将ICL视为隐式微调。在这个思想框架下,ICL过程可解释如下:通过前向计算,LLM生成关于演示的元梯度,并通过注意力机制隐式地执行梯度下降。实验也表明,LLM中的某些注意力头能够执行与任务无关的原子操作(例如复制和前缀匹配),这与ICL能力密切相关。
为了进一步探索ICL的工作机制,一些研究将ICL等效地抽象为一个算法学习过程。具体而言,LLM在预训练期间基本上通过其参数对隐式模型进行编码,通过ICL中提供的样例,LLM可实现诸如梯度下降之类的学习算法,或者直接计算闭式解,以在前向计算期间实现对模型的等效更新。在这个解释框架下,已经表明LLM基于ICL可以有效地学习简单的线性函数,甚至可以使用ICL学习一些复杂的函数,如决策树。
因此,在LLM在进行训练过程中,通过学习到的大量“Concept”,掌握了诸多与Concept相关的多种多样文本级别的潜在变量,使得Concept结合非常多的潜在变量指定了文本语义的方方面面,在推理过程中,学者猜测LLM通过本身所具备的学习能力,在进行ICL过程中“借鉴”到其中的隐含的Concept,等效于隐式的对自身进行了精调。
而要搞清楚问题一的本质,可能要将问题二和问题三一起联系起来进行分析和探寻,这里尝试给出笔者自己的一些片面的考虑:
对于任何一个模型来说,其核心要素除了包含模型的参数之外、还包含模型的输入(X)、输出(Y)以及所涉及的任务本身,而这里的「任务」对于模型的输入(X)、输出(Y)及对应的模型参数有着多样化的在可变空间的组合(这里把模型所涉及的输入(X)、输出(Y)及对应的模型参数进行概念形式化要素的定义),而不同的组合则依托于模型在前向&反向传播过程中底层形式各样的数学变换(变换的是特征空间里的特征映射亦或概念空间中的概念映射),而多样化的数学变换又与模型本身的结构(这里指DNN/CNN/Transformer..)及多种目标函数的类型息息相关。这里用一张较抽象的示意图将LLM与传统模型进行相对直观对比说明:
如上图所示,任务A对应与传统DL或ML,任务B对应LLM模型,两者最大的差异在于在输入域与输出域的表征空间上两者的拓扑结构上的差异。
对于传统模型对应的任务A来说:其输入域的表征编码空间与输出域的表征解码空间是完全独立且闭集的,因此,可以理解输入域的表征编码空间对于输出域的表征编码空间来说对于任务的目标函数具备某种固定模式映射规律,而这种「固定模式」直觉上(暂未找到一种合适的数学描述来衡量这种抽象概念与量)则更多会受到来自模型中参数的影响。同时,由于模型参数的大小有一定的局限性,因此在此种任务模式下,针对模型进行参数精调训练将会变得更加行之有效。
对于LLM对应的生成式任务B来说:与之对应的输入域的表征编码空间与输出域的表征解码空间均是前文所说的Token化的,且Token集合域处于统一符号空间(语言符号化表征或Sora的Patches化表征),因此模型在进行前向传播推理过程中,直觉上与之对应的模式是非固化的(这里同样由于无法找到一种适合的理论描述来论述这种抽象概念与量),而正是由于这种非固化的数学变换式推理过程中,除了需要更大的模型参数来压缩特征或语义应对这种推理模式外,亦为模型输入侧X提供了推理作用空间变换的权重。而对于模型本身的网络结构来说,这种输入域的表征编码空间与输出域的表征解码空间的全局Token化,也为模型的通用性及推理深度(如系统2中的COT、TOT等)提供了潜在空间。
因此,在得到针对上述两种任务所对应的两种模型推理模式中的In-Context Learning-ICL和SFT来说,通过分析其两者之间的模式差异后,我们不难发现两者之间隐含着某些共性的东西,比如输入域表征与模型参数对于模型任务的推理(本质上是某种形式的数学变换)从底层数学变换的角度来看其本质是相同的,看似的表象上的差异则是这两者之间数学变化的复杂程度及与之对应的模型结构的复杂性的区别。
「奇闻异事&生活配图」
在选择本篇文章的配图时,为了凸显「In-Context Learning-ICL的prompt工程」与「模型SFT」两者间的对比,那就放上两张对应的美食图片吧,一张中式,一张西式,虽然两者之间看起来完全不一样,但最终都是一个目的→填饱肚子,本质上也都是“碳基”的!哈哈!
「融合RL与LLM思想,探寻世界模型以迈向AGI」内容回顾与再版更新
合集PDF版本v6.2已更新,大家可访问百度网盘地址自行下载:
https://pan.baidu.com/s/1dwuviZkL8J7afBhjEQqXqg?pwd=lm51
提取码: lm51
或扫码下载: