最近相关的标题应该是很多了,RAG的热浪从GraphRAG吹到了MemoryRAG,节奏很快。论文标题MemoRAG: Moving towards Next-Gen RAG Via Memory-Inspired Knowledge Discovery。智源BAAI开源,代码https://github.com/qhjqhj00/MemoRAG
如上图,对比标准的RAG,多了一个记忆模型生成线索,草稿答案插到召回之前。(别说跟hyde碰瓷?)
记忆模型的主要目的是逐步将原始输入token压缩为明显更小的一组记忆token,同时保留基本的语义信息。想实现这个过程,作者使用一组记忆token插在模型的每一步的上下文窗口之后。看下图,先看x,每个窗口之后添加k个记忆token,算attention的时候,k,v会用到历史的cache 记忆token,q取当前窗口的token。
这种记忆模型仍然是通过预训练+sft训练完成,训练目标如下,给定最近的token和历史记忆,最大化下一个token的概率:
开源了2个模型:
- https://huggingface.co/TommyChien/memorag-qwen2-7b-inst
- https://huggingface.co/TommyChien/memorag-mistral-7b-inst
线索示例:
整体取得了不错的结果: