add doc
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
# NGRA-Tensor 设计讨论记忆
|
||||
|
||||
更新日期:2026-09-17
|
||||
更新日期:2026-09-18
|
||||
目标项目:`D:\platform-dev\src\Nitload.RegularAnalysis`
|
||||
来源:关于正则分析、NFA、Transformer、GPU 执行与 NGRA 双算子设计的讨论。
|
||||
|
||||
> 本文件记录设计意图与讨论结果,不代表项目现有代码已经实现这些功能。本次仅检查了目标目录及祖先目录的 AGENTS.md,没有审计源码。下文区分用户已提出的设计决定、辅助建议与待验证问题。
|
||||
|
||||
最新设计补充(2026-09-18,详见第 10 节):NGRA 使用持久状态上的增量流输入/输出;以连接占用作为主要容量指标的候选方案;容量不足时丢弃低激活连接。**字典本身是结构的一部分,结构是记忆的一部分。** 字典与运行时实例的区分属于身份与生命周期管理,不表示字典位于记忆系统之外。
|
||||
|
||||
## 1. 项目目标与讨论方式
|
||||
|
||||
NGRA-Tensor 试图结合结构化关系、模糊特征识别、多候选解释及模式预测。出发点包含正则模式分析与 NFA,但不应预设必须逐节点模拟 NFA 的执行方式。
|
||||
@@ -286,3 +288,54 @@ token embedding 提供初始向量,不能把后续位置向量理解成始终
|
||||
- [ONNX Concepts](https://onnx.ai/onnx/intro/concepts.html):计算图、节点与 initializer。
|
||||
|
||||
上述资料作为对照,不意味着 NGRA 已被证明等价于其中某种架构。
|
||||
|
||||
## 10. 2026-09-18:持久结构、增量流与连接容量
|
||||
|
||||
### 10.1 用户明确提出的设计方向
|
||||
|
||||
- 从正则引擎的流式增量输入思路演进:输入、输出都在上一次运行结果所保留的状态上继续进行。
|
||||
- 不以每次重新输入完整历史文本作为基本执行语义;历史对当前的影响由已保留的结构及其状态承接。
|
||||
- 容量很可能按连接数量或连接占用评估,而不是按 token 数量评估;具体度量尚未定稿。
|
||||
- 容量不足时,通过丢弃低激活连接释放容量。这是已提出的方向,评分、阈值、删除语义与正确性规则尚未确定。
|
||||
- 字典本身也是结构,结构本身也是记忆。记忆不只包含特征向量数值,还包括对象身份、连接、组合方式、候选与参数化定义。
|
||||
|
||||
### 10.2 建议的抽象接口(非已实现 API)
|
||||
|
||||
```text
|
||||
(S[t+1], ΔO[t]) = Step(S[t], ΔI[t])
|
||||
```
|
||||
|
||||
- `S[t]`:上次保留的结构、字典相关状态、实例特征、候选、待执行依赖及流位置等。
|
||||
- `ΔI[t]`:新增输入;是否包含撤回、修改和外部反馈,需进一步定义。
|
||||
- `ΔO[t]`:本次新增输出;若允许修订先前解释,需要明确输出更新或撤回协议。
|
||||
- `S[t+1]`:完成必要传播与容量管理后保留的状态。
|
||||
|
||||
输入流步 t 与一次输入触发的内部上下传播轮次应分开编号;一次增量输入可能触发多轮关系更新。
|
||||
|
||||
### 10.3 增量失效规则
|
||||
|
||||
Roslyn 增量管线与因果 Tr 的缓存复用提供了讨论类比:依赖没有改变的结果可以复用。但 NGRA 必须按自己的依赖图定义失效,而不能只检查原始文字是否变化。
|
||||
|
||||
- 下游输入、上层反馈、候选集合、相关字典结构或参数的变化,都可能使实例状态失效。
|
||||
- 新输入可能激活此前尚未选择的连接,因此只记录已经活跃的依赖可能不够;候选发现与再激活机制待设计。
|
||||
- 双向反馈可以扩大受影响区域,增量输入不保证只需要少量增量计算。
|
||||
- 纯函数结果复用、依赖版本与参数版本是实现候选,不是目前已经确定的数据结构。
|
||||
|
||||
### 10.4 连接预算与遗忘:需要进一步决定的内容
|
||||
|
||||
1. 预算计算活跃连接、全部保留连接、驻留显存的连接,还是三者分别统计?
|
||||
2. 不同连接携带的特征、参数、元数据大小可能不同;是否采用连接数量加权或真实字节数作为物理预算?
|
||||
3. “丢弃”表示暂停执行、移出显存、删除当前实例边,还是删除可持久化的字典结构?这些行为对记忆的影响不同。
|
||||
4. 当前激活低不必然意味着未来无用或结构可删除;角色绑定、串行 port、待完成模式等所需连接应有明确的完整性规则。
|
||||
5. 连接移除后,哪些实例需要重新评估?候选如何重新发现?还保留哪些历史依据?
|
||||
6. 遗忘顺序不必等同于时间顺序;连接重要性的估计方法和低激活持续时间阈值尚待实验。
|
||||
|
||||
这些是辅助建议与待决问题,不覆盖用户已提出的“容量不足时优先丢弃低激活连接”方向。
|
||||
|
||||
### 10.5 容量与智能的关系:待验证假设
|
||||
|
||||
用户提出“越智能的模型可能上下文更快耗尽”:在相同连接预算下,若模型为同一输入识别并保留更多关系、候选和依赖,容量可能更快用尽。
|
||||
|
||||
这不是已证明的必然关系。更好的抽象、共享、合并与剪枝也可能降低连接需求。后续应测量单位输入的新增连接、保留连接、复用率、候选召回与任务质量,而不是直接把智能程度等同于连接消耗。
|
||||
|
||||
补充参考:[Roslyn Incremental Generators Cookbook](https://github.com/dotnet/roslyn/blob/main/docs/features/incremental-generators.cookbook.md#pipeline-model-design)。该资料只支持增量管线类比,不证明 NGRA 的依赖追踪或遗忘方案正确。
|
||||
|
||||
Reference in New Issue
Block a user