Skip to main content

记忆

为什么需要记忆

  1. 人脑有非常强大的记忆系统和索引能力,管理着非常庞大的信息,能够准确联想起来非常多的记忆
  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)
    4. 遗忘(Forgetting)
      1. 删除长期不用的、孤岛记忆、有矛盾的记忆
    5. 检索(Retrieval)
    6. 压缩(Compression)
      1. 对已经存在的记忆进行抽象,提取更高级的概念,重新组织记忆的表达形式
  2. AI中的记忆表示划分为
    1. 参数化记忆
      1. 在权重中,通过梯度下降进行改变
      2. 黑盒,难以进行精确的操作
    2. 上下文记忆
      1. 向量:KV cache等推理产生的中间值
      2. 非结构化上下文记忆:引用信息,视频
      3. 结构化的上下文记忆:指将记忆内容组织为预定义、可解释的格式或结构(如知识图谱、关系表或本体)
        1. 具备可查询性和符号推理能力
        2. 既可以在推理时动态构建以支持局部推理,也可跨会话持久保存高质量知识。
  3. 六种基本记忆操作:
    1. 巩固(Consolidation)
    2. 更新(Updating)
    3. 索引(Indexing)
    4. 遗忘(Forgetting)
    5. 检索(Retrieval)
    6. 压缩(Compression)

重点不是存而是取和算

  1. 抽象
    1. 总结规律,形成代表符号
  2.  记忆的运算
    1. 比较、类比
    2. 转换
    3. 推理