BootGPT:用510字节启动扇区运行神经网络,生成虚构Linux启动日志
速览
开发者 kerlenton 在 Hacker News 上展示了 BootGPT,一个完全驻留在 MBR 启动扇区中的字符级神经网络。整个推理引擎仅 510 字节,从后续 23 个扇区加载 11.5 KB 的 int8 模型,在 386 的 16 位实模式下运行,无需操作系统即可生成虚构硬件的 Linux 启动日志。这意味着一个想法:极简硬件和极致压缩下,神经网络也能运行。
BootGPT 的灵感来自启动扇区演示场景——此前已有人在 512 字节内塞入 BASIC 解释器甚至 C 编译器。作者好奇用神经网络替代程序能做什么,于是训练一个小型字符级模型,让机器在启动时无限生成伪造的 dmesg 输出,包括时间戳、PCI 地址和 ACPI 事件。
整个运行时由手工编写的汇编代码构成:通过 int 13h 读取权重,int 10h 打印,用 cdq/idiv 实现 softclip 激活函数,并利用定时器噪声进行采样。字符串、词表和权重全部存放在数据扇区,这是将推理和 BIOS 交互塞进 510 字节的唯一方式。
项目中最独特的一点是训练与推理的完全一致性:train.py 执行与汇编代码完全相同的整数运算,包括 LCG 采样器,因此 Python 输出和 QEMU 中启动扇区的输出可以逐字符比对。差异分析曾帮助作者发现一个有趣的 bug——开头字符匹配,而后面的偏差揭示了问题所在。
制作和使用方式也很简单:
- 使用
brew install nasm qemu和python3 -m venv即可构建和模拟 corpus_gen.py生成 3 MB 的假 dmesg,每个启动会话只模拟一个内核版本和磁盘,因为真实日志的重复性是让小型模型看起来合理的关键record.py通过 QEMU monitor socket 录制 GIF,无需额外窗口
BootGPT 与之前的项目形成对比:sectorllm 在约 1.2 KB 的实模式汇编中启动真正的 llama2 变换器,运行 Karpathy 的 stories260K 模型;而 BootGPT 走的是另一个极端——整个引擎在 MBR 内部,模型只做一件事:幻觉式生成这台机器的启动日志。
原文Show HN: A language model that lives in a boot sectorgithub.com
#神经网络#boot sector#极客
本文由程序自动抓取公开报道,经 AI 筛选与改写生成,未经人工逐条核实,事实以原文为准。