记不得那么多就压缩一下吧
Posted on Fri 18 July 2025 in Journal
Abstract | Journal on 2025-07-18 |
---|---|
Authors | Walter Fan |
Category | learning note |
Status | v1.0 |
Updated | 2025-07-18 |
License | CC-BY-NC-ND 4.0 |
2025-07-18
大语言模型在这两年的发展让人叹为观止, 但是其上下文长度有限, 无法记忆太多信息,所以我们需要对超出它记忆范围(token limitation) 的记忆进行压缩, 以保持对话的有效性和完整性.
这是大模型的缺点, 也就是程序员们体现价值之所在, 我们可以通过上下文工程, 将大模型的记忆范围扩大, 从而实现更复杂的功能.
大致方法如下:
1. 首次对话
用户: "请帮我分析这段代码的性能问题"
-->
系统: 创建新会话,存储用户消息
-->
LLM: 处理请求并返回回答
-->
系统: 存储LLM回答到会话历史
2. 后续对话
用户: "刚才提到的那个性能问题,还有其他优化方案吗?"
-->
系统: 检索会话历史,加载之前的对话
-->
LLM: 基于完整上下文生成回答
-->
系统: 更新会话历史
3. 智能摘要机制
当会话变得过长时(超过8000 tokens或50条消息),系统会: 1. 保留最近10条消息 2. 使用LLM将旧消息总结为摘要 3. 用摘要替换旧消息,释放空间 4. 重新计算token数量
以 go 语言为例, 我们使用 go 语言来实现一个简单的对话记忆功能.
tips
notes
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。