在 SQL、PostScript 和 Brainfuck 中实现字节级相同的微型 GPT

📌 One-Sentence Summary
作者展示了如何在 SQL、PostScript 和 Brainfuck 中仅使用基于整数的定点算术,实现并训练 Andrej Karpathy 的 microGPT,从而获得字节级的一致性确定结果。
📝 Summary
本文详细记录了在不使用浮点运算的情况下,复制字符级 Transformer(microGPT)的技术历程。通过使用 Q16.48 定点数学运算,作者在 SQLite(使用 CTE)、PostScript 和 Brainfuck 中创建了功能性的推理和训练脚本。该项目强调通过“闸门(gate)”机制进行严格验证,将输出与参考 C 实现进行字节级对比,展示了在资源受限环境中仅使用整数进行 AI 建模的限制与可能性。
💡 Main Points
Transformer 的定点算术
通过使用 Q16.48 定点数学运算(64 位整数带有 48 位小数位),作者避免了浮点运算带来的不确定性,确保了在 SQL 和 Brainfuck 等不同环境下的结果完全一致。
通过“闸门”进行严格验证
项目使用参考“先知(C 程序)”通过校验和对比原始逻辑对数(logits)以及采样字节,确保整数实现在数学上到最后一个字节都是正确的。
跨语言实施的挑战
作者展示了如何克服语言局限性:SQL 需要递归 CTE 来实现循环,PostScript 需要处理乘法过程中的溢出,而 Brainfuck 则由于其极简指令集需要管理巨大的内存带。
AI 任务的计算开销
在 Brainfuck 中训练模型花费了 409 小时,并生成了 210GB 的源文件,说明了使用底层晦涩语言执行 AI 任务的极端开销。
💬 Key Quotes
因为没有参与浮点运算,输出仅取决于权重和随机数生成种子。
一个在标准模型下通过闸门测试而在损坏模型下失败的端口,说明我们对比的是算术,而不仅仅是文本。
仅限整数算术使得这个问题变得可回答。
📊 Article Meta
AI Screening: 88
Source: DEV Community: machinelearning
Author: Nenad Mićić
Category: 软件编程
Language: 英文
Read Time: 7 min
Word Count: 1632
Tags:
AI 与智能应用 , 机器学习 , 数据库 , 大语言模型 (LLM) , PostgreSQL
看标题就点进来了,内容果然没让人失望。
内容翔实,正好需要,先收藏再看。
讲解得很细致,新手也能看懂。
刚好最近在找这方面的资料,太及时了。
不错不错,已加入书签。
很有价值的分享,感谢整理。