在做 PHLAME,Glamin 的替代品。
这个你们会很乐。
我在干的事,是训练一个小神经网络,让它表现得像个编译器。它拿进代码,吐出一个智能体能用来原生执行操作的框架,用冻结权重和学到的表示。
看 Glamin 干活非常迷人。智能体把这套功能当反射用。
问题是,Glamin 用的是可变向量,事后调试变成不可能。
从架构上讲,这是条死路。
PHLAME 是我对 AI 原生语言的第二次尝试,吸收了上一个项目的教训。
我还在做可行性测试,用基础解析器过机械细节,重活留给神经网络。
一门数学不好的语言
首批样本在编译了。就在这儿,我有了一个大发现。
它认为 2 + 2 = 6。
然后它接着走,走到 8,意识到不对劲了。
没错朋友们,我发明了史上第一门数学不好的编程语言。
这算不算个数?
我赌不算。
结果证明,系统本身不差,它只是缺一个架构决定。
所以我打算把一个异步请求机制直接做进学到的执行架构里。系统需要的不是亲自做数学、或其他关键的确定性功能,而是知道什么时候去调它们。
表示与行为
现在,讲点编译器理论!
这里的一些架构点子来自我在 Ruby Tumbler 上的工作,那个实验性的 Ruby 到原生编译器。在那儿,我在探索怎么在中间表示之间转换而不弄坏任何东西。
只要能在两边保住并验证相关行为,表示本身可以长得完全不同。
这就开出一些有意思的可能性。好玩,真好玩!
把流动性放到正确的层
我在 Glamin 上犯的另一个错,是试图发明一门全新的语言。不是一般的语言,是那种 alien 到你必须是个 LLM 或博士才能看懂发生了什么的东西。
这是个问题,因为向量不像程序员那样按逻辑树思考。它们按距离思考。
那么干确实有好处。圈复杂度降为零,但接着你面对的是学习曲线。
所以这次,我想换个干法。既然中间表示这一课已经学到了,现在可以做一种人类能推理、待着舒服的东西,同时吃到智能体先验的红利,再给系统一个它真能用的东西。
源代码可以有常规语法、函数、类和控制流。
后端用学到的关联和向量距离来挑行为,确定性机器负责提供操作和护栏。
两个截然不同的世界,由一个系统接起来。
大概吧。
我还在做。