一、Kuromi & Melody
Kuromi 是 AJ 送我的第一个礼物,好像是在五道口地下一层买的,当时我们好像还没有正式确立关系,在回去之前,她走进商店买了 Kuromi,然后挂在了我书包的后面。后面很多的日子里我背上书包,都感觉似乎有一只手在牵着我。
Melody 是后来我送给 AJ 的,琢磨着可以凑一对。
嗷对了,AJ 还不相信我能把挂着玩偶的链子解开后再挂到书包上去。
这是一篇记录我配置新电脑,在新电脑上配置系统的过程。
之所以取名叫作“没有银弹”,是因为我被挑选硬件、软件的过程折磨的精疲力竭。“没有银弹”虽然是一个老生常谈的话题,但是发现它出现在非软件工程领域,还是非常让人意外的。
没有一个笔记本、可以兼具 PC 的量大管饱和 Macbook 的高续航和漂亮屏幕;没有一个操作系统,可以兼具 Linux 的开发环境相似性、Windows 的普世和 MacOS 的闭合生态;没有一个发行版,可以兼具 ArchLinux 的高可控性和及时性,NixOS 的可复现性,Ubuntu 的稳定性;没有一个图形服务器兼具 Xorg 的适配性和 Wayland 的高性能;甚至没有一个编辑器,可以兼具 Emacs 的键盘操作和 VSCode 的 Remote 功能!
在我各种权衡利弊下,我得到了一个低续航、很沉、没有独显、甚至还不便宜的笔记本;上面装着的操作系统,无法驱动触摸板、声卡和蓝牙;软件包管理形式依然是 pacman
,只要我开始更新,我就要一直更新;依然是老旧的 Xorg,每使用一天就是在向死亡奔赴一天;都 2025 了,我甚至还要被 Emacs 的沉没成本绑架以至于无法使用 VSCode。
这篇工作比较缝合,它引用了 3 个 idea:
- Flash Attention 和 pass 抽象
- TeAAL 和它使用的 Einsum 规范
- Extended Einsum
TeAAL 提出用 Einsum 的形式去描述算子,并指导加速器的设计。但是 Einsum 只能描述仅包含加法和乘法的算子,对于 Flash-Attension 这种包含指数运算(softmax)和迭代运算的算子无法描述,于是作者借用了 Extended Einsum 的形式描述了 Flash Attension 算子并实现了 FuseMax 加速器,同时论证了 pass 抽象的合理性。
而实际上,TeAAL 提出的用 Einsum 指导加速器设计的思路并没有因为使用了 Extended Einsum 而被拓展;FuseMax 所展现的性能优势,大部分来自于 Flash-Attension 算法本身,而不是其硬件实现。
Flash-Attention 是一种 Attention 算子的实现,相比于传统的实现,它可以降低内存带宽的需求,并且使用更少的片上内存,更适合当前加速器存在的 memory bound。为了达到这个目的,我们需要:
当我们提到大模型 LLM 的时候,总是和 Transformer 这种架构联系在一起,似乎只有使用了 Transformer 架构的深度学习模型才配叫作大模型。
不过以我目前浅薄的认知,我倒觉得 Transformer 并不是 LLM 的核心特征,因为 LLM 的算法变化很快,Transformer 从 2017 年到现在有了多种变体,也有完全不采用 Transformer 架构的 AI。我个人感觉 LLM 的核心有两点:
我希望在下文中记录一下关于 LLM 或者 Foundation Model 的基础知识,以避免被这个时代抛下太久。