LightNest / docs /DESIGN.md
LIghtJUNction's picture
Add the October 17 experiment source without the result archives.
3f69d68 verified
|
Raw History Blame Contribute Delete
4.69 kB

LightNest:可执行程序与训练器的协同迭代

LightNest 的目标是面向 AI 的通用二进制理解、编辑与验证系统。自然语言是目标和约束;二进制是观察、推理和修改的对象。以下是目标架构,不是当前能力声明。

核心循环

当前产物 A_t(LightNest 可执行程序)读取自然语言目标和自身/目标文件,按需请求证据,提出候选 A'。训练器 T_t 根据受限运行得到的反馈训练 A'。独立验收器 J 比较 A' 与 A_t,只有通过正确性、回归和资源检查才接纳为 A_(t+1)。下一轮从接纳后的真实文件、内嵌权重及模型结构开始,而不是重新套用原始模板。

训练器本身也作为另一个候选产物:A_t 可以提出 T',在相同起点、任务分布和计算预算下,比较 T' 与 T_t 培养出的模型。先冻结一个、改另一个,再测试组合,才能知道改进来自哪里。仅降低自报 loss、改掉测试、删除失败样本或放宽预算,不算进步。

J 在两个可变产物之外。它保留封存的验收题、资源预算、实验种子、有效性规则和回滚点。训练器可以改变采样、优化器、课程和内部代理奖励,但不能修改 J 的验收标准。研究者可以有版本地更新 J;被评估的候选不能自行更新它。

二进制不是一条超长 token 序列

每次观察是一个有限窗口,附带文件版本、偏移、长度、来源、置信度和未覆盖范围。

  • 格式索引定位区段、张量、入口、引用和依赖;索引不等于语义理解
  • 局部编码器分析指令或数据块;关系图连接调用、控制流、数据流和跨区引用
  • 调度策略依据问题选择下一段证据,而非无条件顺序扫完整个文件
  • 文件、索引和证据存在外部存储;上下文只装当前问题所需子图
  • 可复用分析必须绑定内容版本;局部修改使相关区段及依赖结论失效
  • 未知格式提出多个结构假设,再用边界、校验和、交叉引用、可复现实验逐个验证

有限内存不意味着零成本。全文件哈希和完整扫描仍是 O(文件大小) I/O;巨型压缩包需要解压预算;加密、缺失运行环境和不可判定的行为问题可能无法解决。系统应报告覆盖范围和不确定性。

学什么,不能写死什么

不能在运行时用“题目名称 → 参考程序”查表代替模型生成。训练集中的参考程序和独立 oracle 是监督/验证材料,不是生成器的答案库。模型需要学习自然语言、程序结构、执行结果和字节变化之间的联系。

课程应逐步覆盖指令、基本块、分支、循环、内存访问、函数调用、ABI、链接、容器、权重张量和架构变化。现有 RV32 课程只是最小受限试验场。压缩包、数据库、固件、多媒体、未知格式、无源码修复和跨架构移植尚未实现。

数据拆分至少有四层:新措辞、等价但不同字节的编码、未训练任务、未见格式/架构。增加参数量、训练步数和数据变换需分别对照;同时改变三项只能说明组合变化,不能归因给其中一项。

自修改与验收

补丁先落到隔离副本:验证源哈希和旧字节、范围、格式/张量依赖、有限数值、资源预算;执行验证后记录候选哈希、父哈希和证据。失败保留原件。只允许通过验收的产物继续繁殖。

修改模型结构不是改一个整数就完成。注意力头数在维度可整除、算子支持时可以复用张量形状;改变层数、宽度或算子还必须迁移张量布局、推理器和训练状态,并重新验证。目前只实现 float32 元素和兼容头数的受限修改,不支持任意架构重写。

不得直接在宿主机执行未知候选原生代码。当前生成的 RV32 在有 fuel 和内存上限的模拟器里执行。未来训练器候选需要可限制系统调用、文件、网络和资源的实际 VM/WASM/沙箱;进程超时和内存上限本身不是完整隔离。

本轮实现与尚缺环节

已实现:有限读取、ELF/LNW1 结构索引、课程扩展、独立语义测试、小模型真实训练、候选副本补丁、祖先哈希链、外置验收回调、有限动作 REINFORCE 试验;具体已运行结果见实验报告。

尚未实现:一个可执行文件独立携带完整训练器并自主递归改进;学习得到的通用二进制补丁策略;训练器原生二进制的安全协同进化;稳定的跨任务泛化。Python 主机目前组织训练和实验,不能把这个事实包装成已经完成的自主编译器。