Skip to content

PHLAME:造一门 AI 原生语言的教训

在做 PHLAME,Glamin 的替代品。
这个你们会很乐。

我在干的事,是训练一个小神经网络,让它表现得像个编译器。它拿进代码,吐出一个智能体能用来原生执行操作的框架,用冻结权重和学到的表示。

看 Glamin 干活非常迷人。智能体把这套功能当反射用。

问题是,Glamin 用的是可变向量,事后调试变成不可能。

从架构上讲,这是条死路。

PHLAME 是我对 AI 原生语言的第二次尝试,吸收了上一个项目的教训。

我还在做可行性测试,用基础解析器过机械细节,重活留给神经网络。

一门数学不好的语言

首批样本在编译了。就在这儿,我有了一个大发现。

它认为 2 + 2 = 6。
然后它接着走,走到 8,意识到不对劲了。

没错朋友们,我发明了史上第一门数学不好的编程语言。

这算不算个数?
我赌不算。

结果证明,系统本身不差,它只是缺一个架构决定。

所以我打算把一个异步请求机制直接做进学到的执行架构里。系统需要的不是亲自做数学、或其他关键的确定性功能,而是知道什么时候去调它们。

表示与行为

现在,讲点编译器理论!

这里的一些架构点子来自我在 Ruby Tumbler 上的工作,那个实验性的 Ruby 到原生编译器。在那儿,我在探索怎么在中间表示之间转换而不弄坏任何东西。

只要能在两边保住并验证相关行为,表示本身可以长得完全不同。

这就开出一些有意思的可能性。好玩,真好玩!

把流动性放到正确的层

我在 Glamin 上犯的另一个错,是试图发明一门全新的语言。不是一般的语言,是那种 alien 到你必须是个 LLM 或博士才能看懂发生了什么的东西。

这是个问题,因为向量不像程序员那样按逻辑树思考。它们按距离思考。

那么干确实有好处。圈复杂度降为零,但接着你面对的是学习曲线。

所以这次,我想换个干法。既然中间表示这一课已经学到了,现在可以做一种人类能推理、待着舒服的东西,同时吃到智能体先验的红利,再给系统一个它真能用的东西。

源代码可以有常规语法、函数、类和控制流。

后端用学到的关联和向量距离来挑行为,确定性机器负责提供操作和护栏。

两个截然不同的世界,由一个系统接起来。

大概吧。
我还在做。