9. 目录结构与复现
2.6k 字 ·
源文件 PROJECT.md 第 1631 行起 ·
goal discipline external
D:\projectofai\
├─ PROJECT.md ← 本文件,唯一权威
├─ README.md ← 快速上手
├─ RUN_ON_SERVER.md ← 云端部署与验证步骤
├─ LICENSE ← MIT(**只覆盖原创代码**)
├─ NOTICE ← ★ 授权范围、来源与定位、边界声明
├─ viz_dashboard.py ← ★ 浏览器实时训练面板(零外部依赖)
├─ core\
│ ├─ task_base.py 任务基类 + 5 项自检门(不通过拒绝训练)
│ ├─ tasks\match.py 延迟匹配任务(已修可识别性 + 打断标签)
│ ├─ tasks\arithmetic.py ★ 算术数据管线(预训练场,§6A)
│ ├─ models.py 6 种循环单元 + 显式时间循环("零件")
│ ├─ glyphs.py 汉字点阵字库(宋体 + 参考框对齐)
│ ├─ logger.py 全程日志 + 动态控制
│ └─ darlin\ ★ 架构本体("这块表")
│ ├─ __init__.py 一句话定义 + 命名体系
│ ├─ tick.py 时间刻 + ln(2) 门禁
│ ├─ barrel.py 持续状态容器(保存/恢复/自主活动报告)
│ ├─ rotor.py ★ 内生动力学(结构 + 驱动,两半)
│ ├─ dentate.py 模式分离(**结论:上游塌缩,暂搁置**)
│ ├─ hybrid.py 混合执行(enc@GPU + 循环@CPU,含正确性验证)
│ └─ escapement.py 可打断 + **标签平衡门禁**
├─ characters\ ★ 角色同人内容(**不在 MIT 范围内**)
│ └─ README.md 非官方声明 + 目录约定
├─ experiments\ 一次实验一个文件
│ └─ tail_to_jsonl.py 纯文本日志 -> jsonl(**含编码嗅探**)
├─ archive\ 归档:Brian2/STDP 时代的证据链(不再推进)
├─ data\ 参考数据(只读)
└─ results\ 输出(每个实验一个子目录)#日志与可视化的约定
优先让实验直接写 jsonl(用 core/logger.py),不要写纯文本再后处理 ——
后者会引入编码问题(§5 第 18 条)且丢失结构化信息。
- 直接写 jsonl 的例子:
exp15_multi_delay_lr.py - 需要事后转换的例子:
exp14_capacity.py(用tail_to_jsonl.py,含 BOM 嗅探) - 面板:
python viz_dashboard.py results 8766→ 递归扫描,下拉切换
#授权边界(重要)
| 目录 | 授权 |
|---|---|
core/, experiments/, data/ | MIT |
characters/ | 见该目录说明,不在 MIT 内 |
| 第三方依赖 | 各自授权 |
架构与角色刻意分离:架构无 IP 关联、可自由开源;
角色内容隔离在 characters/,发布节奏由创作者掌握。详见 NOTICE。
#关键复现命令
## 任务自检门(必须全 PASS,含可识别性)
python core\tasks\match.py
## 训练管线健全性
python experiments\diag_pipeline.py
## 复现已知胜出配置(8 种子,期望 ≥7 成功)
python experiments\exp08_reproduce_winner.py --seeds 8 --iter 1000
## 零输入自主动力学
python experiments\exp10_autonomous.py
## 配置搜索(分片并行)
& experiments\run_search_shards.ps1 -NShards 6 -Iter 1000 -Batch 512
## 实时监控 + 动态调整
python experiments\watch_run.py results\exp11\run.jsonl --follow
python experiments\watch_run.py results\exp11\run.jsonl --set lr_scale=0.5 --note "损失震荡"
## ★ 浏览器可视化面板(实时观察训练曲线 + 延迟扫描热图 + 动态控制)
python viz_dashboard.py results 8766
## -> http://127.0.0.1:8766
## 递归扫描 results/,下拉切换实验;控制区可改 lr_scale / eval_every /
## delay_weights / stop / note(写 control.json,训练进程会读)