Decoder-only的LLM为什么需要位置编码?
By 苏剑林 | 2024-09-01 | 17317位读者 | 引用众所周知,目前主流的LLM,都是基于Causal Attention的Decoder-only模型(对此我们在《为什么现在的LLM都是Decoder-only的架构?》也有过相关讨论),而对于Causal Attention,已经有不少工作表明它不需要额外的位置编码(简称NoPE)就可以取得非平凡的结果。然而,事实是主流的Decoder-only LLM都还是加上了额外的位置编码,比如RoPE、ALIBI等。
那么问题就来了:明明说了不加位置编码也可以,为什么主流的LLM反而都加上了呢?不是说“多一事不如少一事”吗?这篇文章我们从三个角度给出笔者的看法:
1、位置编码对于Attention的作用是什么?
2、NoPE的Causal Attention是怎么实现位置编码的?
3、NoPE实现的位置编码有什么不足?
从对称角度看代数方程
By 苏剑林 | 2011-04-29 | 25326位读者 | 引用这些日子来,BoJone迷上了两个东西:最小作用量和对称。这两个“东西”在物理学中几乎占据着最重要的地位,前边已经说过,通过最小作用量原理能够构建起当代整个物理学的框架,体现着自然界的“经济头脑”;后者则是守恒的体现,也对应着自然界的“美感”。本文主要是从最简单的层面谈谈对称。
对称的东西很重要,很美。当然,这里所指的是数学上的对称。数学上有很多问题都可以列出对称的式子,而且由于其对称性,因此求解过程一般比不对称的式子简单不少。据说,当代最前沿的物理学框架都是用群论描述的(包括广义相对论),而群论正是用来研究对称的有力工具,可见,对称和对称的方法在实际中有着广泛的应用。(当然本文不讨论群论,关键是BoJone也不懂群论...^_^)
我们先来看二次方程,根据韦达定理,二次方程都可以表达成下面的形式:
$$\begin{aligned}x_1+x_2=a \\ x_1 x_2=b\end{aligned}$$
这是一个多对称的形式!这里的对称体现在将$x_1,x_2$互相替换后方程形式依然不变。如果我们设$x_1=y_1+y_2,x_2=y_1-y_2$,就可以变成
$$2y_1=a,y_1^2-y_2^2=b$$
这样很快就求出$y_1,y_2$了,继而能够求出方程的两个根。
【分享】千万级百度知道语料
By 苏剑林 | 2018-01-30 | 78823位读者 | 引用发布
2018年01月30日
数目
共1千万条
格式
[
{
"url": "http://zhidao.baidu.com/question/565618371557484884.html",
"question": "学文员有哪些专科学校",
"tags": [
"学校",
"专科",
"院校信息"
]
},
{
"url": "http://zhidao.baidu.com/question/2079794100345438428.html",
"question": "网赌和澳门赌有区别吗",
"tags": [
"网络",
"澳门",
"赌博"
]
}
]
测试一个强悍的功能——ScienceWord
By 苏剑林 | 2009-11-22 | 38139位读者 | 引用与向量的渊源极深的四元数
By 苏剑林 | 2010-08-27 | 31321位读者 | 引用当我们在使用向量进行几何、物理研究的时候,是否曾经想到:向量竟然起源于“数”?
当向量还没有发展起来的时候(虽然“有方向有大小的量”很早就被人们认识),复数已经得到了认可并且有了初步应用。当我们把复数跟向量联系起来时,我们也许会认为,因为复平面表示的复数运算与向量有着相似之处,才把复数跟几何联系起来。然而事实却相反,向量是从对复数乃至一种称为“四元数”的东西的研究中逐渐分离出来的。换句话说,历史中出现过“四元数”与向量分别研究几何的阶段,麦克斯韦(Maxwell) 将四元 数的数量部分和矢量部分分开,作为 实 体处理,作了大量的矢量分析。三维矢量分析的建立,及同四元数的正式分裂是18世纪80年代由Gibbs和Heaviside独立完成的。矢量代数被推广到矢量函数和矢量微积分,由此开始了四元数和矢量分析的争论,最终矢量分析占了上风。因而“四元数”渐渐离开了教科书。不过,“四元数”的一些特殊而巧妙的应用,仍然使我们不至于忘记它。
从费马大定理谈起(四):唯一分解整环
By 苏剑林 | 2014-08-17 | 42416位读者 | 引用在小学的时候,数学老师就教我们除法运算:
被除数 = 除数 × 商 + 余数
其中,余数要小于除数。不过,我们也许未曾想到过,这一运算的成立,几乎是自然数$\mathbb{N}$所有算术(数论)运算性质成立的基础!在代数中,上面的运算等式称为带余除法(division algorithm)。如果在一个整环中成立带余除法,那么该整环几乎就拥有了所有理想的性质,比如唯一分解性,也就是我们说的算术基本定理。这样的一个整环,被称为唯一分解整环(Unique factorization domain)。
欧几里得整环
唯一分解定理说的是在一个整环之中,所有的元素都可以分解为该整环的某些“素元素”之积,并且在不考虑元素相乘的顺序和相差单位数的意义之下,分解形式是唯一的。我们通常说的自然数就成立唯一分解定理,比如$60=2^2\times 3\times 5$,这种分解是唯一的,这看起来相当显然,但实际上唯一分解定理相当不显然。首先,并不是所有的整数环都成立唯一分解定理的,我们考虑所有偶数组成的环$2\mathbb{Z}$,要注意,在$2\mathbb{Z}$中,2、6、10、30都是素数,因为它们无法分解成两个偶数的乘积了,但是$60=6\times 10=2\times 30$,存在两种不同的分解,因此在这样的数环中,唯一分解定理就不成立了。
Python的多进程编程技巧
By 苏剑林 | 2017-02-19 | 37261位读者 | 引用过程
在Python中,如果要多进程运算,一般是通过multiprocessing来实现的,常用的是multiprocessing中的进程池,比如:
from multiprocessing import Pool
import time
def f(x):
time.sleep(1)
print x+1
return x+1
a = range(10)
pool = Pool(4)
b = pool.map(f, a)
pool.close()
pool.join()
print b
这样写简明清晰,确实方便,有趣的是,只需要将multiprocessing换成multiprocessing.dummy,就可以将程序从多进程改为多线程了。
最近评论