BootGPT:一个从引导扇区运行的语言模型
概述
BootGPT 是一个专门设计的神经网络,旨在直接从 PC 的引导扇区运行。通过利用 512 字节的手写汇编代码,该项目无需操作系统、C 运行时或外部依赖。执行后,系统会生成一个模拟的 Linux 启动日志,包含时间戳、PCI 总线信息和 ACPI 事件,从而提供了一个低级机器学习推理的功能性演示。
架构与实现
该项目通过将工作负载分配到引导扇区和后续磁盘扇区来实现推理。主引导记录 (MBR) 包含核心运行时,而 11.5 KB 的 int8 模型和必要数据则驻留在后续扇区中。运行时在 386 兼容硬件上以 16 位实模式运行。
关键技术组件包括:
- 推理引擎: 汇编代码使用
int 13h进行磁盘加载,使用int 10h进行屏幕输出。神经网络的前向传播使用整数数学(imul和idiv)进行了优化,并直接在汇编中实现了 softclip 激活函数。 - 量化: 模型使用 Python 进行训练,并量化为具有 2 的幂次缩放比例的 int8。这确保了 Python 训练脚本和汇编运行时产生相同的输出,从而允许逐字符验证。
- 数据处理: 为了维持功能性系统的假象,该模型是在大约 3 MB 的伪造
dmesg日志上进行训练的。通过对重复的日志结构进行训练,这个微小的模型可以产生模仿真实 Linux 内核启动序列语法和格式的输出。
与现有技术的比较
BootGPT 加入了一系列挑战 512 字节 MBR 限制的引导扇区项目行列。虽然之前的项目已经在该空间内实现了国际象棋引擎、BASIC 解释器和 C 编译器,但 BootGPT 专门专注于极致的模型小型化。
与 sectorllm 等实现带有注意力机制的 Transformer 架构的项目不同,BootGPT 通过使用具有一个隐藏层的简单字符级网络来优先考虑最小化占用空间。这种设计选择允许整个推理引擎驻留在 MBR 中,而权重和词汇表则存储在后续扇区中,有效地将引导过程转变为生成式任务。