Naive Bayes is all you need ?
By 苏剑林 | 2023-06-08 | 57575位读者 | 引用很抱歉,起了这么个具有标题党特征的题目。在写完《NBCE:使用朴素贝叶斯扩展LLM的Context处理长度》之后,笔者就觉得朴素贝叶斯(Naive Bayes)跟Attention机制有很多相同的特征,后来再推导了一下发现,Attention机制其实可以看成是一种广义的、参数化的朴素贝叶斯。既然如此,“Attention is All You Need”不也就意味着“Naive Bayes is all you need”了?这就是本文标题的缘由。
接下来笔者将介绍自己的思考过程,分析如何从朴素贝叶斯角度来理解Attention机制。
朴素贝叶斯
本文主要考虑语言模型,它要建模的是p(xt|x1,⋯,xt−1)。根据贝叶斯公式,我们有
p(xt|x1,⋯,xt−1)=p(x1,⋯,xt−1|xt)p(xt)p(x1,⋯,xt−1)∝p(x1,⋯,xt−1|xt)p(xt)
关于NBCE方法的一些补充说明和分析
By 苏剑林 | 2023-05-31 | 31677位读者 | 引用上周在《NBCE:使用朴素贝叶斯扩展LLM的Context处理长度》中,我们介绍了一种基于朴素贝叶斯来扩展LLM的Context长度的方案NBCE(Naive Bayes-based Context Extension)。由于它有着即插即用、模型无关、不用微调等优点,也获得了一些读者的认可,总的来说目前大家反馈的测试效果还算可以。
当然,部分读者在使用的时候也提出了一些问题。本文就结合读者的疑问和笔者的后续思考,对NBCE方法做一些补充说明和分析。
方法回顾
假设T为要生成的token序列,S1,S2,⋯,Sn是给定的若干个Context,我们需要根据S1,S2,⋯,Sn生成T,那么就需要估计p(T|S1,S2,⋯,Sn)。根据朴素贝叶斯思想,我们得到
logp(T|S1,S2,⋯,Sn)=(β+1)¯logp(T|S)−βlogp(T)+常数
NBCE:使用朴素贝叶斯扩展LLM的Context处理长度
By 苏剑林 | 2023-05-23 | 97501位读者 | 引用在LLM时代还玩朴素贝叶斯(Naive Bayes)?
这可能是许多读者在看到标题后的首个想法。确实如此,当古老的朴素贝叶斯与前沿的LLM相遇时,产生了令人惊讶的效果——我们可以直接扩展现有LLM模型的Context处理长度,无需对模型进行微调,也不依赖于模型架构,具有线性效率,而且效果看起来还不错——这就是本文所提出的NBCE(Naive Bayes-based Context Extension)方法。
摸石过河
假设T为要生成的token序列,S1,S2,⋯,Sn是给定的若干个相对独立的Context集合(比如n个不同的段落,至少不是一个句子被分割为两个片段那种),假设它们的总长度已经超过了训练长度,而单个Sk加T还在训练长度内。我们需要根据S1,S2,⋯,Sn生成T,即估计p(T|S1,S2,⋯,Sn)。
最近评论