AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Mamba:3 记忆殿堂
浏览次数: 1531

庞德公

编辑郭嘉

若在阅读过程中有些知识点存在盲区,可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果构建生成级别的AI架构则可以关注AI架构设计。技术宅麻烦死磕LLM背后的基础模型。当然最重要的是订阅跟随“鲁班模锤”


Mamba自从出道就一直被拿来和Transformer对比,文章巨多,带着标题的爆炸性字样“颠覆Transfomer”,“全面包围”等等。文章深浅不一,小编认为其背后的设计思路以及演化过程更加重要。为此本专题将从山上有座庙开始,沿着RNN、SSM、S4、HIPPO一路走来。期间抛弃冗杂的文辞,以更接地气的模式协助读者打开新的逻辑思维。

SSM的三种表现形式


接着Mamab2的话题,SSM本身是连续模型,通过某些算法和特殊处理将其改造为能够支持离散输入的模型。其实转化为离散模型之后,它和RNN有了共同点。这个模型和人类记忆的习惯一样,就如同一遍看书,一边总结,一边感悟。



SSM的一个最为关键的特征就是它具备三种不同的表示形式:连续时间、循环模式(离散)和卷积模式。SSM可以在不同的范式之间切换,以便于更加适合特定应用场景的需求。
声明一下在传统SSM文献中,一般输入的符号采用u,输出为y,中间状态为x。之前比较那张比较漂亮的图,中间状态是h,这点读者知晓即可。


连续的SSM和离散的SSM在上文已经详细的介绍过了。这里重点介绍卷积的形态。首先先来回忆下离散SSM的公式如下:
这个时候可以拿出纸和笔,然后从x0开始,迭代的推理出中间状态x序列:

同理可以推理出y的序列,

仔细观察一上图,善于归纳总结的读者一定会发现任何输入[u0,u1,...,uk]都会逐步与如下的序列进行逐一运算,姑且称K之为卷积核


为了更加直观的表达卷积核的意思,下面这幅图比较直观的表达K为卷积核的意义。卷积核K(长度根据场景可以定义,本文的例子长度为3)沿着输入滑动,每滑动一个窗格,与对应的输入相乘,然后累加得到输出。

卷积模式最大的好处在于要计算输出y的向量是可以并行计算的,在训练中具有很大的优势。而循环模式在推理的时候则占据优势。那么是不是可以混合使用呢,明显是可以的。


此时学霸就会举手,ABC都是不变的?没错,在上个章节提到了线性时不变性。LTI规定SSM参数A 、B和C对于任何时间而言都是固定的。这个意味着无论为SSM提供什么顺序,A 、B和C的值都保持不变。这里要Mark一下,带着问题在后面的章节找寻Mamba的解决之道。


勒让德多项式

在继续往下之前,先来补充一个知识点勒让德多项式(Legendre polynomials)。数学上,勒让德函数P(x)是以下勒让德微分方程的解。

前11阶的解和前6阶的曲线如下:

也许你会好奇为什么突然引入这个多项式。这里做些剧透:还记得傅里叶变换么,它允许将某个信号分解为不同频率的正弦函数组合,最终使得叠加之后的总和能够更好的接近原始信号。

而在不远的将来,HIPPO理论也做了同样的事情,只不过使用了不同阶的勒让德多项式代替不同频率的正弦函数来压缩和还原信号

矩阵A与记忆殿堂

上图按照循环模式将SSM的模型展开,矩阵A捕获有关先前状态的信息来构建新状态。那么矩阵A和中间状态就很关键了,它类似人类的大脑,能记忆多少和能够有效提炼上下文就直接决定整个模型的好坏。相信福尔摩斯的矩阵A很强,而老年痴呆症患者的矩阵A就会很弱。

对于类音频和视频这种长序列甚至无限长度的数据流,对于Transformers的架构还是有挑战的。时间序列一般存在噪声,有些序列还是非平稳的。若只是单纯的拟合,而不考虑序列的内在结构,就变得有点暴力破解在Transformers中使用的注意力机制并不能有效地检测基本的时间依赖性,毕竟Token的权重分配缺少了时间因素的考虑,另一方面Token序列有可能存在周期性。KAN也是在这个方面进行一些突破。

来个比较有感觉的场景,若有人让你背诵斐波那契数列,你可以1、 1、 2、 3、 5、 8、 13、 21、 34、 55、 89、 144、 233、 377、 610、 987……背诵一个上午。当然你也可以有其他的选择,记住公式?0=1,?1=1,??=??−1+??−2(?≧2),然后随着公式背出数字。

这有点像福尔摩斯(英国版小短剧)的记忆殿堂。下面伴随着小剧场来看看HiPPO的概念版,看看它是如何解决长序列的记忆能力:

假定有一段输入信号

在t0时刻已经有一段曲线,先不管用什么办法,直接采用多项式拟合。

这时候可以将多项式的系数,就是上面的a0,...,an记录下来作为状态。那意味着无论数据有多少,只需要记住固定的系数。伴随着输入,可以不断的更新这些系数。
这样一来,就将所有的历史编码在状态中,而且不断更新。
任何人的记忆都会存在衰减,例如越近的事情记得越清,越远的事情记得越模糊。这个衰减也是有个曲线的,红色的曲线和蓝色的曲线是一样的,都是指数衰减。高度代表着重建输出信号的精度(误差)。


哇,是不是很有意思。有个这么厉害的中间状态构造器,就可以比较近似的还原出所有的历史信息。要是运用在大模型中,上下文就不再是问题了。人人都是福尔摩斯,一目1000行。

到此已经不知不觉的介绍了HiPPO的原理。按照HIPPO理论方式构建矩阵A,目的是将迄今为止看到的所有输入信号近似为系数向量(勒让德多项式)。与傅立叶变换的区别在于,它不能完美地重建迄今为止的所有原始信号,而是较为精确还原信号,而旧的信号呈指数衰因此,状态 ℎ(?) 主要还是会更多关注最近看到令牌

上图黑色线为输入信号线,蓝色为中间状态(64个系数)红色为重建的输入线。可以发现重建出来的信号,最新的偏差小,越早的偏差大,整体记忆是指数衰减。HiPPO利用了64个系数将10000多个单元进行压缩。SCIFAR是一个长序列模型的评估基准。可以看到拥有HiPPO的S4提高了将近30%。而Attension、CNN或者LSTM维持在60%+。


学霸又开始提问了,那么矩阵A的设计是不是要和HiPPO匹配,上图的矩阵格式有点腔调。没错,下回介绍。到此已经完成Mamba旅途1/3了,还是那句老话,不要着顶,沿途看看风景(知识点)也不错

推荐新闻
RAG系列04:使用ReRank进行重排序
本文介绍了重排序的原理和两种主流的重排序方法:基于重排模型和基于 LLM。文章指出,重排序是对检索到的上下文进行再次筛选的过程,类似于排序过程中的粗排和精排。在检索增强生成中,精排的术语就叫重排序。文章还介绍了使用 Cohere 提供的在线模型、bge-reranker-base 和 bge-reranker-large 等开源模型以及 LLM 实现重排序的方法。最后,文章得出结论:使用重排模型的方法轻量级、开销较小;而使用 LLM 的方法在多个基准测试上表现良好,但成本较高,且只有在使用 ChatGPT 和 GPT-4 时表现良好,如使用其他开源模型,如 FLAN-T5 和 Vicuna-13B 时,其性能就不那么理想。因此,在实际项目中,需要做出特定的权衡。
LangGPT论文:面向大语言模型的自然语言编程框架(中文版)
大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而,对于非AI专家来说,制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。
第三篇:要真正入门AI,OpenAI的官方Prompt工程指南肯定还不够,您必须了解的强大方法论和框架!!!
自从ChatGPT(全名:Chat Generative Pre-trained Transformer)于2022年11月30日发布以来,一个新兴的行业突然兴起,那就是提示工程(Prompt engineering),可谓如日冲天。从简单的文章扩写,到RAG,ChatGPT展现了前所未有的惊人能力。
(三)12个RAG痛点及其解决方案
痛点9:结构化数据QA 痛点10:从复杂 PDF 中提取数据 痛点11:后备模型 痛点12:LLM安全
(二)12个RAG痛点及其解决方案
痛点5:格式错误 痛点6:不正确的特异性 痛点7:不完整 痛点8:数据摄取可扩展性

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询