C4rr13rX/W1z4rDV1510n

GitHub: C4rr13rX/W1z4rDV1510n

一个受脉冲神经科学启发的分布式智能节点,通过在线赫布学习从传感器流中自底向上生长出神经结构,无需GPU和预训练即可运行。

Stars: 7 | Forks: 1

# W1z4rDV1510n 一个分布式智能节点,它通过从观察到的信息中生长出结构,而不是通过分类,来学习在物理层面上描述其环境。原生支持 CPU 和 RAM。不需要 GPU。 ## 这是什么 —— 为神经科学家和 AI 架构师准备 大多数神经网络是离线训练的固定拓扑函数近似器。这是另一种东西:一个**活生生的、受脉冲启发的神经组织**,它在 RAM 中生长出自己的架构,并从任何传感器流进行在线训练。 学习栈在软件中实现了当前神经科学的经典原理: - **SDR / k-Winners-Take-All (kWTA)** — 每次传播跳变后,只有排名前 2% 的激活神经元存活。这强制执行了真实神经组织中皮层的稀疏性(1–5%),消除了饱和现象,并为每个模式提供了一个独特的稀疏编码。如果没有这个机制,赫布累积会驱使所有神经元趋向均匀激活,从而导致网络失去辨别能力。 - **具有不对称长时程增强/抑制的 STDP** — `hebbian_pair(a, b)` 是具有方向感知能力的。`a`(突触前,先放电)→ `b`(突触后)获得 LTP(×1.0)。`b` → `a` 获得 LTD(×−0.3)。结果是:网络编码了因果顺序。“photosynthesis→glucose” 是一条比 “glucose→photosynthesis” 更强的边。 - **稳态突触缩放** — 每 500 步,每个神经元的传出权重会被乘性地缩放至 0.10 的目标平均激活值,每次通过时修正 4%。这在防止失控的赫布生长的同时保留了相对权重比。这是计算上相当于 Turrigiano 稳态可塑性的机制。 - **逐神经元 EMA 激活追踪** — 每个神经元维护其自身激活的慢速指数移动平均(`τ ≈ 2000 步`),这是驱动稳态缩放的输入信号 —— 与内在兴奋性的滑动阈值模型机制相同。 - **神经调节系统(DA / NE / ACh / 血清素)** — 每个池有四种神经调节剂浓度,每种都有独特的衰减动态。乙酰胆碱乘性地控制可塑性。去甲肾上腺素将有效学习率提高至 3 倍。多巴胺 enables retrograde potentiation。所有调节剂每步都会向基础基线衰减。 - **三因子赫布 / 多巴胺逆行增强** — 具有高激活追踪的神经元在多巴胺释放时被标记。`flush_dopamine_potentiation()` 对其传出突触应用 `Δw = lr × dopamine_tag × weight`。这是 reward-modulated STDP 的计算关联 —— 奖励信号(多巴胺)增强了导致该结果的连接。 - **预测编码** — `propagate_predictive()` 实现了一阶分层预测编码循环。跳变 0 传播完全激活。后续跳变仅传播残差 `(actual − prediction).max(0.0)`。完全按预测激活的神经元向上游传递零信号 —— 只有“惊讶”会传播。预测 EMA 在每次训练通过时在线更新(`α = 0.10`)。 - **神经调节剂门控的学习率** — 在 `train_weighted_with_meta()` 中:`effective_lr = lr_scale × ACh × (1 + NE × 2.0)`。当假设队列触发 NE 尖峰(QA 门失败)时,下一次训练运行将以升高的学习率进行 —— 对令人惊讶的输入的注意力会增强。 - **双记忆系统(CLS 理论)** — N 池联想结构是海马体:跨任意数量命名池(in/out/emo/equation/motion/…)的快速双向配对关联检索。慢速 NeuronPool 是新皮层:分布式统计学习。它们相互作用 —— N 池的命中会播种特定的池激活模式,将情景回忆的精确性与分布式表征的泛化相结合。CLS 风格的重放定期将 N 池概念神经元巩固回慢速池中。 - **多池收敛推理** — 输入到一个池的单个输入会导致每个连接的池并行产生其自己的解码预测。跨模态训练(例如,一个查询输入同时映射到答案池、情绪池和方程池)意味着所有这些底层结构都会因一个查询而激发。 - **假设 → 研究反馈循环** — 多池结构没有返回答案的问题会被排入假设队列。`research_agent.py` 轮询该队列,获取 Wikipedia 和 ArXiv 的答案,通过 `/multi_pool/train_pair` + `/media/train` 摄取它们,并通过 `/hypothesis/resolve` 解决它们,这会触发一次 DA 释放 —— 正确预测解决的奖励信号。 **对于架构师:** 系统被设计为在每个级别都是可观察的。每个神经元都记录其影响历史。每个突触都携带出处信息。神经调节剂状态可通过 API 读取。假设队列是一个显式的认识状态 —— 系统知道它不知道什么,并据此采取行动。 ## 这与所有其他 AI 语言模型有何根本不同 ### Tokenization 问题 每一个主要语言模型 —— GPT、LLaMA、BERT —— 都是从 tokenizer 开始的。不是一个学习到的组件:一个**在任何学习开始之前,对训练语料库运行的人类编写的算法**,通过频率将字符序列合并为大约 50,000 个固定词汇块(GPT/LLaMA 用的是 BPE,BERT 用的是 WordPiece)。从那时起,模型再也看不到一个字母。它被递交了预先分割好的原子,并学习它们之间的统计关系。 由此产生的表征**不包含关于其自身组合的内部结构约束**。“cat” 是原子 1234。“cats” 是原子 1235。它们之间的关系仅作为训练语料库中共享上下文的间接统计相关性存在 —— 而不是作为一个编码的形态学事实。模型并没有发现 “cats” 是 “cat + 复数标记”。它记忆的是原子 1235 与复数上下文的共现统计数据。 这就是幻觉失败模式的根源。当模型遇到一个新词、一种罕见形式,或者一个听起来合理但从未见过的混成词时,它没有机制将其分解并推理它的组成。它无法通过追踪其组成部分来验证 “metamorfocillin” 不存在。它通过询问以下问题来生成下一个 token:*在这个上下文中,哪个 token 序列在统计上最有可能?* —— 而这个问题没有结构基础。一个自信、流利、结构上错误的答案从内部与一个正确的答案是无法区分的。 跨语言迁移失败的原因也是如此。英语中的 “Transport” 和法语中的 “transporter” 在不同的词汇表中是不同的 token 原子。共享的 `trans-` 词素(承载着意义)对模型是不可见的,除非训练语料库碰巧包含足够的英法平行文本以创建一个间接的统计桥梁。没有能被这两个词同时激活的词素神经元。 **分割发生在学习之前,因此学习到的表征不包含关于其自身内部结构的信息。** 这是 tokenization 强加的架构约束,它无法通过训练消除 —— 它被烙印在了表征空间本身中。 ### 这个系统没有 tokenizer。它具有自底向上的架构。 语言理解是通过与处理所有其他传感器流相同的赫布机制,从头开始生长出来的。这种层次结构不是预先声明的。它从共现中涌现: ``` Characters → Sub-sequences (morphemes) → Words → Usage patterns → Motifs ``` 每个字符作为其自身带标签的神经元激发(`txt:char_a`,`txt:char_p`...)。位置上下文被单独编码(`txt:char_a_pos0` ≠ `txt:char_a_pos4`)。每个标点符号也作为其自身的标签激发 —— `txt:punct_comma`,`txt:punct_apostrophe`,`txt:punct_period` —— 因为标点符号是信号,而不是噪声。“Let's eat, Grandma.” 和 “Let's eat Grandma.” 的区别仅在于一个逗号。这个系统编码了这种差异,因为在它出现的每个句子中,逗号周围的字符上下文是不同的。 ### 神经发生路径:精确机制 **步骤 1 — STDP 字符序列编码** 当训练 “cat” 时,三个字符神经元按顺序激发。池对 STDP 窗口内的每个相邻字符对调用 `hebbian_pair(c, a, scale)` 和 `hebbian_pair(a, t, scale)`。权重更新为: ``` base = hebbian_lr × (activation_c + trace_c) × (activation_a + trace_a) × scale Pre→Post (c→a): Δw = base × stdp_pre_post = base × +1.0 [LTP] Post→Pre (a→c): Δw = base × stdp_post_pre = base × −0.3 [LTD — only weakens if synapse exists] ``` 前向边 `c→a` 被增强。后向边 `a→c` 被抑制(或者如果尚不存在则保持不变)。在训练了 “cat”、“cattle”、“catch”、“concatenate”—— 包含 c→a→t 序列的所有单词——之后,前向路径 `c→a→t` 积累了强大的兴奋性权重。后向路径被主动抑制。该池现在编码了因果顺序,而不仅仅是共现。 **步骤 2 — 跨语料库的共现积累** 池维护着一个 `minicolumn_counts` 表。每次一个签名(从重复模式中派生出的共现标签的最小集合)激发时,其计数就会增加。当 c→a→t 字符簇出现在 “cat”、“cattle”、“concatenate”、“catfish”、“catnip” 中时——每次出现都会使 `minicolumn_counts["mini::c|a|t"]` 增加。此时还没有创建任何东西。证据在默默地积累。 **步骤 3 — 微柱提升:在阈值时的神经发生** 当 `minicolumn_counts["mini::c|a|t"]` 跨过 `minicolumn_threshold`(默认值:**18**)时,在运行时会创建一个新神经元:`mini::c|a|t`。这个神经元在初始架构中并不存在。它是从数据中生长出来的。它的 `members` 列表包含组成字符神经元的 ID。它以 `stability = 0.0` 和 `inhibition = 0.0` 开始。 **步骤 4 — 概念神经元激活和成员抑制** 每个训练帧,`update_minicolumns` 都会运行。对于每个微柱: ``` // Evidence and conflict are computed from how well the current // signature batch matches this column's learned pattern. column.stability = column.stability * stability_decay // EMA: decay 0.9 + evidence * (1.0 - stability_decay); column.inhibition = column.inhibition * inhibition_decay // EMA: decay 0.85 + conflict * (1.0 - inhibition_decay); column.collapsed = column.inhibition >= 0.55; let active = column.stability >= 0.65 && !column.collapsed; let column_activation = (column.stability * (1.0 - column.inhibition)).clamp(0.0, 1.0); concept_neuron.activation = concept_neuron.activation.max(column_activation); if active { for member_id in &column.members { member_neuron.activation *= 0.35; // character neurons suppressed to 35% } } ``` 当 `stability >= 0.65` 时,概念神经元以全力激发(`stability × (1 − inhibition)`)。同时,其成员列表中的每个字符神经元的激活被**乘以 0.35**。字符神经元没有被清零 —— 它们降至其原有激活的 35%。这发生在传播运行之前。 **步骤 5 — kWTA 完成抑制** 在 `propagate_weighted` 期间,每个活跃的神经元通过其带有扇出归一化的兴奋性突触向外扩展: ``` next[target] += src_activation × syn.weight × 0.5 / sqrt(fan_out) ``` 概念神经元已经积累了强大且训练充分的突触,连接到其他概念级神经元。处于 35% 激活状态的字符神经元产生成比例更弱的下游信号。在每次跳变后,激活衰减 **0.85**,并且 kWTA 将前 **2%** 之外的所有激活清零(`sdr_sparsity = 0.02`,最少 50 个神经元)。被削弱的字符神经元在 kWTA 竞争中输给了概念神经元及其强连接的概念邻居——并被稀疏化清零。 至关重要的是,**没有从概念神经元到其成员神经元的自动创建的抑制性突触**。这种抑制完全是通过传播前的激活标量(×0.35)结合 kWTA 竞争来实现的。该通道在结构上保持开放——它只是被竞争击败了,而不是被封锁了。 **步骤 6 — `collapsed` 释放阀** `inhibition` 由*冲突*积累而来——即模式以部分、不一致或矛盾的方式激发的频率。当 `inhibition >= 0.55` 时,`collapsed = true`。`active` 块不执行。成员神经元恢复到完全激活。概念神经元仍然激发(以减弱的强度),但停止抑制其成员。 这是有意为之的,并且在 tokenized 模型中没有类似物。一个激发不一致的微柱在结构上承认了这种不确定性:它释放了对字符级别的控制,并允许原始证据积累或自我纠正。系统知道它何时对一个概念单元不自信——并通过恢复其组成表征来表明这一点。 **步骤 7 — 概念优先的推理门** 在推理时,`activate_with_resolution_inner` 提供了两阶段解决的路径: 1. **概念阶段**:以全权重从词级标签进行传播。如果峰值激活超过 `confidence_threshold`——立即返回。字符神经元将不被查询。 2. **字符回退**:如果概念峰值降至阈值以下,则将单词标签分解为字符标签(以 **0.8 的权重**)。已建立的概念神经元仍作为种子集中的锚点。从混合(字符 + 概念锚点)种子进行传播。 3. **候选注册**:如果字符路径以 **0.01** 的优势胜过概念路径,则增加每个新词的微柱候选计数器。一旦计数器超过 `minicolumn_threshold`,下一次提升运行将创建一个新的概念神经元。 这就是代码注释中描述的结构内反馈循环:*“概念神经元在自信时激发并抑制其组成字符;当它们不自信时,字符神经元重新激活并朝着概念提升的方向积累。”* ### 结构对比 | | Tokenization (PE / WordPiece) | 神经发生(本系统) | |---|---|---| | **分割发生的时间** | 在学习之前,永久固定 | 在学习期间,持续进行 | | **谁决定一个单元是什么** | 语料库上的频率算法,由人类设计 | 数据本身,通过共现阈值 | | **单元的内部结构** | 不透明 —— 模型无法检查自身的 token | 透明 —— 概念神经元保留与成员字符神经元的实时连接 | | **罕见/新词处理** | 破碎成子词片段,进行统计插值 | 分解成字符,通过字符路径传播,注册为提升候选 | | **不确定性信号** | 无 —— 无论如何都会生成看似合理的 token | `collapsed` 标志,`confidence_threshold` 门,假设队列 | | **词素泛化** | 偶然的,依赖于语料库 | 结构性的 —— 共享的字符子序列构建共享的概念激活 | | **跨语言迁移** | 需要平行训练数据或单独的词汇表 | 共享词素无论语言如何都会激活相同的字符神经元 | | **表征空间** | 在词汇表构建时固定 | 在运行时随着新模式跨越提升阈值而增长 | | **幻觉底线** | 无 —— 对生成的 token 没有结构性检查 | 低置信度的概念 → 字符回退 → 假设缺口 —— 系统会发出信号表示它不知道的内容 | ### 为什么这消除了幻觉的结构性失败模式 LLM 幻觉问题不是微调问题。它是表征问题。生成 “metamorfocillin” 的 tokenized 模型没有内部机制来询问:*这个词是由真实的部分组成的吗?* Token 47823 就是 token 47823。如果该 token 序列在给定上下文下统计上是合理的,模型就会产生它 —— 并且具有与产生真实词汇时相同的信心。 在这个系统中,“metamorfocillin” 将作为一系列字符神经元到达。字符路径开始传播。对于这个确切序列不存在任何微柱。激活未收敛到已知的概念节点。`concept_peak` 降至 `confidence_threshold` 以下。推理门退回到字符级别。字符级传播未找到强路径。QA 置信度门失败。假设队列接收到一个条目:*“什么是 metamorfocillin?”* —— 系统明确记录了它不知道。 在这里,沉默和不确定性是一等输出。tokenized 模型无法在结构层面上产生它们 —— 它只能被指示在文本中表达它们,而文本本身是一个没有结构性保证的统计输出。 **对训练的实际影响:** - 在拉丁语教科书上的训练产生真正的词素理解。`trans-` 微柱连接了 `transport`、`transfer`、`transmit`、`translate` —— 不是因为规则这样说,而是因为这些单词在每个句子中共享字符子序列。关于 `transference` 的问题会通过这些连接得到解答,即使这个确切的单词从未出现在训练中。 - 跨语言的词素迁移是结构性的。法语的 `transporter` 和英语的 `transport` 激活了相同的 `trans-` 字符路径,并在足够的共现之后,激活了相同的微柱概念神经元。 - 标点符号是被学习的,而不是被剥离的。专有名词前的逗号建立了与列表中逗号不同的激活模式,因为逗号周围的字符上下文在每个句子中是不同的。该池编码了这种区别。而 tokenizer 会将其作为空白相邻的噪声丢弃。 - 每一层都同时激发。字符标签、语音二元语法、单词标签、标点标签、布局角色标签和空间区域标签都在同一个训练调用中共同激活。层次结构从数据中涌现,而不是从训练开始前做出的架构决策中涌现。 ## 基准测试 | 任务 | 得分 | 备注 | |------|-------|-------| | 多池前向/反向回忆(8 对小型 + 30-45k 字符大型语料库) | **1.000 / 8-of-8** | `POST /multi_pool/ask`;7/7 Rust + 30/30 Python 集成测试通过 | | 多池 32 对百科全书(跨领域) | **0.987 / 32-of-32 fwd** | 相同路径,更难的语料库 | | GA 综合得分(NCBI 记忆 + 释义泛化) | **0.837** | Recipe B:bigrams+trigrams+IDF,passes=7,lr=0.167;在 25 个 NCBI 对 + 15 个类别描述上测量 | | 类别释义精确回忆 | **60% (9/15)** | 使用三元语法的 Recipe B;在 n-gram 编码之前为 0% | | 聊天 / 生成质量 | **0.630** | `POST /chat`,`POST /neuro/generate` | 这些得分依赖于语料库——随着摄入更多训练数据,它们会发生变化。`/query/integrated` 使用精度加权的级联:N 池结构作为高置信度的主要传感器,慢速 NeuronPool 字符链解码器和 EEM 作为备用。GA 发现的 Recipe B(综合得分=0.837)为侧重释义的语料库提供了当前最佳的配置。 ## 多阶段推理管线 该节点的推理架构支持在单个预测通过中链式连接多个处理阶段。并非仅通过单个赫布回忆步骤产生最终答案,第一阶段(Stage 1)的输出被路由到额外的处理网络——每个网络都是一个小型的赫布网络,为特定的转换任务而训练——以增加结构并产生精炼的最终输出。 **核心洞察:** 单阶段回忆找到了正确的规则,但回显了错误的特定示例。例如:纠正 *"Me and him went to the store"* 会回忆起训练模板 *"My friend and I went to the store"*(正确的规则,错误的代入)。管线解决了这个问题,因为阶段 1 只需要找到规则——下游阶段负责将其应用于实际输入。 **各阶段如何链接:** ``` Input question │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Stage 1 — Hebbian recall │ │ QA fabric finds the closest matching template + rule │ │ e.g. "use 'I' as subject, not 'me' or 'him'" │ └──────────────────────────┬──────────────────────────────────┘ │ template + rule type ▼ ┌─────────────────────────────────────────────────────────────┐ │ Stage 2 — Pattern extraction │ │ Second Hebbian network extracts the structural component │ │ from Stage 1's output: rule type, correction pattern, │ │ or relevant constraint — no application to input yet │ └──────────────────────────┬──────────────────────────────────┘ │ extracted rule ▼ ┌─────────────────────────────────────────────────────────────┐ │ Stage 3 — Application / slot-filling │ │ Third network applies the extracted rule to the actual │ │ tokens from the original input — "him" → "he", │ │ "me" → "I" — substituting real values into the template │ └──────────────────────────┬──────────────────────────────────┘ │ structured output ▼ ┌─────────────────────────────────────────────────────────────┐ │ Stage 4 — Composition │ │ Assembles the final response from the structured output │ │ of all prior stages │ └──────────────────────────┬──────────────────────────────────┘ │ ▼ Final answer ``` **相同的管线适用于每个转换任务:** | 任务 | 阶段 1 回忆 | 阶段 2 提取 | 阶段 3 应用 | |------|----------------|-----------------|-----------------| | 语法纠正 | 规则(“介词后的主格代词”) | 规则类型 + 目标 token 类 | 代入实际输入 token | | 拼写纠正 | 错误类型的纠正模式 | 哪些字母错误以及为什么 | 应用于实际拼写错误的单词 | | 流水句标点 | 类似长度的正确标点模板 | 从句边界位置 | 应用于实际输入句子 | | JSON 格式化 | 匹配的 JSON schema 模板 | 字段名称和类型 | 填充输入的实际值 | **路由:** 管线的调用基于原始问题中的范围标记(`"fix the grammar:"`,`"correct the spelling:"`,`"rewrite with punctuation:"`)以及阶段 1 的输出类型分类。如果没有范围标记,则运行单阶段路径并由节点直接回答问题——不应用转换。有了范围标记,就会激活完整的管线。 **训练影响:** 每个阶段都需要自己的训练语料库。阶段 2 需要 `(recalled_template → extracted_rule_type)` 对。阶段 3 需要 `(rule_type + input_tokens → transformed_output)` 对。这是贯穿整个系统的范围标记设计原则:每个阶段仅在其特定的输入模式存在时才激活,防止将转换过度应用于非纠正查询。 **可扩展性:** 可以在链中插入额外的阶段,而无需更改其前面或后面的阶段。一个置信度检查阶段、一个事实依据阶段或一个语气调整阶段,都可以是独立训练的小型赫布网络,并在管线中的任何位置组合。 该节点是一个**仪器,而不是一个 Agent**。它观察每一个传入的传感器流,在自身内部构建环境的活体表征,并用物理语言报告它所看到的。它不对这些数据采取行动。任何对其输出采取行动的事物——一个脚本、一个决策系统、一个人类——都能完全透明地了解节点是如何得出其结论的。节点是测量设备。其余一切都取决于你。 每个传感器流——棋盘、摄像机、新闻源、社交图谱、化学状态——都以相同的通用格式到达。节点没有任何特定领域的知识。它看到的是位置、标签和共现。它从国际象棋游戏中学到的东西会迁移到它对人群动态的了解上,反之亦然。从一个领域生长出来的神经结构,也就是另一个领域所训练的同一个结构。 环境方程矩阵(Environmental Equation Matrix)正居于其核心。随着神经结构从传感器数据中激发标签,EEM 不断询问:*哪些物理定律支配着我目前正在观察的事物?* 它同时跨 339 个方程和 27 个学科工作——因为环境并不尊重学科边界。趋于恐慌的人群与同步的化学振荡器遵循相同的 Kuramoto 耦合方程。通过社交网络传播的病毒式叙事遵循与产品发布相同的 Bass 扩散曲线。协调的信息战具有可测量的 Lyapunov 指数。EEM 从原始观察中命名这些过程,而无需被告知要寻找什么。 当 EEM 无法解释一个标签簇时——当发生的事情与任何已知方程都不匹配时——它会打开一个假设缺口,并记录哪些节点正在看到它。在分布式部署中,由许多节点独立观察到的缺口,正是系统在表达:*这里正在发生我们尚无名称的真实事件。* 这是一个比分类更有用的信号。 **这做了哪些其他地方没有做的事情:** - **物理学作为跨领域的通用语言。** 大多数多模态系统学习特定领域的表征并在它们之间建立桥梁。这个系统完全跳过了这一点——一切从一开始就表达在相同的维度传感器格式中,而物理方程是所有这些的共享词汇。 - **节点是观察者,而不是决策者。** 智能架构几乎普遍将观察与行动耦合。在这里,它们被明确分离。节点负责报告;构建在其上的 Agent 负责决定。这意味着节点的输出是可审计的、中立的和可组合的——您可以在不改变仪器的情况下在上面放置任何决策层。 - **假设缺口作为一等输出。** 节点以与它能解释的事物同等的严谨性来追踪它*不能*解释的事物。缺口排行榜——按有多少独立节点佐证了相同的无法解释的模式排序——通常比已识别的方程列表更具可操作性。 - **无需协调的跨节点源追踪。** 每个节点独立记录哪个节点首先报告了每个模式以及随后有多少节点佐证了它。没有中央协调器,除了 gossip 层之外没有共享状态。传播信号的起源从独立观察者的时间戳排序中涌现。 - **方程从传感器证据中获得和失去置信度。** EEM 不是静态查找表。持续匹配传感器报告内容的方程会变得更强。不匹配的则会衰减。系统学习的是在其部署环境中实际存在哪些物理学,而不仅仅是教科书里存在哪些物理学。 - **从第一性原理出发的硬件自适应。** 没有硬编码的批次大小、线程数或内存限制。每个参数都是从启动时的实时硬件测量中推导出来的。相同的二进制文件可以在 Raspberry Pi 和工作站上运行,并针对各自调整其行为。 - **博弈论和营销科学作为物理学。** 社会、战略和市场动态被表达为与热力学或量子力学具有同等地位的方程。Nash 均衡的检测方式与 Boltzmann 分布相同——通过将传感器标签簇与方程关键词相匹配。系统不知道它正在看的是一个市场;它只知道数学说明了什么。 ## 架构概述 ``` ┌──────────────────────────────────────────────────────────────────────┐ │ w1z4rd_node (one binary) │ │ │ │ :8080 Neuro API ── NeuroRuntime (snapshot reads, propagation) │ │ :8090 Node API ── all training + inference routes: │ │ Media API ── /media/train /media/playback /neuro/propagate│ │ Chat API ── /chat /neuro/generate │ │ Hyp API ── /hypothesis/queue /hypothesis/resolve │ │ EEM API ── /equations/* /causal/graph │ │ MP API ── /multi_pool/{register,train_pair, │ │ train_fanout,ask,replay,delta/*,use_ngrams} │ │ Cascade ── /query/integrated (MP → char-chain → EEM) │ │ Cluster ── ClusterNode ── HashRing ── OtpRegistry │ │ Dist ── DistributedCoordinator (round-robin, delta sync)│ │ │ │ ┌───────── Cross-wiring feedback loops ────────────────────────┐ │ │ │ EEM ──fb_eem_into_mp──► MP weights (at training time) │ │ │ │ MP ──fb_mp_into_slowpool──► slow pool /media/train │ │ │ │ low confidence ──fb_replay_low_conf──► /multi_pool/replay │ │ │ │ route disagreement ──fb_disagreement_ne──► NE spike → ↑LR │ │ │ └──────────────────────────────────────────────────────────────┘ │ │ │ │ KnowledgeRuntime ── HierarchicalMotifs ── FabricTrainer │ │ P2P Gossip / Data Mesh / Blockchain Layer │ └──────────────────────────────────────────────────────────────────────┘ ▲ ▲ ▲ ▲ │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ Multimodal encoder library (crates/core) │ │ ImageBitsEncoder AudioBitsEncoder TextBitsEncoder │ │ MotionBitsEncoder KeyboardBitsEncoder │ │ shared 8×8 grid vocabulary — img:, aud:, txt:, mov:, key:│ └──────────────────────────────────────────────────────────┘ ▲ ▲ ▲ ▲ │ │ │ │ chess_training rtsp_pose_bridge rss_topic_bridge w1z4rd-dashboard _loop.py .py .py (GUI client binary) research_agent.py train_obstacle.py playback_obstacle.py (app / script) (app / script) (app / script) ``` 两个 API 都在节点二进制文件启动时自动启动——不需要单独的服务进程。仪表板是一个轻量级的 GUI 二进制文件,它轮询节点 API;它不需要在同一台机器上运行。 **节点是与领域无关的。脚本和应用程序定义了领域。** 节点没有关于国际象棋、姿势、像素或光标移动的知识——它只看到标签和共现。编码器库将原始传感器数据(图像、音频、文本、鼠标轨迹、按键)翻译成节点的标签词汇。一切都是可组合的,因为一切都使用相同的语言。 ## 集群 多个节点合并为一个单一的虚拟节点,将神经结构划分到所有可用的硬件上。从结构的角度来看,存在一个大脑;从硬件的角度来看,每台机器持有其一个切片。 ``` Machine A (coordinator) Machine B Machine C ┌─────────────────────┐ ┌───────────────┐ ┌───────────────┐ │ w1z4rd_node │ SIGIL │ w1z4rd_node │ SIGIL │ w1z4rd_node │ │ :8080 :8090 │ ◄────────►│ :8080 :8090 │◄───────►│ :8080 :8090 │ │ ring owner 0–42 │ :51611 │ ring 43–85 │ :51611 │ ring 86–127 │ └─────────────────────┘ └───────────────┘ └───────────────┘ ``` **工作原理:** | 关注点 | 机制 | |---------|-----------| | 节点发现与配对 | 一次性 OTP(`WORD-NNNN` 格式,argon2id,TTL 限制,单次使用) | | 标签分区 | 一致性哈希环——每台机器 150 个虚拟节点(Blake2b512);标签无副本路由到其所有者 | | 协调者选举 | 霸道算法——最高优先级(最老)的存活节点获胜;协调者是完全的参与者,而不是专门的主节点 | | 故障检测 | 每 5 秒心跳;15 秒后宣布节点丢失;协调者 20 秒无响应时触发选举 | | 传输 | 原始 TCP 上带有长度前缀的 JSON 帧;每个节点的 `DashMap` 连接池 | | 默认端口 | **51611** — leet speak 中的 SIGIL(5=S, 1=I, 6=G, 1=I, 1=L | | 扩展性 | 无限制——2 到 N 个节点;环在每次加入/离开时重新平衡 | **集群命令(通过 REST API——推荐):** 首先正常启动每个节点(`./bin/w1z4rd_node.exe`),然后通过 HTTP API 形成集群: ``` # 机器 A — 启动新集群,获取加入 OTP curl -s -X POST http://192.168.1.10:8090/cluster/init \ -H "Content-Type: application/json" \ -d '{"bind": "0.0.0.0:51611", "otp_ttl_secs": 300}' # 返回: {"otp":"EMBER-4821","cluster_id":"..."} # 机器 B — 使用 OTP 加入 curl -s -X POST http://192.168.1.11:8090/cluster/join \ -H "Content-Type: application/json" \ -d '{"coordinator": "192.168.1.10:51611", "otp": "EMBER-4821", "bind": "0.0.0.0:51611"}' # 任意节点 — 检查集群拓扑 curl http://192.168.1.10:8090/cluster/status # 任意节点 — 检查分布式训练协调器状态 curl http://192.168.1.10:8090/cluster/sync/status ``` **集群命令(独立 CLI——仅 gossip 协议,无 HTTP API):** ``` # 机器 A — 启动集群监听器,打印加入 OTP w1z4rd_node cluster-init --bind 192.168.1.10:51611 # 机器 B — 使用机器 A 打印的 OTP 加入 w1z4rd_node cluster-join --coordinator 192.168.1.10:51611 --otp EMBER-4821 # 任意节点 — 通过原始 TCP 打印集群拓扑和环状态 w1z4rd_node cluster-status --node 192.168.1.10:51611 ``` **启动脚本**(在 `scripts/` 中): - `start_cluster.bat` — 启动节点 + 作为协调者初始化集群(Windows,打印 OTP) - `start_worker.ps1` — 启动节点 + 作为工作者加入集群(Windows,提示输入 OTP) OTP 是一次性使用的,默认在 5 分钟后过期。在每次新工作者加入之前,通过 `POST /cluster/init` 生成一个新的。 神经结构可水平扩展,无需更改 API。任何在节点上通过脚本向 `/neuro/train` 发送 POST 请求的操作都是在训练分布式结构;任何节点上的 `/neuro/snapshot` 都会返回全局视图。 ## 什么改变了预测结果 每个预测都是多个组件同时投票的结果。在调整行为或编写脚本时,了解完整的堆栈很重要。 | 组件 | 机制 | |-----------|-----------| | **STDP / 不对称赫布权重** | 带有方向偏差的共现历史——突触前→突触后(因果顺序)被增强;突触后→突触前被抑制(LTD ×−0.3)。最强的因果路径在推理时胜出 | | **SDR / k-Winners-Take-All** | 每次传播跳变后,只有排名前 2% 的活跃神经元存活。强制执行皮层稀疏性,消除池饱和,给每个概念一个独特的稀疏编码 | | **稳态突触缩放** | 每 500 步,每个神经元的传出权重被乘性地重新缩放到目标激活值(0.10)。在防止失控增长的同时保留相对比率 | | **神经调节剂(ACh / NE / DA / 血清素)** | ACh 乘性地门控可塑性;NE 在令人惊讶的输入上将有效学习率提高至 3 倍;DA enables retrograde potentiation of recently active synapses;血清素提供基础稳定基线 | | **多巴胺逆行增强** | 在假设解决时,DA 以奖励信号水平释放。具有高激活追踪的神经元被标记;`flush_dopamine_potentiation()` 加强其传出突触——三因子赫布(活动 × 活动 × 奖励) | | **预测编码残差** | `propagate_predictive()`——只有预测误差(惊讶)会在第一次跳变之后传播。按预期激活的神经元传递零信号;意外激活主导传播 | | **双记忆(CLS)—— QA 快速路径** | QA 存储(海马体类似物)提供高置信度的情景答案。置信度 ≥ 0.5 门控进入多路径推理;输出上限为 QA 答案词数,以防止池噪声 | | **多路径收敛推理** | `propagate_combined()` 同时从问题标签(权重 1.0)和 QA 答案标签(权重 = qa_conf × 1.5)播种——答案领地在其激活前使池传播产生偏向 | | **假设队列上的 NE 尖峰** | 当 QA 门失败时,释放 NE(0.75 单位)。下一次训练运行以升高的学习率进行——系统对其自身的不确定性应用更强的纠正 | | **微柱** | 随时间坍缩成单一概念神经元的神经元组;一旦提升,它们就会作为一个单元以高置信度激发 | | **工作记忆传递** | 连续帧之间的余弦相似度设定一个动态传递因子;相似的帧增强先前的上下文,不相似的帧重置它 | | **时间模体先验** | `HierarchicalMotifRuntime` 在无界深度挖掘重复序列;提案核将候选拉向结构期望下一步的模体类质心 | | **经典退火器** | 搜索最小能量状态配置;温度是相干性调制的——自信的结构→快速收敛;不确定的结构→高温探索 | | **环境方程矩阵** | 27 个学科的 339 个方程对活跃的传感器标签进行投票;匹配的方程增强相关标签;当没有匹配时假设缺口抑制置信度 | | **惊讶加权重放** | 持续的错误预测以更高频率重放——系统对其最严重的错误应用更强的纠正 | | **对等节点学习** | 在集群模式下,增量权重增量(自上次同步以来的标签键控突触权重 + 共现计数)每 20 次训练调用推送到所有对等节点,并以 `max(local, remote)` 合并——知识只积累,从不覆盖 | | **ResourceMonitor** | 在 CPU/RAM 压力下,批次大小和更新频率下降——较慢的适应,更保守的预测 | ## 核心组件 ### 神经结构 (`NeuroRuntime`) 一个受脉冲启发的赫布神经池,在 RAM 中实现了完整的神经科学可塑性栈。没有矩阵操作——推理是通过生长的突触连接进行的传播事件。 **学习机制(全部同时活跃):** - **STDP** — 不对称的 `hebbian_pair(a, b)`:a→b 获得 LTP,b→a 获得 LTD。方向性知识编码。 - **kWTA 稀疏化** — 每次跳变中排名前 2% 的活跃神经元存活。稀疏分布式表征。 - **稳态缩放** — 每 500 步进行逐神经元的乘性权重校正;目标平均激活值为 0.10。 - **三因子赫布 / 多巴胺逆行** — `apply_dopamine()` 标记追踪活跃的神经元;`flush_dopamine_potentiation()` 在奖励时加强它们的传出突触。 - **神经调节剂门控的可塑性** — 每次训练调用中 `effective_lr = lr_scale × ACh × (1 + NE × 2.0)`。 - **预测 EMA** — 逐神经元 `prediction` 字段在线更新(α=0.10);驱动预测编码传播。 - **最大权重上限(4.0)** — `add_synapse()` 钳位在 4.0;消除无界积累。 **推理方法:** - `propagate(seed_labels, hops)` — 具有每跳 kWTA 的被动突触行走;返回 label→strength 映射 - `propagate_weighted(pathways, hops)` — 具有每个种子权重的多路径传播 - `propagate_combined(question_labels, qa_answer_labels, qa_conf, hops)` — 双记忆收敛推理 - `propagate_predictive(pathways, hops, min_activation)` — 预测编码;只有惊讶会在跳变 0 之后传播 - `cross_stream_activate(labels, target_stream, hops)` — 通过赫布连接的跨模态推理 - `reconstruct_sequence(frames, target_stream, hops)` — 带有余弦传递因子的时间序列重建 **运行时 API:** - `release_neuromodulator(kind, amount)` — 释放 DA / NE / ACh / 血清素尖峰 - `flush_dopamine()` — 对标记的突触应用逆行增强 - `neuromodulator_state()` — 读取当前浓度 - `observe_snapshot()` — 摄取任何 `EnvironmentSnapshot` - 影响/出处追踪:每个神经元记录哪些流和数据塑造了它 - 双缓冲传播、二分搜索突触列表、EMA 共现追踪、脏标记微柱——全部硬件自适应 ### 多模态编码器库 (`crates/core/src/streaming/`) 将原始传感器数据转换为节点的标签词汇。编码器位于核心库中——**不**在节点二进制文件中。脚本导入它们,编码数据,并将标签 POST 到节点 API。节点从不直接看到像素、波形或按键。 所有编码器共享相同的默认 **8×8 空间网格**。位于区域 `(3,2)` 的光标、位于区域 `(3,2)` 的图像特征和位于区域 `(3,2)` 的文本跨度都发出相同的区域标签族。赫布学习自动连接它们。 | 编码器 | 输入 | 标签前缀 | 备注 | |---------|-------|----------------|-------| | `ImageBitsEncoder` | JPEG/PNG 字节或原始 RGB | `img:z{x}_{y}`, `img:h{n}`, `img:edge{dir}_z{x}_{y}` | HSV 直方图 + 每个网格区域的 Sobel 边缘 | | `AudioBitsEncoder` | PCM f32 或 WAV 字节 | `aud:freq{n}`, `aud:amp{n}`, `aud:freq{n}_t{t}` | 汉宁窗 DFT;无外部 FFT 依赖 | | `TextBitsEncoder` | `TextSpan` 结构体或纯 `&str` | `txt:char_{c}`, `txt:char_{c}_pos{n}`, `txt:word_{w}`, `txt:phon_{ng}`, `txt:punct_{name}`, `txt:role_{r}`, `txt:zone_x{n}_y{n}` | 自下而上:字符 → 二元语法 → 单词 → 布局。保留标点符号。每个单词自动训练 STDP 字符序列。 | | `MotionBitsEncoder` | `Vec` | `mov:zone_x{n}_y{n}`, `mov:endpoint_x{n}_y{n}`, `act:click` | 也可用于推理的 `decode_target()` | | `KeyboardBitsEncoder` | `Vec` | `key:k_{name}`, `key:combo_{mods}{key}`, `txt:word_{w}` | 跨模态:为输入的单词发出 `txt:word_*` | **`TextBitsEncoder` 标签层次结构(自下而上):** | 层级 | 发出的标签 | 目的 | |-------|---------------|---------| | 字符 | `txt:char_a`, `txt:char_a_pos0` | 基础层——字母通过共现构建词素 | | 二元语法 | `txt:phon_ap`, `txt:phon_pp` | 词素种子——跨单词的重复二元语法形成词根簇 | | 标点 | `txt:punct_comma`, `txt:punct_period`, `txt:punct_apostrophe` | 句法信号——“eat, Grandma” 中的逗号 ≠ 没有逗号 | | 单词 | `txt:word_apple` | 整词标签——从字符簇中涌现,也直接发出 | | 布局 | `txt:role_heading`, `txt:size_large`, `txt:emph_bold` | 结构上下文——同一个词在标题与脚注中的含义不同 | | 空间 | `txt:zone_x3_y1`, `txt:word_apple_zone_x3_y1` | 页面位置——与 `img:` 标签共享词汇 | 每次使用文本调用 `/media/train` 都会自动运行两次通过: 1. **共现通过** — 所有标签在一个 `train_weighted` 调用中一起激发 2. **STDP 字符序列通过** — 每个单词的字符链通过相邻字母桥接进行训练(lr 衰减 τ=0.5 字符步),因此前向 `c→a→t` 边获得 LTP 并且该池通过字母序列建立有向路径 **布局就是数据。** 页面顶部的标题发出 `txt:role_heading + txt:zone_x0_y0 + txt:size_large + txt:emph_bold`。位置、字体、角色和强调都通过赫布连接到出现在那里的任何内容。PDF 结构是空间信号,而不是装饰。 **跨模态关联从共同训练中涌现。** 在一个 `POST /media/train` 调用中一起输入图像 + 文本 + 动作,会将这三者进行赫布连接。在推理时,从文本标签播种会激发相关的动作区域——不需要解码器。 ### 环境方程矩阵 (`EquationMatrixRuntime`) - 一个涵盖从牛顿力学到拓扑量子现象的所有领域的物理方程自生长有向图 - **27 个学科的 339 个种子方程**: - 经典力学(从 F=ma 到 SHO、冲量、质心、扭矩、旋转动力学) - 波与振荡(波动方程、多普勒、分贝标度、强度) - 拉格朗日 / 哈密顿力学(作用量原理、泊松括号、绝热不变量) - 热力学(全部四个定律、Gibbs / Helmholtz / Carnot、范德华、Stefan-Boltzmann、普朗克黑体) - 统计力学(Boltzmann / Fermi-Dirac / Bose-Einstein、配分函数、Jarzynski 等式、巨正则系综) - 电磁学与光学(完整 Maxwell 集、Lorentz 力、Poynting 矢量、Snell 定律、衍射光栅、Malus 定律) - 量子力学(含时/不含时 Schrödinger 方程氢原子能级、QHO、隧穿、自旋对易关系、密度矩阵、Bell 态、de Broglie) - 量子场论(Dirac 方程、Klein-Gordon、QED 拉格朗日量、标准模型拉格朗日量、Higgs 势、重整化群) - 狭义相对论(完整 Lorentz 变换、4-动量、速度加法、Minkowski 度规) - 广义相对论(Einstein 场方程、测地线、Christoffel 符号、Riemann 张量、Schwarzschild 度规、Hawking 温度、引力波) - 核与粒子物理(结合能、放射性衰变、半衰期、Q 值) - 凝聚态物理(BCS 基态、紧束缚模型、Drude 模型、回旋频率、磁通量子、Fermi 能) - 流体动力学(Navier-Stokes、Bernoulli、涡量输运、Mach/Froude 数) - 混沌 / 非线性动力学(Lyapunov 指数、Fokker-Planck、Langevin、分形维数、Kuramoto 耦合振荡器、KAM 定理) - 拓扑物理(Chern 数、Berry 曲率、Z₂ 不变量、Kitaev 链、分数电荷 e*=e/3) - 宇宙学(Friedmann 方程、红移、光度距离、临界密度、CMB 温度标度) - 信息论(Shannon 熵、信道容量、KL 散度、Fisher 信息、Cramér-Rao 界、Kolmogorov 复杂度) - 数学物理偏微分方程(热传导方程、Laplace、Poisson、Burgers、Ginzburg-Landau、KdV、非线性 Schrödinger) - 生物物理与复杂系统(logistic 增长、Lotka-Volterra、Hodgkin-Huxley 神经元、Einstein 扩散、Stokes-Einstein) - 等离子体物理(等离子体频率、Debye 长度) - 数学工具(贝叶斯定理、Hebbian 学习、sigmoid/softmax、余弦相似度、Pearson 相关、DTW、EMA) - **博弈论**(Nash 均衡、极大极小、复制子动力学、ESS、囚徒困境、民间定理、Shapley 值、无政府代价、Bayesian Nash、Hotelling 空间竞争、Schelling 聚点、拍卖收入等价) - **营销科学**(Bass 扩散、病毒系数 k、CLV、Lanchester 平方律、Adstock 滞留、价格弹性、Metcalfe 定律、Reed 定律、独立级联、线性阈值、Gompertz 采用、营销组合、说服/ELM、偏好连接、Zipf 定律、Pareto 80/20) - **扩展的混沌理论**(Lorenz 吸引子、logistic 映射、Feigenbaum 常数、Rössler 吸引子、Liouville 定理、关联维数、Poincaré 回归、tent 映射、KAM 定理、熵产生率、敏感依赖) - **扩展的量子理论**(Lindblad 主方程、量子 Zeno 效应、Wigner 函数、Rabi 振荡、Bloch 球、量子互信息、量子 discord、Grover 搜索、Shor 算法、量子纠错、量子 Fisher 信息、退相干时间、隐形传态保真度) - **跨学科桥梁**(Friston 自由能原理、Jaynes 最大熵、幂律、渗流阈值、小世界网络、Ising 观点动力学、平均场论、RG 不动点、Kolmogorov 复杂度、整合信息 Φ、适应度景观、级联故障、Red Queen 协同进化、Schelling 隔离、NK 复杂性模型) - **控制论**(PID 控制器、传递函数、Laplace 稳定性、状态空间表示、Nyquist 判据、Bode 图、根轨迹、LQR 最优控制、Kalman 滤波器、H-无穷大范数) - **信号处理**(DFT、卷积定理、Nyquist-Shannon 采样、Wiener 滤波器、匹配滤波器、FFT 复杂度、加窗、频谱图、自相关、功率谱密度) - **化学**(理想气体定律、Arrhenius 方程、平衡常数、Gibbs 自由能、Nernst 方程、反应速率、活化能、Henderson-Hasselbalch、渗透压、Beer-Lambert 定律) - **计算机科学**(P vs NP、图灵完备性、停机问题、Shannon 容量、Big-O 表示法、Amdahl 定律、主定理、NP-hard 归约、Cook-Levin 定理、Rice 定理) - **优化**(梯度下降、Lagrange 乘子、KKT 条件、单纯形法、Newton 法、凸对偶、随机梯度、动量更新、Adam 优化器、模拟退火) - **机器学习**(反向传播、VC 维、偏差-方差权衡、通用近似、PAC 学习、核技巧、SVM 间隔、Bayesian 推断、EM 算法、Rademacher 复杂度) - **电气工程**(Ohm 定律、Kirchhoff 定律、RC 时间常数、LC 谐振、Thevenin 等效、Norton 等效、Bode 增益、功率因数、传输线、趋肤深度) - **结构工程**(Euler 屈曲、梁弯矩、应力-应变 (Hooke)、疲劳寿命 (S-N)、屈服准则 (von Mises)、挠度公式、惯性矩、安全系数、蠕变、断裂韧性) - **流行病学**(SIR 模型、基本再生数 R0、群体免疫阈值、感染力、SEIR 模型、倍增时间、罹患率、地方性平衡、疫苗效力、病死率) - **经济学**(供需均衡、价格弹性、效用最大化、Cobb-Douglas 生产、IS-LM 模型、Fisher 方程、Gini 系数、Lorenz 曲线、Phillips 曲线、Solow 增长模型) - 方程之间的 **23 个语义链接**:`derives_from`、`bridges`、`special_case`、`unifies`、`approximates`、`generalizes`、`contradicts` - **维度感知**:方程带有空间适用性标签。Anyons (`ψ → e^{iθ}ψ`) 严格限制在 2D——它们不会出现在 3D 传感器上下文中。Maxwell 方程组是 3D 的。热力学恒等式与维度无关 - **传感器驱动**:`apply_to_context(labels, dims)` 接受活跃的神经结构标签 + 传感器维度,并返回解释当前观察结果的候选方程 - **置信度演化**:从传感器证据中增长,在未经佐证时衰减——方程根据节点实际经历的内容竞争相关性 - **假设缺口追踪**:无法解释的传感器模式被记录为开放的 `HypothesisSlot` 条目——节点承认它暂时无法解释什么 - **支持 P2P 共享**:`EemPeerPayload` 允许节点广播方程发现并通过 gossip 网络合并彼此的发现 - 持久化到磁盘;重启时重新加载 ### 递归模体发现 (`HierarchicalMotifRuntime`) - 模体中的模体中的模体,没有层次深度上限 - 每一级别的提升为下一级别播种,直到信号耗尽自身 - 每个级别的 Shannon 熵吸引子检测 - 硬件自适应窗口上限和长度过滤器——无硬编码限制 - 具有快速长度预过滤的编辑距离相似性 ### 多池联想结构(N 池——栈的第一层) 赫布快速回忆层。任意数量的命名 `NeuronPool`,每个 有序池对之间具有交叉突触。向任何一个池发送输入会导致 其他每个连接的池并行激发——单个输入可同时驱动 Q→A 池、情绪池、方程池、动作池等。 预注册的池:`"in"` 和 `"out"`。其他池在 运行时通过 `POST /multi_pool/register` 注册。 **查询如何工作:** 1. **N-gram 原子编码** — 输入被编码为位置增强的原子,加上 可选的 bigrams(`{src}:bg.{a}~{b}`)和 trigrams(`{src}:tg.{a}~{b}~{c}`)。 Bigrams 和 trigrams 提供释义泛化——共享 字符子序列的查询会激活重叠的概念集,即使单词边界 不同。IDF 加权(启用时)通过 `ln((C+1)/(count+1))+1` 缩放每个原子的赫布贡献, 钳位在 `[0.5, 4.0]`,因此稀有原子具有更大的权重。 2. **传播** — 在源池中带有一个 sum-no-clamp 累加器的 one hop。 其所有成员均被激发的概念神经元,其激活程度高于仅部分 成员被激发的概念神经元——纯粹的神经辨别,无外部规则。 3. **选择** — 最高激活的源概念(`top_active_concept`)。 4. **交叉投影** — 到每个目标池,通过该池对的 `CrossPoolSynapses`。 5. **解码** — 通过复合成员遍历(字符链)或 STDP 原子遍历 解码目标概念。 **精度加权的级联路由(`/query/integrated`)** 多池回忆是主要传感器;慢池字符链解码器和 EEM 是备用传感器。级联同时触发这三个并按 置信度选择最佳: ``` Input │ ├─► multi_pool (fast associative) ── confidence = product of 3 Bayesian fractions │ ↓ if confidence ≥ threshold │ return multi-pool answer │ ├─► char_chain (slow NeuronPool) ── Bayesian decode confidence │ ↓ if better than multi-pool │ return char-chain answer │ └─► EEM fallback ── equation match score ↓ always last resort return EEM match ``` `POST /query/integrated` 返回 `{answer, method, confidence, all_routes}`,以便 每次推理调用都是完全可审计的——您可以看到哪个传感器处理了每个 查询及其置信度。 **N-gram 编码切换(`POST /multi_pool/use_ngrams`)** ``` { "bigrams": true, "trigrams": true, "idf": false } ``` - `bigrams` — 启用字符对原子;有助于释义回忆 - `trigrams` — 启用字符三元组原子;在类别描述 释义上最强的辨别信号(60% 精确回忆,相比之下无此功能时为 0%) - `idf` — IDF 加权;在低训练强度下使用(passes ≤ 10,lr ≤ 0.2); 在高 passes/LR 下会被边缘饱和冲刷掉 **当前最佳配方(GA 结果,Recipe B,综合得分=0.837):** ``` bigrams=1, trigrams=1, idf=1, passes=7, lr=0.167, hops=1, min_strength=0.155 ``` **交叉布线反馈循环(基因组可切换)** 四条反馈路径在训练和评估时闭合了组件之间的额外信号循环—— 每条都可以被 GA 基因组独立启用或禁用: | 切换 | 它闭合的内容 | |--------|----------------| | `fb_eem_into_mp` | 查询上的 EEM 方程匹配 → 以 ½ LR 将 `(query, equation_text)` 训练到交叉池权重中。EEM 检测到的物理学进入多池结构。 | | `fb_mp_into_slowpool` | 每个被训练进多池的 `(description, code)` 对 → 同时通过 `/media/train` 泵送,以便慢池字符链解码器看到相同的词汇。 | | `fb_replay_low_conf` | 评估后,如果平均置信度 < 0.20 → 触发 `/multi_pool/replay`(CLS 重放)。低置信度触发巩固。 | | `fb_disagreement_ne` | 评估后,如果 ≥ 25% 的查询降级到 char-chain 或 EEM → 释放 0.5 NE 尖峰。路由分歧 → 下一次训练运行中学习率升高。 | **CLS 重放(`POST /multi_pool/replay`)** 将 N 池结构中的概念神经元以可配置的 LR 比例(`cls_lr_scale`)重放回 慢速 NeuronPool。相当于海马体→皮层 巩固:情景性 N 池知识增强了分布式慢池 表征。 **集群增量同步** `POST /multi_pool/delta/export` / `POST /multi_pool/delta/apply` — 兼容于现有 `max(local, remote)` 合并策略的按池权重增量, 因此 N 池结构知识随慢池增量一起 在集群节点之间传播。 **API:** - `POST /multi_pool/register` — 按名称注册新池 - `POST /multi_pool/train_pair` — 跨两个命名池训练 - `POST /multi_pool/train_fanout` — 同时针对多个目标训练一个源池 - `POST /multi_pool/ask` — 向源池发送文本;每个连接的池都会触发其预测 - `POST /multi_pool/replay` — CLS放:将 N 池概念神经元巩固到慢池中 - `POST /multi_pool/delta/export` — 导出用于集群同步的按池突触增量 - `POST /multi_pool/delta/apply` — 应用来自对等节点的传入按池增量 - `POST /multi_pool/use_ngrams` — 实时设置 bigrams/trigrams/idf 标志(`{bigrams, trigrams, idf}`) - `POST /query/integrated` — 精度加权级联:multi_pool → char-chain → EEM - `GET /multi_pool/stats` — 按池大小 + 总交叉边数 ### GA 架构搜索 系统附带了一个完整的遗传算法线束,用于发现最佳 多池配置并启用/禁用交叉布线反馈循环。 **训练语料库**(构建一次,~分钟): ``` # 获取 NCBI/PMC 文章(神经科学、生物场、遗传学、节律) python scripts/fetch_ncbi_corpus.py # 写入 data/foundation/ncbi_pairs.jsonl (约 1185 个 Q-A 对) # 生成科学/工程类语料库 python scripts/build_class_corpus.py # 写入 data/foundation/class_corpus.jsonl (155 对 — 31 个类别 × 5 个释义) ``` **适应度线束(`scripts/ga_node_fitness.py`)** 生成一个全新的节点,以基因组的超参数训练 NCBI 语料库和类别语料库,然后评估: - NCBI 记忆(精确 + Levenshtein 相似度) - NCBI 泛化(保留的释义查询) - 类别描述记忆 - 类别释义精确回忆(最难的指标) - 方程池命中率 返回 [0, 1] 范围内的综合标量。 **广泛 GA(`scripts/ga_node_search.py`)** 探索完整的 17 维基因组: | 组 | 参数 | |-------|-----------| | 多池 | `lr`, `passes`, `hops`, `min_strength` | | 连接切换 | `cls_replay_after_epoch`, `cls_lr_scale`, `eem_in_train_loop`, `train_equation_pool` | | 路由 | `mp_confidence_threshold`, `use_eem_fallback` | | N-gram 编码 | `use_bigrams`, `use_trigrams`, `use_idf` | | 交叉布线 | `fb_eem_into_mp`, `fb_mp_into_slowpool`, `fb_replay_low_conf`, `fb_disagreement_ne` | ``` python scripts/ga_node_search.py \ --pop 4 --max-gens 5 \ --ncbi-max 40 --class-max 15 ``` **范围 GA(`scripts/ga_scoping_search.py`)** 长时间运行的阶段性搜索,围绕当前最佳配方进行钻研。每个阶段: - 评估运行中的最佳作为精英 - 生成利用后代(在当前最佳周围的半径内突变) - 预留 `explore_frac=0.30` 用于广泛半径探索 - 每个阶段有 10% 的机会注入完全随机的基因组 - 在有改进时 → 缩小半径 × 0.85(向下钻研) - 在无改进时 → 扩大半径 × 1.10(逃离局部盆地) ``` # 以 4 小时的时间预算启动(追加到现有日志 — 完全可恢复) python scripts/ga_scoping_search.py \ --pop 6 --max-phases 200 --max-runtime-secs 14400 \ --ncbi-max 25 --class-max 15 \ --log data/foundation/ga_scoping.jsonl # 运行后分析:哪些反馈循环在 GA 压力下存活了下来? python -c " import json lines = [json.loads(l) for l in open('data/foundation/ga_scoping.jsonl')] summaries = [l for l in lines if l.get('phase_summary')] for s in summaries[-5:]: g = s['best_genome'] print(f\"ph{s.get('phase','?')} score={s['best_score']:.4f} \", f\"fb_eem={g.get('fb_eem_into_mp',0)} \", f\"fb_slow={g.get('fb_mp_into_slowpool',0)} \", f\"fb_rep={g.get('fb_replay_low_conf',0)} \", f\"fb_ne={g.get('fb_disagreement_ne',0)}\") " ``` 当前最佳(Recipe B):`combined=0.837`,bigrams+trigrams+IDF,passes=7,lr=0.167。 ### 假设队列和研究反馈循环 当 `/chat` 未返回答案时(多池结构没有针对输入的 联想桥梁),问题会被添加到假设队列,并释放 去甲肾上腺素尖峰(NE = 0.75)。`research_agent.py` 脚本作为后台服务运行: 1. `GET /hypothesis/queue` — 获取未解决的问题 2. 为每个问题获取 Wikipedia REST API + ArXiv Atom API 3. `POST /multi_pool/train_pair` — 将(问题,答案)对摄取到 多池结构中(以及任何额外的池表面,例如方程 id,源 URL)。 4. `POST /media/train` — 在答案文本上训练慢池以实现 跨领域泛化。 5. `POST /hypothesis/resolve` — 以置信度分数将假设标记为已解决。 在解决时,多巴胺的释放与置信度成正比, 并且 `flush_dopamine_potentiation()` 运行——导致 正确预测的连接被追溯加强。这是 海马体-皮层巩固循环的计算等效。 ### 知识图谱(`KnowledgeRuntime`) - JATS/NLM 摄取,包含文本块、图形资产和 OCR 钩子 - 图形与文本关联任务,带有投票和置信度阈值 - 用于涌现维度和新属性的标签队列 - 知识实体与神经结构标签之间的赫布链接 ### 节点模式 两种操作模式——无需更改代码,由 `node_config.json` 控制: | 模式 | 钱包 | 数据网格 | 区块链 | 用例 | |------|--------|-----------|------------|----------| | `SENSOR` | 可选 | 关 | 关 | 本地 AI,训练循环,开发 | | `PRODUCTION` | 必需 | 开 | 开 | 完整的 Web3 混合,集群计算 | 两个 API(`:8080` 神经,`:8090` 节点)都可在任一模式下运行。集群命令始终可用,与模式无关。 ## 节点 API 端点 所有端点都在 `:8090`(节点 API)上。不带子命令启动节点: ``` W1Z4RDV1510N_DATA_DIR="D:\\w1z4rdv1510n-data" ./bin/w1z4rd_node.exe ``` | 端点 | 方法 | 描述 | |----------|--------|-------------| | `/health` | GET | 节点状态和运行时间 | | `/neuro/train` | POST | 将 `EnvironmentSnapshot` 输入神经结构 | | `/neuro/snapshot` | GET | 当前激活、预测、模体、顶级影响 | | `/neuro/propagate` | POST | 输入种子标签 → 返回所有在阈值以上激发的标签;跨模态推理 | | `/neuro/generate` | POST | 使用 QA 门 + 预计算的激活图解码从神经池生成文本 | | `/neuro/checkpoint` | POST | 将神经池和 QA 存储持久化到磁盘 | | `/neuro/sync` | POST | 立即将权重增量强制推送到所有集群对等节点 | | `/neuro/delta/apply` | POST | 接收来自对等节点的增量权重增量(集群内部) | | `/media/train` | POST | 编码并共同训练一个或多个模态:`image`、`audio`、`text`、`motion`、`action`、`full` | | `/media/playback` | POST | 给定目标文本 + 可选屏幕截图 → 预测动作区域(将光标移动到哪里/点击什么) | | `/chat` | POST | 聊天端点——双记忆 CLS 推理:QA 快速路径 + 池泛化 | | `/hypothesis/queue` | GET | 打开假设条目(未通过 QA 置信度门的问题) | | `/hypothesis/resolve` | POST | 用答案和置信度解决假设;触发多巴胺释放 | | `/equations/search` | GET | 跨方程矩阵的文本搜索 | | `/equations/apply` | POST | 找到解释活跃传感器标签 + 维度的方程 | | `/equations/ingest` | POST | 从自由文本添加方程 | | `/equations/report` | GET | 完整的 EEM 报告:按学科计数,顶级方程 | | `/equations/gaps` | GET | 按跨节点佐证排序的开放假设缺口 | | `/equations/peer_sync` | POST | 接收来自对等节点的 `EemPeerPayload` | | `/causal/graph` | GET | 命名过程的因果图:传感器簇 → 物理过程 | | `/network/patterns/sources` | GET | 用于跨节点源追踪的首位报告者起源索引 | | `/multi_pool/register` | POST | 在 N 池结构中注册新的命名池 | | `/multi_pool/train_pair` | POST | 跨两个命名池训练——对称 | | `/multi_pool/train_fanout` | POST | 同时针对多个目标训练一个源池 | | `/multi_pool/ask` | POST | 向源池发送文本——其他每个池都会触发其预测 | | `/multi_pool/replay` | POST | CLS 重放:将 N 池概念神经元巩固到慢池中 | | `/multi_pool/delta/export` | POST | 导出用于集群同步的按池突触增量 | | `/multi_pool/delta/apply` | POST | 应用来自对等节点的传入按池增量 | | `/multi_pool/use_ngrams` | POST | 实时设置 bigram/trigram/IDF 编码标志 | | `/multi_pool/stats` | GET | 按池大小 + 总交叉边数 | | `/query/integrated` | POST | 精度加权级联:multi_pool → char-chain → EEM | | `/knowledge/ingest` | POST | 将文档摄取到知识图谱中 | | `/knowledge/vote` | POST | 对知识关联进行投票 | | `/streaming/labels` | GET | 用于人工标注的标签队列 | | `/network/patterns/query` | POST | 查询分布式模式索引 | | `/threat/ingest` | POST | 摄取行为威胁数据 | | `/threat/overlay` | GET | 当前威胁和健康覆盖 | | `/metrics` | GET | 节点性能指标 | | `/cluster/init` | POST | 将此节点作为集群协调者启动;返回加入 OTP | | `/cluster/join` | POST | 使用协调者地址 + OTP 加入现有集群 | | `/cluster/leave` | POST | 离开集群并释放端口 51611 | | `/cluster/status` | GET | 集群拓扑、环状态和节点列表 | | `/cluster/sync/status` | GET | 分布式训练协调者状态:对等节点、同步步骤、调用计数 | ## 传感器格式 每个数据源都转换为 `EnvironmentSnapshot`。当向 `POST /neuro/train` 发送数据时, 将其包装在 `snapshot` 键中: ``` { "snapshot": { "timestamp": { "unix": 1712345678 }, "bounds": { "x": 8.0, "y": 8.0, "z": 0.0 }, "symbols": [ { "id": "piece_white_K_e1", "type": "CUSTOM", "position": { "x": 4.0, "y": 0.0, "z": 0.0 }, "properties": { "role": "K", "color": "white", "zone": "0,0", "stream": "chess", "result": "1-0" } } ], "metadata": { "stream": "chess", "player_white": "Magnus" }, "stack_history": [] } } ``` 对于文本、图像、音频和动作数据,推荐使用 `POST /media/train`——它会自动处理编码,是所有训练脚本的推荐路径。 棋子、LiDAR 点、股票报价、化学状态、人群区域——全部是相同的格式。节点通过相同的神经结构同时从所有这些数据中学习。 **2D 和 3D 传感器原生处理。** `z` 坐标在 2D 传感器中为 0.0;结构学习空间模式,而不受维度限制。方程矩阵使用 `dims` 字段来过滤适用的物理方程——Anyons 只出现在 2D 传感器上下文中,Maxwell 在 3D 中,热力学无处不在。 ## 去中心化节点网格 - **P2P 网络**:libp2p gossipsub + Kademlia + mDNS;速率限制和对等节点评分 - **数据网格**:清单、分块、复制收据、完整性审计、修复请求、存储奖励 - **神经结构共享**:每 20 次训练调用进行一次增量权重增量同步——每个节点仅导出自上次同步以来更新的突触,并通过 `POST /neuro/delta/apply` 将其推送到所有对等节点;对等节点以 `max(local, remote)` 合并,从而在不覆盖的情况下积累知识;新工作者加入时从现有节点引导 - **方程共享**:`EemPeerPayload` 在节点之间传播方程发现和假设缺口;对等方程获得较低的初始置信度,并且必须得到本地传感器数据的佐证 - **本地账本**:验证器心跳、费用市场脚手架、审计链、奖励事件 - **多链桥**:意图追踪 + 中继者法定人数证明验证 - **加密钱包**:节点身份和奖励;在 SENSOR 模式下可选 ## 它能做什么(完整技术栈) ### 1) 符号矩阵推理引擎 退火器通过在候选配置上搜索,并根据能量接受或拒绝它们来预测环境状态。它不是一个独立的优化器——它在神经模体架构内部运行。 **模体驱动的提案。** 提案核不是从当前状态随机扰动,而是从神经结构快照中读取 `temporal_motif_priors`,并将提议的符号位置拉向结构期望看到的模体类质心。`prediction_pull` 和 `working_memory_pull` 可按部署配置;没有硬编码的值。 **相干性调制的温度。** 冷却时间表不是固定的曲线。每次迭代后,退火器从神经快照读取 `mean_prediction_confidence` 并设定 `T_eff = T_schedule / (confidence + 0.1)`。当结构自信时——紧密的模体对齐,低预测误差——温度下降,退火器快速收敛。当结构不确定时——新模式、冲突的模体——温度保持高位,退火器进行探索。结构的认知状态就是恒温器。 **模体先验能量项。** `motif_transition` 能量项惩罚与结构学习到的序列期望相矛盾的提议状态。符号位于与高先验模体类一致的位置的_states_获得较低的能量。不匹配任何学习到的模体期望的状态将获得与所有已知质心的距离成正比的新奇惩罚。能量景观是由经验塑造的,而不仅仅是物理约束。 - 稳态:如果最小能量在 `patience` 次迭代中停滞,温度将被重新加热并且突变率提升防止过早收敛 - 带有 ESS 阈值的种群重采样:当粒子多样性崩溃时,进行重采样和变异 - 经典和量子启发的退火;用于远程量子硬件的校准钩子 - AtomicU64 无锁接受计数器;硬件自适应并行性 ### 2) 神经结构和跨流推理 #### 训练 - `observe_snapshot()` — 摄取任何 `EnvironmentSnapshot`;将符号转换为区域/角色/元数据标签,跨所有激活的神经元进行赫布更新 - `train_weighted_with_meta()` — 带有完整元数据上下文的加权赫布更新;神经调节剂门控的 `effective_lr = lr_scale × ACh × (1 + NE × 2.0)`;每次通过更新预测 EMA - 神经元累积多达 16 条影响记录(当满时淘汰最弱的);来自相同流+标签集的记录被合并并且强度取平均值 #### 推理 - `cross_stream_activate(labels, target_stream, hops)` — 逐跳通过赫布突触传播,收集匹配目标流的激活 - `reconstruct_sequence(frames, target_stream, hops)` — 带有来自连续帧之间余弦相似度的动态传递因子的时间序列重建 - `propagate(seed_labels, hops)` — 每跳带有 kWTA 的被动突触行走;不改变池状态 - `propagate_predictive(pathways, hops, min_activation)` — 只有预测误差会在跳变 0 之后传播 #### 快照 `NeuroSnapshot` 暴露:`active_labels`、`active_networks`、`minicolumns`、`centroids`、`network_links`、`temporal_predictions`、`temporal_motif_priors`、`top_influences`、`active_streams`、`active_meta_labels`、`working_memory` ### 3) 环境方程矩阵 EEM 弥合了原始传感器模式与物理解释之间的差距。随着神经结构激发标签,EEM 呈现出控制所观察现象的候选方程。它是现代物理学和工程学的完整映射——27 个学科的 339 个方程——编译到节点中,以便任何传感器流都可以通过物理定律的视角进行解释。 - 方程积累传感器驱动的证据;那些持续解释观察结果的方程获得置信度;那些不能的则会衰减 - 当结构激发不匹配任何方程的标签时,将打开一个 `HypothesisSlot`——节点将其记录为等待发现的无法解释的现象 - 对等节点通过 `EemPeerPayload` 共享它们的方程发现;合并的方程在被本地传感器数据佐证之前必须获得完全的置信度 - 系统具有自我研究能力:新的传感器模式驱动新的假设;对等知识填补缺口 **覆盖范围亮点**: - 从 F=ma 到标准模型拉格朗日量和 Higgs 势 - 从所有四个定律到 Jarzynsky 涨落定理的热力学恒等式 - 从 QM 到 QFT 的量子力学:Dirac 方程、重整化群、Bell 态 - GR:Einstein 场方程、Schwarzschild 度规、Hawking 温度、引力波 - 拓扑物理:Chern 数、Berry 曲率、Z₂ 不变量、Kitaev 链 - 混沌与复杂性:Lyapunov 指数、Fokker-Planck、Kuramoto 振荡器、KAM 定理 - 生物物理学:Hodgkin-Huxley 神经元模型、Lotka-Volterra、Einstein/Stokes-Einstein 扩散 - 信息论:Shannon、KL 散度、Fisher 信息、Cramér-Rao 界 **模式源检测**通过三个连锁机制工作——无需特定领域的检测器: 1. **EEM 在每个训练帧上自动应用** — `POST /neuro/train` 现在自动对快照的传感器标签运行 `apply_to_context`。每个匹配的方程都获得证据;未匹配的标签簇打开或增加一个 `HypothesisSlot`。EEM 积累了关于传感器流中活跃物理过程的连续记录。 2. **命名过程因果图(`/causal/graph`)** — 每次调用 `equations_apply` 都会将有向边 `sensor::{label_cluster_hash} → process::{equation_id}` 写入因果图。随着时间的推移,协调的信号会表现为从单个传感器簇到特定过程节点(例如 `process::kuramoto_coupling`)的高权重边。跨越时间戳向后追踪这些边,可以将波前追踪到其起源。 3. **跨节点首位报告者索引(`/network/patterns/sources`)** — 对等节点返回的每个模式线程都记录了首次目击的节点 ID 和时间戳。最早出现且随后获得最高佐证的节点是该模式的统计来源——这就是通过社交网络传播的协调信息战如何被追溯至其注入点,而无需任何特定于应用程序的逻辑。 缺口升级:`HypothesisSlot` 条目现在包含 `first_node_id` 和 `reporting_nodes`。在 `/equations/gaps` 中,在多个独立节点上观察到的缺口会被排在最高位置,并包含在 `EemPeerPayload` 中,以便通过 `POST /equations/peer_sync` 进行全网升级。多个节点都能看到但无人能解释的缺口,是环境中存在真正新奇现象的最强烈信号。 **Anyon 注释**:anyons(任意子)是仅存在于二维拓扑系统中的准粒子。它们的交换统计(`ψ → e^{iθ}ψ`)既不是玻色子(θ=0)也不是费米子(θ=π),而可以是任意角度——这是二维拓扑的基本结果。EEM 正确地执行了这一点:anyon 方程、Chern-Simons 作用量和分数电荷方程仅在活动传感器上下文标记为 2D 时才会出现。3D 传感器流永远不会看到它们。 ### 4) 流式超日节律分析 pipeline - 人员视频 / 姿态帧 → 运动特征 + 行为原子 - 人群/交通信号 → 流动层(密度、速度、方向性、停走波、日/周周期) - 公共话题流 → 事件层(突发/衰减/激发/超前-滞后/周期性) - 提取超日微觉醒、BRAC 和中层作为相位/振幅/相干性 - 使用容差窗口和按源置信度门控跨模态对齐 - 可选的 OCR 适配器通过文本块丰富视频帧 ### 5) 行为基底和模体 模体是退火器和 EEM 交易的通用媒介。分层模体运行时从行为基底中挖掘重复的时间序列,将它们在层级间提升,并暴露出其他一切所依赖的预测。 - 身体图式适配器将多模态传感器映射到共享的潜在状态 + 动作向量 - 变点分割加上固定窗口以实现稳定覆盖 - 使用归一化编辑距离、图签名和 MDL 成本进行模体发现 - 吸引子检测:当转移熵降至阈值以下时,该序列被标记为吸引子——环境锁定在其中的稳定状态 - `next_predictions(last_id)`——给定最近的模体,返回跨所有层级向后续模体的学习转移概率;这是提议内核采样的依据 - `mean_transition_entropy()`——被退火器用作相干信号以进行温度调制的结构确定性标量 - `window_tail(n)`——用于作为预测种子的当前观察窗口尾部 - 元模体通过无限层级提升:level-0 序列变成 level-1 元模体,后者再变成 level-2 元模体,直到信号耗尽 - 行为图耦合指标:接近度、相干性、相位锁定、转移熵代理 ### 6) 多域融合和时间推理 - 学习到的多域超图通过衰减、TTL 和门控将 token 和层链接起来 - 时间推理预测相位/振幅/相干性漂移、跨层相干性以及下一个事件的强度 - 证据输出使用 Dirichlet 后验来表示事件和状态的不确定性 ### 7) 因果图和分支未来 - 具有时间滞后边和干预增量的流式因果图更新 - 反事实 do()-式干预为分支有效载荷提供信息 - 分支未来包括置信度/不确定性和回溯遗漏事件 ### 8) 在线学习、一致性分块和本体 - 带有信任区域更新和回滚保护的惊奇加权重放库 - 地平线管理器仅在校准改善时扩展 - 一致性分块从稳定模体构建可重用模板(码本) - 本体运行时在分钟/小时/天/周窗口中对标签进行版本控制 ### 9) 知识摄取和教科书问答 - 带有文本块、图形资产和 OCR 钩子的 JATS/NLM 摄取 - 带有投票和置信度阈值的图文关联任务 - **教科书 pipeline** (`textbook_scripts/`):下载 CC 许可的 OpenStax PDF,使用微皮层感知器分类器将页面分割成带标签的边界框,提取问答候选对,发出供人工注释的审查队列 - **Hebbian 问答结构**:经验证的问答对被编码到突触状态;在查询时,问题 token 激发输入神经元;输出网络呈现排名答案——推理时无矩阵数学运算 - **自主研究循环** (`scripts/research_agent.py`):轮询 `/hypothesis/queue`,获取 Wikipedia + ArXiv 内容,摄取答案,使用 DA 奖励信号解决假设 ### 10) 健康、生存和威胁叠加层 一个基于物理学的多维健康模型,适用于任何实体——人类、动物、机器、植物——可通过传感器流在无生物传感器的情况下进行观察。 #### 6D 健康向量 | 维度 | 简称 | 色相 | 含义 | |-----------|-------|-----|---------| | StructuralIntegrity | SI | 0° 红色 | 物理基底完整性 | | EnergeticFlux | EF | 30° 橙色 | 能量获取和分配 | | RegulatoryControl | RC | 210° 蓝色 | 稳态与协调 | | FunctionalOutput | FO | 120° 绿色 | 特性操作能力 | | AdaptiveReserve | AR | 270° 紫色 | 吸收进一步压力的储备能力 | | TemporalCoherence | TC | 60° 黄色 | 生物/运行节律完好 | HSV 颜色编码:值 = 总标量 (0=死亡/黑色,1=最佳/白色);色相 = 维度锚点的加权圆均值;饱和度 = 与滚动基线的偏差。 #### 空间威胁场和意图推理 - 稀疏的 2D 网格近体区域 (Hall 1966):亲密 / 个人 / 社交 / 公共 - 9 个意图类别上的贝叶斯式 softmax:正常 → 勘查 → 接近 → 隐藏 → 控制环境 → 强制接近 → 逃离 → 直接威胁 → 武装威胁 - 信号衰减防止过时锁定;`build_health_impacts()` 随时间范围投射未来的健康增量 #### 波函数坍缩共识 通过互补概率规则进行多实体共识:`consensus = 1 - ∏(1 - estimate_i)`。在 16 帧历史上跟踪香农熵;当熵降至 0.35 以下且下降幅度 >5%/帧时,宣告波函数坍缩。警报级别:无 / 低 / 中 / 高 / 严重。 #### 健康传播图 带有速度和维度权重的类型化边(结构、血管、神经、邻近)。Hebbian 边学习:边两端同时出现的退化会加强该边(每次同时出现 +0.02)——系统通过观察学习解剖学耦合。 ### 11) 全网神经结构 - 跨节点共享模体、转换和网络模式摘要 - 实体线程跟踪表型 token、行为签名和合理的传播时间连续性 - 可查询的分布式模式索引保持节点对齐 - 对等神经快照以低学习率训练本地权重,从而自动实现跨节点学习 ### 12) 节点堆栈和激励 - 带有速率限制和对等评分的 P2P 网络(libp2p gossipsub + Kademlia + mDNS) - 数据网格:清单、分块、复制回执、完整性审计、修复请求 - 本地账本:验证器心跳、费用市场脚手架、审计链、奖励事件 - 多链桥:意图跟踪 + 中继器法定人数证明验证 - 用于节点身份和奖励的加密钱包 - 传感器 / 生产模式切换——在传感器模式下无密码短语提示 ### 13) 选择性加入的身份验证 - 行为派生的挑战(位置 + 运动签名 + 代码)绑定到链上的钱包 - 支持通过 API 将绑定重新颁发给新钱包 - 无面容 ID,无生物识别身份解析 ### 14) 自适应资源治理 (`ResourceMonitor`) - **系统中任何地方都没有硬编码的 CPU、RAM 或批处理限制** - 通过 `psutil` 监控实时系统使用情况;为操作系统和交互式使用保留可配置的余量 - 在资源充足时以小步骤提升工作负载;在压力下快速降低工作负载 - 应用于批处理大小、游戏/样本计数和迭代休眠——一切同步缩放 - 使用节点的脚本实现 `ResourceMonitor`;节点本身始终保持响应 ## 脚本应用模式 节点公开了一个通用 API。脚本定义领域。以下是可以针对现有 API 编写的四类脚本,无需更改节点。 ### 对话 / LLM 风格 通过 `/multi_pool/train_pair` 使用 `src_pool: "in", tgt_pool: "out"` 输入对话对(`question → answer`)。在推理时,`/chat` 通过多池结构激发问题原子——当训练对匹配时进行精确召回;对释义和 OOD 输入进行最近邻召回。当结构没有关联桥接时,慢速 NeuronPool 字符链解码器作为后备方案。针对相同源池训练的附加池(情绪、方程、运动)并行激发——`/chat` 返回主答案加上所有其他连接池的 `predictions`。 这是关联检索 + 预测编码,而非自回归生成。响应是从训练状态中激活的,而不是逐个 token 生成的。适用于事实回忆、领域问答以及与先前交流共享词汇的后续问题。 ### 代码辅助 代码具有很强的模体结构——函数签名、样板代码、API 调用序列通过 `HierarchicalMotifRuntime` 快速提升。桥接脚本将源文件 token 化为带标签的符号(函数名、关键字、位于行/列位置的标识符),并将其作为 `EnvironmentSnapshot` 序列输入。已知的问题→解决方通过 `/multi_pool/train_pair`(src_pool `"in"`,tgt_pool `"out"`)输入。 **这是组合生成,而非检索。** 给定一个结构从未见过的纯英文指令——“create a vehicle tracker class”——该过程是: 1. 指令在语言流中激发标签:`vehicle`、`tracker`、`class`、`position`、`update`、`state` 2. 跨流激活通过 Hebbian 突触将这些标签传播到代码流:`class` → `encapsulation`、`__init__`、`self`、`attribute`;`tracker` → `list`、`append`、`query`、`history`;`position` → `x`、`y`、`float` 3. 由于重复的共激发而坍缩的微柱作为单元激发——`class + __init__ + self + attributes` 成为单个概念级别的激活 4. 模体运行时提供结构序列先验:`class_definition → attribute_block → constructor → methods` 是一个高置信度的学习转换 5. 退火器搜索满足所有已激活约束的代码符号的最小能量配置——它构建了一个从未存在于训练数据中的类 结果是真正新颖的——由指令在所有训练流中激活的所有内容的交集组装而成。该机制不同于自回归 LLM token 预测(基于 token 的学习条件概率分布),但其组合能力是等效的:从学习的结构知识中生成新代码,而不是记忆检索。 ### 科学与工程问答 最强大的原生契合点。EEM 已经包含相关方程;教科书 pipeline(`textbook_scripts/`)已经从 OpenStax PDF 中提取了问答对;`/knowledge/ingest` 处理 JATS/NLM 论文。脚本摄取领域材料,然后在查询时将 `/chat` 与 `/equations/apply` 结合使用——答案同时来自 Hebbian 结构和方程匹配。 跨域迁移是一个真正的优势:一个热力学问题会激活从同时训练的其他领域构建的能量平衡连接。当没有方程能良好匹配时,系统会显式报告一个假设缺口,而不是返回一个自信但错误的答案。然后研究代理获取答案,系统自主从中学习。 ### GUI / 屏幕截图理解 节点不处理原始像素。桥接脚本处理视觉:截屏 → 通过 OCR/视觉工具(Tesseract 或 API 调用)→ 提取带有边界框的 UI 元素 → 将每个元素转换为带有位置和属性的符号 → `POST` 到 `/neuro/train` 或用作查询上下文。 ``` { "id": "button_OK", "type": "UI_ELEMENT", "position": { "x": 412, "y": 308, "z": 0 }, "properties": { "label": "OK", "element_type": "button", "app": "chrome" } } ``` 该结构学习哪些 UI 元素排列与哪些操作同时发生;模体系统学习跨 Windows、macOS、Linux、Android 的 GUI 工作流——任何其屏幕可以被 OCR 识别的平台。在泛化到每个应用程序之前需要进行训练接触。 ### 多模态屏幕导航(光标 / 交互学习) `ImageBitsEncoder`、`TextBitsEncoder` 和 `MotionBitsEncoder` 共享一个 8×8 网格,这意味着朝向像素区域 (3,2) 的光标轨迹、区域 (3,2) 的图像特征以及区域 (3,2) 的文本,都通过带有 `modality: "full"` 的 `POST /media/train`训练同一个神经元家族。 **训练**:脚本捕获屏幕截图、目标文本和鼠标轨迹,然后将它们一起 POST。结构将文本标签(目标内容)与运动标签(光标去向)进行 Hebbian 连接。 **推理**(`POST /media/playback`):给定目标文本和可选的屏幕截图,节点通过学习的突触传播文本的判别标签,并返回预测的动作区域以及是否预期点击。脚本将该区域转换回像素坐标并执行操作。 **范围边界**:节点学习标签关联。*脚本*操作 Playwright,截屏,移动鼠标并点击。节点从不直接驱动 UI。 ``` # 训练循环(train_obstacle.py 模式) result = httpx.post("/media/train", json={ "modality": "full", "data_b64": screenshot_b64, # -> img: labels "text": "click the red button", # -> txt: labels "motion": trajectory_points, # -> mov: labels, act:click "lr_scale": 1.0, }) # 推理(playback_obstacle.py 模式) result = httpx.post("/media/playback", json={ "goal": "click the red button", "hops": 1, }) # -> {"action": {"type": "move_and_click", "zone_x": 0, "zone_y": 1, ...}} ``` **锚点训练**是用于判别的关键技术:在完整轨迹训练的同时,仅使用唯一判别词和端点并以 `lr_scale: 5.0` 发布一个聚焦调用。这会创建一个强大的直接关联,从而避免受每个目标中出现的共享词汇("click"、"the"、"button")噪声的干扰。 ``` # 锚点:仅颜色词 + 端点,高权重 httpx.post("/media/train", json={ "modality": "full", "text": "red", # unique word only "motion": [{"x": fx, "y": fy, "t_secs": 0.0, "click": True}], "lr_scale": 5.0, # outweighs shared-word noise }) ``` ## 应用 / 脚本(示例) 这些脚本使用节点架构——节点不知道它们的领域: | 脚本 | 领域 | 发送内容 | |--------|--------|---------------| | `chess_training_loop.py` | 国际象棋 | 棋盘位置作为 2D `EnvironmentSnapshot`;移动作为问答对通过 `/multi_pool/train_pair` | | `rtsp_pose_bridge.py` | 视频 / 姿态 | 姿态关键点作为 3D 符号位置 | | `rss_topic_bridge.py` | 话题 | 话题信号作为流事件 | | `traffic_sensor_bridge.py` | 交通 | 流数据作为人群传感器流 | | `textbook_scripts/` | 知识 | 来自 OpenStax 教科的问答对通过 `/multi_pool/train_pair` 摄取 | | `scripts/train_obstacle.py` | 屏幕导航 | 屏幕截图 + 目标文本 + 鼠标轨迹通过 `/media/train`;用于判别的锚点对 | | `scripts/playback_obstacle.py` | 屏幕导航 | 目标文本 → `/media/playback` → 预测区域 → Playwright 光标动作 | | `scripts/research_agent.py` | 假设解决 | 轮询 `/hypothesis/queue`,获取 Wikipedia + ArXiv 内容,通过 `/multi_pool/train_pair` + `/media/train` 摄取,通过 `/hypothesis/resolve` 解决 | | `scripts/chat.py` | 交互式 REPL | `/train`、`/pair`、`/reg`、`/raw`、`/pools` 命令;使用 `/query/integrated` | | `scripts/fetch_ncbi_corpus.py` | 训练语料库 | 获取 NCBI/PMC 文章(神经科学、生物场、遗传学、节律)→ `data/foundation/ncbi_pairs.jsonl` | | `scripts/build_class_corpus.py` | 训练语料库 | 生成 31 个科学/工程类别 × 5 种释义变体 → `data/foundation/class_corpus.jsonl` | | `scripts/ga_node_fitness.py` | GA 线束 | 适应度评估器:生成节点,训练 NCBI + 类别语料库,评估记忆 + 释义 + 泛化 | | `scripts/ga_node_search.py` | GA 搜索 | 17 维基因组(多池参数 + 连接开关 + 路由 + n-gram + 交叉布线);自适应 GA | | `scripts/ga_scoping_search.py` | GA 演练 | 分阶段范围 GA,从配方 B 开始 (combined=0.837);在改进时缩小半径,保留探索比例 | | `scripts/integration_test.py` | E2E 测试 | 针对活动节点的端到端集成测试 | | `scripts/stress_test.py` | 负载测试 | 并发训练 + 查询负载测试 | **添加新领域**:将您的数据转换为 `EnvironmentSnapshot`,`POST` 到 `/neuro/train`,并将带标签的对发送到 `/multi_pool/train_pair`。可选择调用 `/equations/apply` 获取物理上下文。节点会将其与其他所有内容一起学习。 对于多模态领域(图像 + 文本 + 运动):使用编码器库中的 `ImageBitsEncoder`、`TextBitsEncoder`、`MotionBitsEncoder` 将原始数据转换为标签,然后 `POST /media/train`。节点的神经结构与所有其他训练所用的结构相同。 ## 运行 — 完整教程 ### 前置条件 ``` # Rust 工具链(稳定版,Windows 上为 GNU target) # 设置 PATH 以确保找到 dlltool.exe(仅限 Windows) export PATH="$PATH:/c/Users/Node/.cargo/bin:/c/Users/Node/AppData/Local/Microsoft/WinGet/Packages/BrechtSanders.WinLibs.POSIX.UCRT_Microsoft.Winget.Source_8wekyb3d8bbwe/mingw64/bin" # Python 依赖项(安装一次) pip install httpx httpx[http2] aiohttp pillow requests nltk # bin/ 中的 Node 二进制文件(构建或使用预构建版本) cargo build --release --workspace cp target/release/w1z4rdv1510n-node.exe bin/w1z4rd_node.exe # Windows # cp target/release/w1z4rdv1510n-node bin/w1z4rd_node # Linux/macOS ``` ### 1. 启动节点 节点在启动时公开两个 API: - **`:8090` — 节点 API**:所有训练路由(`/media/train`、`/multi_pool/*`、`/query/integrated`、`/chat`、`/neuro/*`、`/hypothesis/*`、`/equations/*`、`/health` 等) - **`:8080` — 神经 API**:用于快照读取和传播的内部轻量级 API **所有训练脚本均使用端口 8090。** 始终从项目根目录启动,并设置 `W1Z4RDV1510N_DATA_DIR`,以便神经池数据持久化到正确位置。 ``` # Windows (Git Bash / PowerShell) cd /d/Projects/W1z4rDV1510n W1Z4RDV1510N_DATA_DIR="D:\\w1z4rdv1510n-data" ./bin/w1z4rd_node.exe # 验证两个 API 均已启动 curl http://127.0.0.1:8080/healthz # neuro API (uses /healthz, not /health) curl http://127.0.0.1:8090/health # node API ``` 节点 API 的预期输出:`{"status":"OK","node_id":"node-...","uptime_secs":0,...}` ### 2. 交互式聊天 ``` # 简单的 curl 单次执行 curl -s -X POST http://127.0.0.1:8090/chat \ -H "Content-Type: application/json" \ -d '{"text": "What is gravity?", "hops": 2, "top_k": 5}' # 具有假设追踪和情感的全对话界面 python scripts/chat.py --node http://127.0.0.1:8090 # 在聊天中输入 /help 获取命令,输入 /quit 退出 ``` ### 3. 阶段 0 — 幼儿基础训练 阶段 0 构建基础词汇:从字母到幼儿园级别概念的约 1,675 个概念。 在全新节点启动(空池)之后、任何其他训练之前运行此步骤。 **步骤 1 — 构建概念数据集**(运行一次;输出缓存在 `data/foundation/` 中) ``` pip install nltk python -c "import nltk; nltk.download('wordnet'); nltk.download('omw-1.4')" python scripts/build_concept_dataset.py # 写入 data/foundation/concept_dataset.jsonl (约 1,675 条目) ``` **步骤 2 — 训练** ``` python scripts/train_foundation.py \ --node http://127.0.0.1:8090 \ --pass concepts \ --concurrency 8 # 运行时间:约 3-5 分钟;在每个发展阶段后检查点 pool+QA ``` **步骤 3 — 验证** ``` python scripts/test_stage0.py --node http://127.0.0.1:8090 # 预期:26/26 (100%) — “架构看起来很稳固 — 准备好迎接更多训练数据。” ``` ### 4. 基础语言训练(简易英语维基百科) 从约 20 万篇文章中构建广泛的英语单词共现关系。 需要先下载维基百科转储文件(约 300 MB 压缩包)。 ``` pip install requests python scripts/fetch_simple_wikipedia.py # 下载至 data/foundation/simple_wiki_articles.jsonl (约 20 万篇文章) python scripts/train_foundation.py \ --node http://127.0.0.1:8090 \ --pass text \ --concurrency 10 # 运行时间:约 30-60 分钟,取决于硬件 ``` ### 5. K-12 完整课程训练 贯穿所有三个阶段进行训练——幼儿(阶段 0)、入门教科书(阶段 1)和完整 K-12 课程(阶段 2)。需要将 LibreTexts PDF 放在项目根目录的 `textbooks/` 中(即 `D:\Projects\W1z4rDV1510n\textbooks\`)。 使用 `--textbooks` 指向任何其他目录。 ``` # 运行所有阶段(长时间运行 — 数小时) # 注意:使用端口 8090 (Node API) — /media/train 位于此处,而非 8080 python scripts/train_k12.py \ --node http://127.0.0.1:8090 \ --stages 0,1,2 \ --checkpoint-every 100 # 仅运行阶段 0(幼儿概念) python scripts/train_k12.py --node http://127.0.0.1:8090 --stages 0 # 覆盖教科书目录(默认为项目根目录下的 textbooks/) python scripts/train_k12.py --node http://127.0.0.1:8090 --textbooks D:\path\to\textbooks --stages 1,2 # 限制每个阶段 10 本书(用于快速测试) python scripts/train_k12.py --node http://127.0.0.1:8090 --stages 1,2 --max-books 10 # 在中断后恢复(跳过已处理的书本) python scripts/train_k12.py --node http://127.0.0.1:8090 --resume # 全新运行,忽略之前的进度 python scripts/train_k12.py --node http://127.0.0.1:8090 --clear-progress ``` ### 6. 牛解剖学训练 pipeline `scripts/build_cow_dataset.py` 构建多模态牛解剖学数据集并将其直接摄取到节点中。这是 W1z4rD V1510n 牛感知系统的主要训练 pipeline。它运行六个阶段: | 阶段 | 类型 | 大约项目 | 来源 | |-------|------|---------------|--------| | 0 | 合成视觉基元 | 500 | PIL 生成的带有解剖区域标签的形状 | | 1 | 文本语料库 | ~138 | PubMed Central 文章 + 嵌入式解剖学知识库 | | 2 | 视频帧 | 可变 | YouTube CC 许可的牛视频 (yt_dlp, 2 fps) | | 3 | MRI/CT 横截面 | ~400 | 16 个解剖级别 × 3 种模态 × 8 种噪声变体 + 文本文档 | | 4 | 组织学图像 | ~32 | Wikimedia Commons 组织学类别 | | 5 | 蛋白质结构 | ~15 | PDB 记录(与牛相关的蛋白质) | ``` pip install pillow requests yt-dlp # 运行所有阶段 python scripts/build_cow_dataset.py \ --node localhost:8090 \ --data-dir D:/w1z4rdv1510n-data/training # 运行单个阶段 python scripts/build_cow_dataset.py --stages 0 --node localhost:8090 --data-dir D:/w1z4rdv1510n-data/training python scripts/build_cow_dataset.py --stages 3 --node localhost:8090 --data-dir D:/w1z4rdv1510n-data/training # 仅下载(跳过摄入至 node) python scripts/build_cow_dataset.py --download-only --stages 2 --node localhost:8090 --data-dir D:/w1z4rdv1510n-data/training ``` 阶段 3 使用 PIL 生成合成的 MRI/CT 图像——无需外部成像数据。阶段 2 需要安装 `yt-dlp`,并使用 `extractor_args: {youtube: {skip: [webpage]}}` 绕过 YouTube n-challenge。 运行后,查询节点的牛解剖学主题: ``` curl -s -X POST http://127.0.0.1:8090/chat \ -H "Content-Type: application/json" \ -d '{"text": "What is the function of the rumen?", "hops": 2, "top_k": 5}' ``` ### 7. 多池训练和查询 ``` # 注册额外的 pool(in/out 已预先注册) curl -s -X POST http://127.0.0.1:8090/multi_pool/register \ -H "Content-Type: application/json" \ -d '{"pool_id": "emo"}' # 在默认的 in/out pool 上训练 Q -> A 对 curl -s -X POST http://127.0.0.1:8090/multi_pool/train_pair \ -H "Content-Type: application/json" \ -d '{ "src_pool": "in", "src": "what is photosynthesis", "tgt_pool": "out", "tgt": "the process plants use to convert sunlight into food", "passes": 30, "lr": 0.5 }' # 训练一个源对应多个目标(颜色 + 类别 + 情感) curl -s -X POST http://127.0.0.1:8090/multi_pool/train_fanout \ -H "Content-Type: application/json" \ -d '{ "src_pool": "in", "src": "hello", "targets": [ { "tgt_pool": "out", "tgt": "Hello there friend." }, { "tgt_pool": "emo", "tgt": "warm" } ], "passes": 30, "lr": 0.5 }' # 查询 — 每个已连接的 pool 都会触发其自身解码的预测 curl -s -X POST http://127.0.0.1:8090/multi_pool/ask \ -H "Content-Type: application/json" \ -d '{"src_pool": "in", "text": "hello"}' # -> {"predictions": {"out": "Hello there friend.", "emo": "warm"}, ...} # 精度加权级联:multi-pool -> char-chain -> EEM 备用 curl -s -X POST http://127.0.0.1:8090/query/integrated \ -H "Content-Type: application/json" \ -d '{"text": "what is the function of mitochondria", "hops": 2}' # -> {"answer": "...", "method": "multi_pool", "confidence": 0.84, # "all_routes": [{"method":"multi_pool","answer":"...","confidence":0.84}, # {"method":"char_chain","answer":"...","confidence":0.31}]} # 启用 bigrams + trigrams + IDF(最适合释义繁多的语料库) curl -s -X POST http://127.0.0.1:8090/multi_pool/use_ngrams \ -H "Content-Type: application/json" \ -d '{"bigrams": true, "trigrams": true, "idf": true}' # 开启 IDF 时以低强度训练(配方 B,combined=0.837) curl -s -X POST http://127.0.0.1:8090/multi_pool/train_pair \ -H "Content-Type: application/json" \ -d '{ "src_pool": "in", "src": "what is photosynthesis", "tgt_pool": "out", "tgt": "the process plants use to convert sunlight into glucose", "passes": 7, "lr": 0.167 }' # CLS 重放 — 将 N-pool 概念神经元整合回慢速 pool curl -s -X POST http://127.0.0.1:8090/multi_pool/replay \ -H "Content-Type: application/json" \ -d '{"cls_lr_scale": 0.10}' # 每个 pool 的大小 + 总交叉边 curl http://127.0.0.1:8090/multi_pool/stats ``` ### 8. 检查点(将池保存到磁盘) 节点在 RAM 中积累学习成果。检查点将其持久化。 训练脚本会自动调用此操作,但您也可以手动触发: ``` curl -s -X POST http://127.0.0.1:8090/neuro/checkpoint # 返回: {"saved":true,"pool_path":"..."} ``` ### 10. 自主研究代理 轮询假设队列,获取 Wikipedia + ArXiv 答案,摄取它们,并使用多巴胺奖励信号解决每个假设。 ``` pip install aiohttp python scripts/research_agent.py \ --node http://127.0.0.1:8090 \ --interval 30 # poll every 30 seconds ``` ### 11. 神经传播和推理 ``` # 从种子标签传播 — 返回所有被激活的概念标签 curl -s -X POST http://127.0.0.1:8090/neuro/propagate \ -H "Content-Type: application/json" \ -d '{"seed_labels": ["txt:word_gravity"], "hops": 2}' # 从 neuro pool 生成自由格式文本 curl -s -X POST http://127.0.0.1:8090/neuro/generate \ -H "Content-Type: application/json" \ -d '{"text": "photosynthesis", "max_tokens": 30}' # 查询假设队列(节点无法自信回答的问题) curl http://127.0.0.1:8090/hypothesis/queue # 解决假设(触发多巴胺强化) curl -s -X POST http://127.0.0.1:8090/hypothesis/resolve \ -H "Content-Type: application/json" \ -d '{"id": "...", "answer": "...", "confidence": 0.85}' ``` ### 12. 环境方程矩阵 ``` # 按关键字搜索方程式 curl "http://127.0.0.1:8090/equations/search?q=entropy" # 将方程式应用于活跃的传感器标签 curl -s -X POST http://127.0.0.1:8090/equations/apply \ -H "Content-Type: application/json" \ -d '{"labels": ["txt:word_temperature", "txt:word_energy"], "dims": 3}' # 完整报告:按学科统计的方程式数量 curl http://127.0.0.1:8090/equations/report # 开放的假设缺口(按跨节点验证排序) curl http://127.0.0.1:8090/equations/gaps ``` ### 13. 障碍场——基于自然语言的屏幕导航 教节点从纯英文指令中预测光标目标。 ``` pip install playwright httpx playwright install chromium # 终端 1:node(必须已在运行) # 终端 2:训练(打开浏览器,记录鼠标轨迹) python scripts/train_obstacle.py --reps 10 # 终端 2:回放(向 node 请求预测区域,移动光标) python scripts/playback_obstacle.py --auto ``` ### 14. 国际象棋训练 ``` # 终端 1:node # 终端 2:将棋盘状态作为 EnvironmentSnapshots 输入 python scripts/chess_training_loop.py --max-games 8000 # 终端 3:实时可视化工具(自动打开浏览器) python scripts/live_viz_server.py \ --board-file logs/chess_live_board.json \ --port 8765 --open ``` ### 15. 仪表盘 GUI ``` ./bin/w1z4rd_dashboard.exe # Windows # ./bin/w1z4rd-dashboard # Linux/macOS # 默认连接到 :8080 和 :8090;在仪表板设置中进行配置 ``` ### 16. 集群——将多个节点加入一个虚拟大脑 ``` # 机器 A — 启动协调器(打印加入 OTP) w1z4rd_node cluster-init --bind 192.168.1.10:51611 # 机器 B — 使用 OTP 加入 w1z4rd_node cluster-join --coordinator 192.168.1.10:51611 --otp EMBER-4821 # 检查集群拓扑 w1z4rd_node cluster-status --node 192.168.1.10:51611 # 为新加入者生成新的 OTP w1z4rd_node cluster-otp ``` Windows 便捷脚本:`scripts/start_cluster.bat`(协调器),`scripts/start_worker.ps1`(工作节点——提示输入 OTP)。 ### 17. 分布式训练——跨节点的权重增量同步 一旦节点形成集群,分布式训练协调器就会自动运行。 训练调用以循环方式路由到所有节点(包括自身),并且权重增量每 20 次训练调用推送到对等节点。 ``` # 在任何节点上检查分布式同步状态 curl http://127.0.0.1:8090/cluster/sync/status # {"peers":["http://192.168.1.x:8090"],"last_sync_step":1240,"calls_since_last_sync":7,...} # 强制立即向所有对等节点推送权重增量(在大型训练批次后很有用) curl -s -X POST http://127.0.0.1:8090/neuro/sync # {"status":"OK","message":"delta sync queued"} # 绕过轮询调度并在该节点上进行本地训练(x-w1z-local header) curl -s -X POST http://127.0.0.1:8090/media/train \ -H "Content-Type: application/json" \ -H "x-w1z-local: 1" \ -d '{"modality":"text","text":"your training text here","lr_scale":1.0}' ``` **工作原理:** - 每一个 `POST /media/train` 调用都会跨 N+1 个槽位(每个对等节点一个 + 自身)以循环方式路由,因此每个节点训练约 1/(N+1) 的调用 - 每 20 次训练调用,节点导出自上次同步以来更新的突触(权重 ≥ 0.005)以及涉及最近活动神经元的共现对,然后同时向所有对等节点扇出 `POST /neuro/delta/apply` - 对等节点使用 `max(local, remote)` 合并——知识只会积累,永远不会被覆盖 - 当新节点加入时,它会触发对等节点推送其当前增量,用集群积累的知识为其提供种子 - N 池结构增量通过 `/multi_pool/delta/export` 和 `/multi_pool/delta/apply` 导出和应用——与慢池增量相同的 `max(local, remote)` 合并策略 - 连续 5 次调用失败的对等节点将从路由列表中逐出,并在下次集群状态刷新时恢复 ### 常见故障排除 | 症状 | 原因 | 修复方法 | |---------|-------|-----| | 端口已被占用 | 旧节点进程仍在运行 | `powershell -Command "Stop-Process -Name w1z4rd_node -Force"` | | `dlltool.exe not found` | WinLibs 不在 PATH 中 | `export PATH="$PATH:/path/to/mingw64/bin"` | | `/multi_pool/ask` 返回空预测 | 没有训练过该池对的对 | 首先使用 `/multi_pool/train_pair` 进行训练;检查 `/multi_pool/stats` 中的池大小 | | `/query/integrated` 总是返回 `char_chain` | N-gram 编码被禁用或训练次数过少 | 通过 `/multi_pool/use_ngrams` 启用 bigrams/trigrams;使用次数 ≥ 5 | | 检查点保存到 AppData | `W1Z4RDV1510N_DATA_DIR` 未设置 | 在启动节点前设置环境变量 | | Avira 隔离构建构件 | 杀毒软件误报 | 将 `target/` 添加到 Windows Defender 排除项 | | 集群加入返回 409 冲突 | 磁盘上有陈旧的 `cluster_state.json` | 删除 `~/.w1z4rd/cluster_state.json` (Linux/WSL) 或 `%APPDATA%\w1z4rd\cluster_state.json` (Windows) | | 集群加入 OTP "invalid or expired" | 旧的 TCP 监听器仍占用端口 51611 | 终止旧节点进程;进程退出时端口释放 | | `127.0.0.1:8090` 路由到错误节点 (WSL) | WSL 中继 (`wslrelay.exe`) 拦截 `127.0.0.1` | 使用 Windows 节点的局域网 IP(例如 `192.168.1.84:8090`)代替 `127.0.0.1` | | 加入后分布式对等列表为空 | 对等列表仅在首次 `GET /cluster/status` 时填充 | 加入后在每个节点上调用一次 `/cluster/status`,或等待最多 30 秒进行后台刷新 | ## 配置 `node_config.json` 控制节点。主要字段如下: ``` { "node_mode": "SENSOR", "wallet": { "prompt_on_load": false }, "streaming": { "enabled": true, "ultradian_node": true }, "knowledge": { "enabled": true }, "blockchain": { "enabled": true, "chain_id": "w1z4rdv1510n-l1" }, "sensors": [] } ``` 应用在启动时注册它们自己的传感器描述符——节点配置保持与领域无关。 ## 硬件 在普通台式机上运行和跨多节点扩展而设计。系统在启动时 (`HardwareProfile::detect()`) 测量自身的硬件配置文件并自适应: - 共现上限随可用 RAM 缩放 - 模体窗口上限在硬件受限时强制执行 - 退火使用无锁 `AtomicU64` 计数器 - 所有限制均源自测量,从不硬编码
标签:CPU原生计算, k-Winners-Take-All, kWTA, SDR, SNN, STDP, 下一代AI, 分布式人工智能, 可视化界面, 图网络生长, 在线学习, 嵌入式AI, 强化学习, 无GPU计算, 机器人感知, 物联网智能节点, 环境感知, 生物启发AI, 神经形态工程, 神经调节系统, 稀疏分布表示, 稳态突触缩放, 突触可塑性, 类脑计算, 脉冲神经网络, 自主架构生成, 自适应神经网络, 认知计算, 赫布学习, 软件神经织物, 边缘计算, 逆向工具, 通知系统