例如,LlaMA-70B 在知识数据集上的表现比 LlaMA-7B 好 30%,这并不能说明模型扩大 10 倍仅仅能在容量上提高 30%。 最引人注目的结果来自于作者的定律 10-12(见图 4)。 作者提出了一个简单的实验来验证:如果高质量数据都加上一个特殊 token(任何特殊 token 都行,模型不需要提前知道是哪个 token),那么模型的知识存储量可以立即回升 10 倍,是不是很神奇?
我看了答案还是有些不能完全理解,于是又去b站翻了翻教程基础DP,其中提到记忆化的递归(也称记忆化搜索),相当于结合了dp和递归的优点(这时我又觉得比DP还厉害),然后就准备写写记忆化递归。 ---- 目录 1.记忆化递归的解释与分析 2.记忆化递归的应用 ---- 一、记忆化递归的解释与分析 前面说道它结合了dp和递归的优点,分别是记忆化和逻辑清晰易懂。 记忆化递归则更加”投机取巧“了,它只计算了需要用的值并储存起来,而其它不会用到的值不去计算,最大化地减少了计算。 打个比方,dp就相当于计算了一个方阵上所有的点(无论有没有利用价值),而记忆化递归相当于计算了方阵上有价值的点,因此记忆化递归的运行时间可能比dp还要短。 (注意只是可能,因为斐波那契数列无论是dp还是记忆化递归,都是要把前面的值全部算出来的) ---- 二、记忆化递归的应用 感觉没啥写的,就拿分配宝藏来写shui一写shui吧。题目在这里。
今天扫了收藏夹里一个TED视频,所以也借此总结一下上半辈子学到的点滴技巧吧~ 关于记忆技巧, 我印象最深的是小时候电视里有个老师在讲如何记忆英语单词,比如同样的词根,只要变换一个字母就可以记住一大批单词这样的技巧 第二个印象,是一个女的演讲者提到的记忆技巧, 她的记忆技巧可以归纳为一个词: “标新立异”, 也就是给每一个你要记忆的事物都打上一个不同寻常的标签,突出强烈的反差感, 比如在脑海里描绘一幅“隔壁老王蹲在一个十米的茅坑里 第三个印象是一个TED演讲者, 他的方法是是图像记忆法, 给每一个词语或者生硬的字面都配合上一幅图, 这种记忆法其实很好的阐述了那句英语谚语:"one picture is better than a 第四个印象是某人发明了个记忆宫殿(Memory Palace)这样的记忆技巧或者说术语,总结下来就是上下文关联(Context),将你要记忆的信息放到一个上下文中,这个上下文是任何你熟悉的场景,比如你的房子 关联性,将要记忆的信息通过某种故事线或者物理场景(上下文Context) 串联起来,可以帮助我们批量记忆一组信息,配合强烈反差的故事线更好。
在人工智能领域,尤其是基于大语言模型(LLM)的智能体(Agent)系统中,记忆机制是实现持续、连贯和个性化交互的核心基石。记忆系统模拟了人类的认知结构,通常划分为短期记忆和长期记忆。 第一章:短期记忆——智能体的工作记忆与意识流1.1定义与本质短期记忆是智能体用于处理当前任务或单次会话的临时信息存储区。 检索当新的会话开始时,Agent不会加载整个长期记忆库(那样会瞬间爆满短期记忆)。相反,它会根据当前的用户查询和短期记忆的上下文,去长期记忆库中寻找最相关的信息。 记忆冲突与更新:当新信息与旧记忆矛盾时,如何更新或版本化管理记忆(例如,用户之前喜欢咖啡,现在改喝茶了)。 检索长期记忆:系统将当前查询与短期记忆的上下文结合,作为“检索键”,在长期记忆库中进行向量相似性搜索,找出相关记忆。
而具备记忆能力的智能体,能够记录和回忆过去的经验,从而在多轮对话、任务规划和长期交互中表现出更高的连贯性和智能性。智能体的记忆系统主要包括短期记忆、长期记忆和知识图谱三个层次。 embedding is not None: self.embeddings.append(embedding) def get_recent_memories(self, count=10 idf_component scores.append(score) return scores def rank(self, query: str, k: int = 10 accuracy_scores = [] for query in test_queries: retrieved = system.search(query, k=10 ⚡️ 我的更新节奏:每周三晚8点:深度技术长文每周日早10点:高效开发技巧突发技术热点:48小时内专题解析
特别是在竞技记忆和应用记忆领域,我们看到了记忆力如何被推向极限,以及如何在日常生活中得到实际应用。本文旨在深入探讨这两个领域,分析其原理,探索它们的实际应用,并讨论如何通过刻意训练提高我们的记忆力。 一、竞技记忆:大脑的极限挑战 竞技记忆,顾名思义,是一种将记忆力竞赛化的活动。参与者需要在短时间内记忆尽可能多的信息,如一副洗乱的扑克牌、长串数字或复杂的图形等。 这不仅是一场对记忆力的挑战,更是对心智控制、专注力和心理素质的全面考验。 竞技记忆的技巧: 联想记忆:通过将抽象信息与熟悉事物关联,形成更容易记忆的图像。 二、应用记忆:日常生活的智慧 与竞技记忆相比,应用记忆更贴近日常生活,它关注如何将记忆技巧应用于学习、工作和生活中。 竞技记忆强调技巧和速度,而应用记忆强调实用性和长期记忆。两者之间的技巧和策略有交集,也有各自的特点。
答案是,通过一种巧妙的“记忆共享”机制,SambaY架构在某些关键任务上实现了高达 10倍 的吞吐量提升,同时在复杂的推理基准上超越了同级别的强大模型。 门控记忆单元 (Gated Memory Unit, GMU): 这是SambaY的技术基石。作者设计了一个极为简单但高效的模块,用于在网络层之间共享“记忆”。 ,从而实现了跨层记忆的低成本共享。 它们直接连接到自解码器中最后一个SSM层的输出状态(即“核心观点备忘录”),并通过GMU机制高效地门控和使用这份记忆。 长生成场景 (上图b,输入2k,生成32k):在这种极端考验生成效率的场景下,SambaY的吞吐量一骑绝尘,最高可达其他模型的 10倍。
候选记忆细胞 4. 记忆细胞 5. 隐藏状态 6. LSTM与GRU的区别 7. LSTM可以使用别的激活函数吗? 8. 代码实现 9. 参考文献 1. 这篇将介绍另⼀种常⽤的⻔控循环神经⽹络:**⻓短期记忆(long short-term memory,LSTM)[1]。 (某些⽂献把记忆细胞当成⼀种特殊的隐藏状态),从而记录额外的信息。 输⼊⻔、遗忘⻔和输出⻔ 与⻔控循环单元中的重置⻔和更新⻔⼀样,⻓短期记忆的⻔的输⼊均为当前时间步输⼊Xt与上⼀时间步隐藏状态Ht−1,输出由激活函数为sigmoid函数的全连接层计算得到。 关于激活函数的选取,在LSTM中,遗忘门、输入门和输出门使用Sigmoid函数作为激活函数;在生成候选记忆时,使用双曲正切函数Tanh作为激活函数。
最佳实践与调优 9.1 最佳实践 9.2 调优策略 10. 工具与库推荐 11. 未来发展趋势 12. 总结与建议 12.1 总结 12.2 建议 环境配置 常见问题处理 1. 结构化记忆 结构化组织知识 提高知识的可访问性 Graph记忆 基于图结构存储知识 捕捉知识间的关系 记忆管理 管理不同记忆组件 协调记忆的存储和检索 记忆检索 从不同记忆组件中检索信息 快速找到相关信息 """获取短期记忆大小""" return len(self.memory) # 示例使用 stm = ShortTermMemory(capacity=10) stm.add 传统记忆系统 10,000 1.0 75% 低 弱 单模态记忆系统 100,000 0.5 80% 无 中 Multimodal Memory系统 1,000,000 0.3 92% 高 强 6.3 选择适合特定模态的融合策略 优化模型推理速度,减少延迟 实现自适应融合,根据输入类型调整融合策略 系统整体调优: 监控系统性能,识别瓶颈 根据实际使用情况调整系统参数 定期维护和更新系统,确保最佳性能 10
有些同学问:智能体的 Memory 中 短期记忆(Short-term memory)与长期记忆(Long-term memory)是什么意思?有什么区别? 其中记忆包括短期记忆和长期记忆。 短期记忆是智能体在单一会话中维护即时上下文的能力。 工作机制: 它完全依赖于大模型(LLM)的上下文窗口。 拿 Cherry Studio 为例,长期记忆是通过“全局记忆”实现的。 你可以手动添加记忆,也可以在智能体里开启记忆。它就会把自己需要记忆的信息做判断,然后自动存储。 我们可以在整体设置这里打开全局记忆。 我们在和他们聊天的时候,它会先检索相关的记忆,然后再回答我们的问题。 如果它认为有些信息需要记住,也会自动保存到记忆中。 听着很完美,实际上还是会存在很多问题。 有时候记忆是 AI 自动决策的,没有和用户确认,那么这些记忆可能是错误的。 有了记忆之后,有些模型不够聪明,它有时会强行和相关记忆上靠,导致回答并不是我们想要的信息。
很多 AI 产品一谈 memory,都给人一种"只要加一个记忆模块就够了"的错觉。 它的记忆至少有四层——当前工作记忆(run_conversation() 里流动的 messages)、内建长期记忆(MEMORY.md 装环境/项目/工具约定,USER.md 装用户画像和偏好)、完整会话历史 克制到骨子里的长期记忆 Hermes 不只是在原则上说"长期记忆要精炼",它在机制上把这件事做得很硬: 没用结构化数据库,就两份纯文本文件; 字符预算设了硬上限:MEMORY.md 默认 2200 源码里 _turns_since_memory 会持续计数,连续很多轮没发生写入(默认阈值 10 轮)就触发 background review:fork 一个轻量 review agent,把刚才这段快照再过一遍 结语:不是一个脑子,是一座记忆工厂 Hermes 到底是不是"有一个很强的记忆模块"?更准确的说法是:它不是一个脑子,而是一座记忆工厂。
\n\n### 第二天\n\n**上午**\n- **8:00-10:00** 乘坐地铁2号线至【胡里山站】出口,游览【胡里山炮台】。 \n- **10:00-12:00** 乘坐地铁2号线至【海沧大桥站】出口,前往【环岛路】,骑行或步行欣赏海滨风光。 \n\n### 第二天:泉州自然风光游\n\n**上午**\n- **8:00-10:00** 乘坐网约车前往【清源山】。\n- **10:00-12:00** 游览清源山,参观【老君岩】等自然景观。 \n\n### 第三天:泉州文化体验游\n\n**上午**\n- **8:00-10:00** 乘坐网约车前往【泉州海外交通史博物馆】。 \n\n### 第二天:漳州自然风光游\n\n**上午**\n- **8:00-10:00** 乘坐网约车前往【火山岛国家地质公园】。
程序性记忆决定了记忆如何使用,而非存储了什么内容。情景性记忆:发生了什么情景性记忆 捕捉与某个实体和上下文相关的特定经历。例如:“彼得的生日是明天,他想吃牛排。” 记忆压缩是一个完全不同的话题,但你可以实施一些策略来总结和存储旧的记忆,同时完整地检索新的记忆。 -10-11T18:02:52.182780", "memory_text": "彼得的生日是明天。 2025-10-11T19:15:33.445821", "memory_text": "明天早上 9 点与珍妮丝一起提交年终报告的截止日期。"} 一位同事存储了一条与他相关的工作记忆:{ "user_id": "innie-peter", "memory_type": "innie", "created_at": "2025-10
记忆的数据来源有两类:一是用户主动维护的 Markdown 记忆文件(如 MEMORY.md、memory/*.md),二是历史会话记录(JSONL 格式的对话日志)。 下面这张图展示了记忆从"写入"到"检索"的完整数据流: 混合搜索:让精确匹配与语义理解并肩作战 记忆存下来了,关键在于”怎么搜“。 假设你的记忆库里有一段关于 Python 装饰器的笔记。 时间衰减:模拟人类记忆的"遗忘曲线" 混合搜索解决了"搜什么"的问题,但还有一个维度同样重要:时间。 三天前讨论的 bug 修复方案,和三个月前随口提到的一个想法,它们在记忆中的权重应该一样吗? 想象搜索"API 设计原则",如果你的记忆库中有一篇详细的 API 设计文档,前 10 条结果可能全部来自这篇文档的不同段落,内容高度重叠。这对 AI 理解上下文来说,信息密度非常低。 实时同步:三条通道保持记忆鲜活 记忆系统不是一次性的离线构建,它需要随着用户活动持续演进。
长期记忆、短期记忆、遗忘机制及门控机制智能问答系统实现长期记忆、短期记忆、遗忘机制以及门控机制的方法如下: 长期记忆的实现- **使用数据库存储**:将大量的知识、信息和历史交互数据存储在数据库中。 这样系统可以通过遍历知识图谱来获取更全面和深入的知识,实现长期记忆。短期记忆的实现:滑动窗口- **使用缓存技术**:在系统内存中设置缓存,用于临时存储近期使用过的信息。 例如,对于缓存中的短期记忆信息**,如果在10分钟内没有被再次访问,就将其删除。**- **基于活跃度的遗忘**:根据信息的使用频率来决定是否遗忘。 遗忘门决定了从过去的记忆中丢弃多少信息;输入门控制新的信息有多少可以进入记忆单元;输出门决定了当前的记忆状态有多少可以作为输出。 - **示例**:假设用户询问“人工智能的发展历程”,系统通过输入门将相关的历史数据输入到记忆单元中,同时遗忘门会根据之前的记忆和当前的输入决定丢弃一些不相关的旧信息。
Contracts是协议合同的意思,表示这个对象是应用层的一个实体,用户交互数据的,所以叫Contracts 10,添加实体和DTO的映射关系 【Application】ApplicationAutoMapperProfile.cs
文章目录 离散无记忆信源的序列熵 信源的序列熵 离散有记忆信源的序列熵 平稳有记忆N次扩展源的熵 离散无记忆信源的序列熵 马尔可夫信源的特点:无后效性。 当信源无记忆时: \begin{aligned} p(\bar{X}&\left. 如果以两个符号出现 ( \mathrm{L}=2 的序列 )为一事件, 则随机序 列 \mathrm{X} \in(00,01,10,11) , 信源的序列熵 H(\bar{X})=\log 对于有记忆信源,就不像无记忆信源那样简单, 它必须引入条件熵的概念, 而且只能在某些特殊情况下才能得到一些有价值的结论。 : 若进一步又满足平稳性时 H(\bar{X})=\sum_{l}^{L} H\left(X_{l}\right) \quad H(\bar{X})=L H(X) 平稳有记忆N次扩展源的熵 设 X
构建记忆系统 记忆索引结构 首先,我们定义记忆模式(Schema): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 mappings = { "properties": • GetMemories:使用混合搜索(语义 + 关键词)检索记忆: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 "created_at": "2025-10-11T18:02:52.182780", "memory_text": "彼得的生日是明天。 "created_at": "2025-10-11T19:15:33.445821", "memory_text": "明天早上 9 点与珍妮丝一起提交年终报告的截止日期。" ": "2025-10-11T20:30:00.000000", "memory_text": "彼得需要在周五之前审查第四季度的预算电子表格。"
任务完成后,再把有长期价值的信息晋升到项目记忆里。多Agent协作的重点,不是让每个窗口都单独变聪明,而是让它们读取同一份可靠上下文。三、为什么Agent很难拥有长期记忆第三个问题是长期记忆。 我理解的Agent记忆至少可以分三层:短期记忆、项目记忆、全局长期记忆。短期记忆是当前会话状态,比如这个任务做到哪一步了。项目记忆是项目规则、架构、命令、踩坑记录。 五、记忆系统会不会增加token消耗这是一个很合理的担心。很多人一听“记忆系统”,第一反应是:是不是又要把更多东西塞进prompt?好的记忆系统不应该这样做。 agents-memory的思路不是把所有记忆一次性注入上下文,而是把记忆放在外部,需要时再按预算召回。checkpoint是写入外部记忆,不等于每次都注入。 跨窗口记忆不同步,需要共享项目记忆和活跃任务索引。长期记忆缺失,需要分层记忆、可解释检索和晋升机制。规则文件仍然重要,但它只是入口。真正成熟的Agent使用方式,是把记忆当成工程资产来治理。
Agent 记忆遵循相同的逻辑。 Agent 记忆的四种类型 Agent 记忆并非单一概念,它是一个四层体系,各层服务于不同目的。 四种记忆类型映射到技术栈的不同组件上。工作记忆对应上下文窗口;情景记忆和语义记忆对应外部数据库(向量存储、关系型数据库、键值存储);程序记忆对应模型权重和系统提示词。 记忆系统需要衰减机制。旧的、低相关性的记忆应当逐渐淡出;相互矛盾的记忆(先说偏好 Python,后来又切换到 Go)需要被清理,否则知识库会随时间推移变得陈旧且自相矛盾。 Mem0 大概是目前应用最广的记忆层方案。它介于 agent 和数据库之间,自动处理写入、检索、遗忘逻辑——接入技术栈后即可管理情景记忆和语义记忆。 API 设计简洁:保存记忆、搜索记忆,剩下的交给它。