Autoregressive Language Model on the 6502 Processor
a day ago
- 该项目在仅拥有25KB用户内存(9KB代码,13KB权重)的BBC Micro(6502 CPU)上运行语言模型。
- 该模型采用BitNet三元量化(-1,0,1),每字节打包4个参数,在13KB中存储52k个参数。
- 选择Mamba(SSM)架构而非注意力机制或GRU,因为它需要固定大小的状态,并避免了6502上的不稳定问题。
- 推理使用C语言(CC65)编写,并通过自定义音频线和PlayUEF传输到BBC Micro。
- 词汇表仅限于26个字母加空格,以节省嵌入/解码器层的参数。
- 令牌采样使用查找表进行softmax(指数运算)和固定种子的伪随机生成器。
- 该模型在真实硬件上运行,但并不智能;它展示了在1980年代硬件上运行现代机器学习(ML)的可行性。
- 这项工作强调了机械同理心:在设计模型时考虑硬件限制。