DragonMemory:16倍语义压缩,为RAG应用瘦身

前几天介绍了一个上下文压缩的库(像原始人一样和AI对话,费用可直接砍掉40%)。最近又在GitHub看到一个有趣的项目DragonMemory,专门对RAG应用中的上下文进行压缩,有效降低,压缩比高达16倍!

picture.image

从序列维度压缩

DragonMemory的核心是一个名为Dragon v7的自定义PyTorch模型,采用"多阶段共振指针与邻居混合"机制。与传统量化方法不同,它不是简单减少每个向量的精度,而是从序列维度进行压缩:

  • 输入:128个token的嵌入向量(维度384)
  • 输出:8个潜在向量(维度384)
  • 压缩比:16:1的序列长度压缩
  • 目标:学习重建句子级别的语义含义,减少RAG系统中的"大海捞针"搜索空间

具体实现上,系统将128×384的嵌入矩阵压缩为8×384,然后展平为3072维向量用于RAG检索。这种设计专门针对嵌入层面的压缩,而非原始token压缩。

项目作者freeky78在本地测试中获得了不错的结果:在Wikitext-2数据集上,压缩后仍能保持约0.90的余弦相似度;技术文档和长文本的相似度也在0.85-0.89之间。同时,作者还指出先用DragonMemory压缩序列,再对结果向量进行量化,获得双重压缩效果。

项目提供了完整的Streamlit图形界面,支持PDF、DOCX、TXT等多种文档格式,还集成了Whisper音频转录功能。用户可以通过简单的界面操作:

  1. 上传并处理文档
  2. 文档被分块、编码并压缩存储
  3. 在聊天界面中提问,系统会从压缩向量中检索相关上下文

支持本地Ollama(如llama3、mistral)和OpenAI等两种后端,AGPL-3.0许可证开源。

小结

上下文长度和内存成本一直本地RAG应用的需要解决的关键问题。这种学习式序列压缩器在保持召回质量的前提下实现16倍压缩,为资源受限的本地部署提供了新的可能性。不过,该项目为个人研究项目,并非成熟的商业产品,思路可以借鉴,但不要直接使用在生产环节。

地址:https://github.com/Freeky7819/DragonMemory

关注公众号回复“进群”入群讨论。

0
0
0
0
评论
未登录
暂无评论