科学工具
科学工具让世界更美好
让世界更美好

MemOS大模型记忆操作系统

MemOS是一个专为大型语言模型(LLMs)设计的操作系统,为LLMs提供强大的长期记忆能力,使其能够高效地存储、检索并管理信息,从而实现更具上下文感知、一致性和个性化的交互。MemOS的主要功能围绕记忆增强生成(MAG)展开,提供统一的API接口,并采用模块化的MemCube架构,支持文本记忆、用于加速LLM推理和上下文复用的激活记忆(KVCacheMemory),以及存储模型适应参数的参数记忆等多种记忆类型。MemOS具备高度可扩展性,便于用户轻松集成和定制各类记忆模块、数据源及LLM集成,其在LOCOMO基准测试中展现出显著的性能优势,尤其在时间推理任务中实现了159%的准确率提升,整体表现较基线提升近39%。

MemOS 1.0:星河(Stellar)状态已发布。在LoCoMo基准测试中,以大语言模型作为评判标准,MemOS在时间推理、多跳推理、开放域、单跳推理任务的平均得分上表现达到最先进水平。

与OpenAI相比,MemOS准确率提升38.97%,令牌使用量减少60.95%。

性能基准

在多项推理任务中,MemOS的表现显著优于基准记忆解决方案。

模型 平均得分 多跳推理 开放域 单跳推理 时间推理
OpenAI 0.5275 0.6028 0.3299 0.6183 0.2825
MemOS 0.7331 0.6430 0.5521 0.7844 0.7321
提升幅度 +38.98% +6.67% +67.35% +26.86% +159.15%

在时间推理准确率上,MemOS较OpenAI基准提升159%。

LOCOMO端到端评估细节

在LOCOMO基准的五大任务中,大语言模型评判得分对比显示:MemOS-0630在所有任务类型中持续优于基准方法(LangMem、Zep、OpenAI、Mem0),尤其在多跳推理和时间推理场景中表现突出。

类别 方法 记忆令牌 chunk/Top-K 大语言模型评判得分 F1 RL B1 B2 METEOR BERT-F1 Sim
单跳推理 langmem 165 - 68.21±0.06 41.72 44.80 35.61 24.73 36.42 43.77 76.25
openai 4141 - 73.33±0.20 47.26 51.44 40.34 30.02 43.96 48.53 76.56
mem0 2320 20 61.83±0.10 32.49 35.07 30.72 22.02 35.39 40.56 66.95
zep 1176 20 50.42±0.29 36.96 41.45 27.38 18.81 28.49 35.26 69.84
memos-0630 1600 20 78.44±0.11 45.55 51.00 38.32 28.32 44.46 47.53 74.70
多跳推理 langmem 185 - 56.74±0.29 36.03 36.32 27.22 17.03 29.14 33.03 73.05
openai 3924 - 60.28±0.00 35.24 34.87 23.84 16.55 27.90 32.36 68.82
mem0 2351 20 58.75±0.44 23.14 35.36 14.96 15.36 27.25 32.65 70.71
zep 1163 20 42.20±0.77 33.10 24.63 25.91 8.49 17.38 25.15 64.26
memos-0630 1528 20 64.30±0.44 35.57 36.25 26.71 16.59 29.42 33.85 69.60
开放域 langmem 209 - 49.65±1.30 29.79 30.54 23.17 11.72 21.03 32.27 67.34
zep 2276 20 32.99±1.30 19.76 20.62 11.04 10.59 20.33 28.38 58.59
openai 4071 - 38.19±0.49 17.19 28.67 13.17 5.23 12.05 21.07 63.74
mem0 1141 20 45.83±0.00 27.80 15.88 20.01 6.18 14.20 19.37 57.53
memos-0630 1511 20 55.21±0.00 29.64 31.54 22.40 11.78 23.74 30.36 63.06
时间推理 langmem 134 - 24.09±0.39 38.10 38.33 32.23 18.81 27.55 48.30 74.57
zep 1173 20 28.25±0.59 45.40 24.47 14.57 22.27 34.60 23.1 76.15
mem0 4048 20 19.11±0.29 17.59 46.90 38.15 11.87 13.81 17.59 59.53
openai 2295 - 52.34±0.25 23.90 19.03 18.25 8.11 44.59 59.38 -
memos-0630 1655 20 73.21±0.25 53.67 53.69 46.37 29.69 43.45 48.48 76.97
整体 langmem 165 - 55.76±0.16 39.18 41.01 32.59 21.27 32.28 42.03 74.76
zep 2318 20 41.62±0.21 26.88 28.91 21.55 13.90 22.51 28.84 64.36
openai 4077 - 52.75±0.08 32.30 35.20 25.64 17.64 29.10 34.10 66.74
mem0 1171 20 64.57±0.06 43.46 46.04 35.97 24.72 37.60 43.54 74.61
memos-0630 1593 20 73.31±0.05 44.42 47.65 36.88 25.43 40.20 44.15 73.51

核心功能

记忆增强生成(MAG):提供统一的记忆操作API,与大语言模型集成,通过上下文记忆检索增强聊天和推理能力。

模块化记忆架构(MemCube):灵活的模块化架构,能轻松集成和管理不同类型的记忆。

多种记忆类型

• 文本记忆:用于存储和检索非结构化或结构化文本知识。

• 激活记忆:缓存键值对(KVCacheMemory),加速大语言模型推理和上下文重用。

• 参数记忆:存储模型适配参数(如LoRA权重)。

可扩展:能轻松扩展和自定义记忆模块、数据源和大语言模型集成。

快速开始

以下是创建MemCube、从目录加载、访问记忆并保存的简单示例:

from memos.mem_cube.general import GeneralMemCube

# 从本地目录初始化MemCube
mem_cube = GeneralMemCube.init_from_dir("examples/data/mem_cube_2")

# 访问并打印所有记忆
print("--- 文本记忆 ---")
for item in mem_cube.text_mem.get_all():
    print(item)

print("\n--- 激活记忆 ---")
for item in mem_cube.act_mem.get_all():
    print(item)

# 将MemCube保存到新目录
mem_cube.dump("tmp/mem_cube")

MOS(记忆操作系统)是更高层次的编排层,管理多个MemCube并提供统一的记忆操作API。以下是使用MOS的简单示例:

from memos.configs.mem_os import MOSConfig
from memos.mem_os.main import MOS

# 初始化MOS
mos_config = MOSConfig.from_json_file("examples/data/config/simple_memos_config.json")
memory = MOS(mos_config)

# 创建用户
user_id = "b41a34d5-5cae-4b46-8c49-d03794d206f5"
memory.create_user(user_id=user_id)

# 为用户注册cube
memory.register_mem_cube("examples/data/mem_cube_2", user_id=user_id)

# 为用户添加记忆
memory.add(
    messages=[
        {"role": "user", "content": "I like playing football."},
        {"role": "assistant", "content": "I like playing football too."},
    ],
    user_id=user_id,
)

# 之后,检索用户的记忆
retrieved_memories = memory.search(query="What do you like?", user_id=user_id)
# 输出文本记忆:I like playing football, act_memories, para_memories
print(f"text_memories: {retrieved_memories['text_mem']}")

安装方法

注意:目前MemOS主要支持Linux平台。Windows和macOS可能暂时会遇到问题。

通过pip安装

pip install MemoryOS

开发安装

要参与MemOS的开发,可克隆仓库并以可编辑模式安装:

git clone https://github.com/MemTensor/MemOS.git
cd MemOS
make install

可选依赖

Ollama支持

要将MemOS与Ollama一起使用,先安装Ollama CLI:

curl -fsSL https://ollama.com/install.sh | sh

Transformers支持

要使用基于transformers库的功能,确保已安装PyTorch(推荐使用CUDA版本以实现GPU加速)。