微信扫码
与创始人交个朋友
我要投稿
本公众号主要关注NLP、CV、LLM、RAG、Agent等AI前言技术,免费分享业界实战案例与课程,助力您全面拥抱AIGC。
from memorag import MemoRAG
# Initialize MemoRAG pipeline
pipe = MemoRAG(
mem_model_name_or_path="TommyChien/memorag-mistral-7b-inst",
ret_model_name_or_path="BAAI/bge-m3",
gen_model_name_or_path="mistralai/Mistral-7B-Instruct-v0.2", # Optional: if not specify, use memery model as the generator
cache_dir="path_to_model_cache", # Optional: specify local model cache directory
access_token="hugging_face_access_token", # Optional: Hugging Face access token
beacon_ratio=4
)
context = open("examples/harry_potter.txt").read()
query = "How many times is the Chamber of Secrets opened in the book?"
# Memorize the context and save to cache
pipe.memorize(context, save_dir="cache/harry_potter/", print_stats=True)
# Generate response using the memorized context
res = pipe(context=context, query=query, task_t
作者发布了两个记忆模块memorag-qwen2-7b-inst
和 memorag-mistral-7b-inst
,它们分别基于 Qwen2-7B-Instruct
和 Mistral-7B-Instruct-v0.2
在实际应用当中memorag-mistral-7b-inst 在上下文长度高达 150K token时表现良好,而 memorag-qwen2-7b-inst 在上下文长度高达 600K token时有良好的表现
检索到的上下文的总长度,超过了LLM接受的最大长度。MemoRAG设计了一个内存模块:
L
, 通过注意力机制将原始的token,转化成k
个内存token,这里的k
远小于L
的长度k
个内存token被记忆后,原始token的KV缓存就被丢弃,相当于人类记忆的遗忘n
个上下文窗口之后(这里的n相当于召回的上下文的总长度除以LLM能接受的长度的次数),memoRAG就会逐步上下文替换成内存的token,缓存起来,这样就压缩了上下文的知识。MemoRAG根据压缩知识的记忆模块,能够推断出隐式查询的潜在意图,通过生成分阶段的答案,例如更具体的答案线索,MemoRAG 弥合了隐式信息需求和检索过程之间的差距。
记忆模块压缩的知识,能将数据库中多个步骤的相关信息连接并整合在一起。通过生成指导检索互联数据点的暂存答案,MemoRAG 有效地管理了多跳查询的复杂性。
memoRAG对长文本进行摘要时,记忆模块捕获和综合数据集中的关键点,生成中间阶段的答案,这些答案代表了内容的必要元素,然后用于从原始内容中检索详细信息。所有这些信息都被聚合起来,以生成最终的摘要。
利用记忆模块存储的全局信息,来分析和理解用户的对话历史,识别和利用关键线索,例如用户的音乐偏好、知识背景、年龄以及可以从过去交互中推断出的其他相关因素。生成高度个性化的推荐。
memoRAG利用记忆模块,能够存储多轮对话的完整知识,能填补在每轮对话过程中空白的语义空间。例如:他吃饭了吗?
没有上下文知识,就理解不了他
指的是谁。
https://arxiv.org/pdf/2409.05591
https://github.com/qhjqhj00/MemoRAG
https://huggingface.co/TommyChien
推荐阅读
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-18
2024-07-09
2024-05-05
2024-07-09
2024-05-19
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21