猫头虎AI分享|字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent
大家好,我是猫头虎 🦉🐯,今天给大家带来一个超硬核的开源 AI 项目分享:M3-Agent。这是一款由字节开源的、多模态智能体框架,最大的亮点是它具备长期记忆能力,能够像人类一样“看、听、记、推理”。
项目地址: 👉 猫头虎开源 fork github
什么是 M3-Agent?
M3-Agent 是一款能够实时处理视觉和听觉输入,并将其转化为长期记忆的多模态智能体。它不仅可以存储情景记忆(episodic memory),还能够逐渐积累语义记忆(semantic memory),形成类似人类的长期知识库。
其核心创新点在于:
- 实体为中心的记忆系统:把与同一实体相关的多模态信息(如人脸、声音、相关知识)关联起来,构建成一个图谱。
- 多轮迭代推理:在执行任务时,能够从长期记忆中检索相关信息来辅助推理,而不仅仅依赖即时上下文。
- 跨模态理解能力:它不局限于单一模态,能够在视觉、听觉、语言之间进行信息融合与推理。
这一设计让 M3-Agent 在基准测试(M3-Bench)中表现相当突出,特别是在需要长期记忆和跨模态推理的任务上,超越了 Gemini-1.5-pro 和 GPT-4o 等强大基线模型。
效果演示
M3-Agent 不只是理论上的“记忆体”,而是有真实的 demo 展示:
A demo of M3-Agent as a personal assistant!
它可以结合视觉与语音输入,像一个智能助手一样,记住并关联过往的对话和环境信息。
M3-Bench:专门的长视频推理基准
为了测试智能体的长期记忆与跨模态推理能力,M3-Agent 团队设计了 M3-Bench ——一个长视频问答数据集。
- M3-Bench-robot:100 个机器人第一视角录制的真实场景视频
- M3-Bench-web:920 个来自网络的多样化长视频
这些视频被设计成模拟智能体在真实场景中的输入,并配有开放式问答任务,考察智能体能否构建一致的长期记忆并在此基础上进行有效推理。
M3-Bench 示例
统计概览
系统架构
M3-Agent 的系统架构非常有意思,主要分为两个并行流程:
- 记忆(Memorization):实时处理视频、音频流,生成情景记忆与语义记忆,并构建成多模态图谱。
- 控制(Control):在执行任务时,从长期记忆中检索相关信息,进行多轮推理,最终完成目标。
Architecture of M3-Agent
这种图谱化的长期记忆结构,让 M3-Agent 能更深入、更一致地理解环境,而不是“短时记忆式”的处理。
实验结果
在 M3-Bench 和其他跨模态推理任务上,M3-Agent 的表现非常亮眼,超越了 Gemini-1.5-pro 和 GPT-4o 等基线模型:
- M3-Bench-robot:准确率提升 8.2%
- M3-Bench-web:提升 7.7%
- VideoMME-long:提升 5.3%
这意味着它在需要长期记忆和多模态推理的场景下,已经展现出了接近“人类记忆机制”的能力。
本地运行指南
如果你想在本地尝试 M3-Agent,可以按照以下步骤操作:
⚠️ 提前在
configs/api_config.json
中添加 API 配置
1. 环境搭建
bash setup.sh
pip install git+https://github.com/huggingface/transformers@f742a644ca32e65758c3adb36225aef1731bd2a8
pip install qwen-omni-utils==0.0.4
2. 视频切片
将视频切成 30 秒片段,方便记忆处理:
#!/bin/bash
video="robot/bedroom_01"
input="data/videos/$video.mp4"
mkdir -p "data/clips/$video"
duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$input")
duration_seconds=$(echo "$duration" | awk '{print int($1)}')
segments=$((duration_seconds / 30 + 1))
for ((i=0; i<segments; i++)); do
start=$((i * 30))
end=$(((i + 1) * 30))
output="data/clips/$video/$i.mp4"
ffmpeg -ss $start -i "$input" -t 30 -c copy "${output}"
done
3. 生成记忆图谱
python data_preparation/generate_memory_qwen.py \
--data_file data/data.jsonl
4. 可视化记忆图谱
python visualization.py \
--mem_path data/memory_graphs/robot/bedroom_01.pkl \
--clip_id 1
5. 控制与推理
使用 M3-Agent-Control 模型进行问答与评估:
python m3_agent/control.py \
--data_file data/annotations/robot.json
训练资源
- 记忆模块训练:sft-qwen2.5-omni-thinker
- 控制模块训练:M3-Agent-Training
总结
M3-Agent 是一个非常值得关注的开源项目,它让多模态智能体真正具备了“长期记忆”与“跨模态推理”的能力。
相比大多数只依赖短时上下文的 LLM 助手,M3-Agent 的实体图谱式记忆与多轮推理机制,让它更接近人类的认知方式,也为未来的智能体应用(如个人助手、机器人、交互式教育等)提供了新思路。
感兴趣的同学可以直接试试:
👉 猫头虎开源 fork github