# 人类记忆

#### 为什么需要记忆

1. 人脑有非常强大的记忆系统和索引能力，管理着非常庞大的信息，能够准确联想起来非常多的记忆

   1. 记忆是AGI的一种重要能力
2. 因为大脑容量限制，记忆是人类在当前信息爆炸的社会的最重要瓶颈

   1. 其他的还有类似：推理逻辑能力，运算能力等等
   2. 刨除记忆能力，其他的能力当前LLM已经有一个比较可用的实现
   3. 记忆能力可能成为下一个快速增长的瓶颈点

      1. 是不是未来会是：一个专注于基本语言和推理能力的小模型+大型的记忆系统
      2. 不断的提升记忆内容的质量（效率，自洽度...）、内容的数量、效率
3. 数据库样式的存储记忆（类似RAG）不能满足现代需求

   1. 没有进行良好的抽象、归纳和整理，只是靠搜索引擎进行匹配检索

      1. **不能根据已经有的背景知识进行复杂的逻辑推导**
      2. 不能利用知识进行慢思维（系统二）
   2. 不能用于复杂的深度推理思考活动

      1. 当前AI能利用搜索信息进行综合判断，本质上还是在处理临时信息，而不是庞大的记忆
      2. 大量的人类知识和语言能力都存储在了LLM模型的权重里面，对于这部分能做到类似人脑的处理能力，而且因为模型规模庞大，在知识范围方面超过了单个人类。但是只能用于存储成规模的大众通用的知识，而不能存储专业的私有信息知识，或者是个人的笔记
   3. LLM关于记忆

      1. 不能通过无限的在线上下文（kv cache）来实现记忆：效率太低
      2. 需要在背景持续对大量的记忆进行加工，整理，总结出规律和抽象，提升记忆检索和使用的效率
4. 相关的尝试

   1. 人工结合**蒙特卡洛搜索算法**

      1. 微软rStar-Math：只是局限于对CoT的知识进行记忆
      2. AlphaGo：人工算法选择特定的权重，从而选择特定的记忆
   2. **Tool-Integrity Reasoning （TIR）**

#### 记忆的信息分类

1. 规则、约束

   1. xxx应该是xxxx
   2. xxx是xxxx
2. 逻辑、推论

   1. 如果xxx则xxxx
   2. xxx那么xxx
3. 现象、动作、陈述

   1. 吃饭
   2. 车开起来了

#### 记忆的组织

1. meaning tree

   1. 句子、单词级别
   2. 需要存储非常大的信息量，可能需要直接存储到模型权重
   3. **需要比较高级的抽象能力，当前LLM不具备，很多表示不能用语言表达**
   4. 需要进行微调、训练
2. 总结、类似脑图

   1. 段落级别
   2. 可以存储在传统数据库
   3. 可以通过prompt实现

#### 记忆的操作

1. 六种基本记忆操作：

   1. 巩固（Consolidation）

      1. **反复训练、推理、更新**
      2. **修复不正确的、有矛盾的记忆，维持自洽**
   2. 更新（Updating）
   3. 索引（Indexing）

      1. 对已有知识的联想、推理
      2. 深度、广度和效率是效果的重要指标
   4. 遗忘（Forgetting）

      1. 删除长期不用的、孤岛记忆、有矛盾的记忆
   5. 检索（Retrieval）
   6. 压缩（Compression）

      1. **对已经存在的记忆进行抽象，提取更高级的概念，重新组织记忆的表达形式**
      2. **语义压缩，能够高效地组织知识、迅速地对世界进行分类**
      3. **抽象的合理性**
2. AI中的记忆表示划分为

   1. 参数化记忆

      1. 在权重中，通过梯度下降进行改变
      2. 黑盒，难以进行精确的操作
   2. 上下文记忆

      1. 向量：KV cache等推理产生的中间值
      2. 非结构化上下文记忆：引用信息，视频
      3. 结构化的上下文记忆：指将记忆内容组织为预定义、可解释的格式或结构（如知识图谱、关系表或本体）

         1. 具备可查询性和符号推理能力
         2. 既可以在推理时动态构建以支持局部推理，也可跨会话持久保存高质量知识。

#### 需求本质

1. 记录一段信息

   1. 格式化，向量化...
2. 记录信息之间的关系

   1. 拓扑，树形，网状，点对点
   2. 逻辑关系，等价，推导，相似性的程度
   3. 本地的逻辑推理最为最高层的抽象，最核心的算法体现

      1. 不会因为不同的内容而改变，任何情况下总是可以正确的运行
      2. 拼接关键词，生成prompt
3. **对信息进行拆分和组合和推理**

   1. 对多个表达一样意思的描述进行合并、整理
   2. 对有矛盾的描述进行处理，**自洽推理**
   3. 对信息进行探索性推理
4. 对信息进行重新组织和总结

   1. 数据库存储所有的“片段”和标签
   2. 标签可以被LLM进行运算
   3. 数据库存储所有的标签之间的关系，片段和标签的关系

核心问题

1. 重点不是存而是取和算
2. 抽象

   1. 总结规律，形成代表符号
3. 记忆的运算

   1. 比较、类比
   2. 转换
   3. 推理
4. 记忆必须参与到训练的过程，促进思维能力

   1. 记忆和理解能力（逻辑能力，抽象能力）不断的相互促进才能不断提升能力

<br />

***

<br />

梯度下降不能产生意识，思维链可以短暂得产生意识

效率、可追溯性与长期适应性之间取得有效平衡。

本质上，AI信息处理是

1. 使用绝对正确的逻辑和推理，对外部引用的信息进行推导和整理
2. 不会出错误
3. 能详细展示推理的过程，每个信息的出处

Forward: input -> format -> meaning tree -> calculate -> meaning tree -> gen -> output

Learning: input -> format -> meaning tree -> calculate -> new meaning -> update meaning

##### 系统一

基础meaning -> weight

经过微调的LLM利用基础meaning实现 format 和 gen 构建一批针对此任务的数据集

#### 系统二

1. 方案1 专用的模型（算法）持续被训练（修改）（关注逻辑运算和抽象，不懂实际的含义）： meaning tree -> meaning tree
2. 方案2 采用人工编写的规则（算法）+数据结构+数据库 进行运算
3. 经过系统二的不断运行，能够正循环不断提升抽象质量，从而达到**高通用性**和**自洽**