agentic_huge_data_base / wiki
页面 Mem0 · 14.6 评估框架·DeepWiki 中文全文译文

14.6 · 评估框架(Evaluation Framework)

长期记忆与上下文管理 · 聚焦本章的模块关系、源码依据与实现要点。

项目Mem0 章节14.6 状态全文译文 模块模型调用与提供方适配、检索、召回与索引、评测、反馈与人工复核、界面与交互
源码线索
  • docs/components/embedders/models/aws_bedrock.mdx
  • docs/components/vectordbs/dbs/opensearch.mdx
  • evaluation/README.md
  • evaluation/metrics/llm_judge.py
  • mem0/configs/llms/aws_bedrock.py
  • mem0/embeddings/aws_bedrock.py
  • mem0/llms/aws_bedrock.py
  • mem0/llms/groq.py
  • mem0/llms/litellm.py
  • mem0/llms/ollama.py
模块标签
  • 模型调用与提供方适配
  • 检索、召回与索引
  • 评测、反馈与人工复核
  • 界面与交互
  • 系统架构

章节正文

评估框架

评估框架

相关源文件

本章引用的主要源码文件:

  • docs/components/embedders/models/aws_bedrock.mdx
  • docs/components/vectordbs/dbs/opensearch.mdx
  • evaluation/README.md
  • evaluation/metrics/llm_judge.py
  • mem0/configs/llms/aws_bedrock.py
  • mem0/embeddings/aws_bedrock.py
  • mem0/llms/aws_bedrock.py
  • mem0/llms/groq.py
  • mem0/llms/litellm.py
  • mem0/llms/ollama.py
  • mem0/llms/together.py
  • tests/llms/test_aws_bedrock.py
  • tests/llms/test_litellm.py
  • tests/llms/test_ollama.py

Mem0 评估框架是一个研究级基准测试套件,旨在使用 LOCOMO 数据集评估 Mem0 记忆层与现有长期记忆解决方案、检索增强生成(RAG)架构以及专有系统的性能对比 evaluation/README.md:1-19。该框架提供了准确率、延迟和 Token 消耗等标准化指标,以验证 Mem0 分层记忆方法的有效性 evaluation/README.md:164-173

概述与目的

该框架旨在将 Mem0 与多个基线方案进行对比:

  • 文献基准:LoCoMo、ReadAgent、MemoryBank、MemGPT 和 A-Mem evaluation/README.md:10-12
  • 开源与第三方方案:LangMem 和 Zep evaluation/README.md:13-17
  • 商业解决方案:OpenAI 内置记忆功能 evaluation/README.md:15-16
  • 检索基线:标准检索增强生成(RAG)(不同片段大小)和全上下文处理 evaluation/README.md:14-15
基准测试数据流

评估过程遵循从数据入库到指标生成的结构化管线。

Mem0 · 基准测试数据流 · 图 1
Mem0 · 基准测试数据流 · 图 1

来源:evaluation/README.md:21-50evaluation/metrics/llm_judge.py:58-130

关键组件与实现

实验执行(run_experiments.py

该脚本是运行基准测试的入口点。它通过 --technique_type 参数(例如 mem0raglangmem)支持多种技术,并支持 addsearch 等方法 evaluation/README.md:106-120

大语言模型(LLM)评判器(评估/metrics/llm_judge.py

为了克服精确匹配的局限性,该框架采用了基于大语言模型(LLM)的评估器。

  • 类/函数evaluate_llm_judge(question, gold_answer, generated_answer) evaluation/metrics/llm_judge.py:39-55
  • 模型:使用 gpt-4o-mini 配合特定的 ACCURACY_PROMPT 提示词,判断生成的答案与标准答案相比是"正确"还是"错误" evaluation/metrics/llm_judge.py:12-55
  • 逻辑:通过 extract_json 提取标签 mem0/memory/utils.py:15-15,并返回二进制分数(正确为 1,错误为 0)evaluation/metrics/llm_judge.py:54-55
评分生成(generate_scores.py

该工具汇总 results/ 目录中的结果,用于计算:

  1. 各类别平均分:按问题复杂度级别细分性能 evaluation/README.md:143-156
  2. 总体平均分:提供 BLEU、F1 和大语言模型(LLM)评分的全局平均值 evaluation/README.md:158-162

代码实体映射

以下图表将概念性的评估步骤和基础设施映射到研究过程中使用的具体代码实体和提供者。

记忆技术到代码的映射

该图表将自然语言描述的"技术"桥接到 run_experiments.py 的参数和具体实现文件。

Mem0 · 记忆技术到代码的映射 · 图 2
Mem0 · 记忆技术到代码的映射 · 图 2

来源:evaluation/README.md:37-42evaluation/README.md:84-93evaluation/README.md:106-120

大语言模型(LLM)提供者集成

该图表映射了 Mem0 支持的各种大语言模型(LLM)后端,这些后端可在评估运行期间使用。

Mem0 · 大语言模型(LLM)提供者集成 · 图 3
Mem0 · 大语言模型(LLM)提供者集成 · 图 3

来源:mem0/llms/aws_bedrock.py:34-41mem0/llms/groq.py:15-23mem0/llms/ollama.py:15-34mem0/llms/together.py:15-23mem0/llms/litellm.py:14-20tests/llms/test_aws_bedrock.py:122-125

评估指标

该框架捕获五个主要指标,以提供记忆系统性能的多维度视图:

指标描述实现来源
BLEU 分数响应与标准答案之间的相似度。evals.py evaluation/README.md:168
F1 分数精确率和召回率的调和平均值。evals.py evaluation/README.md:169
大语言模型(LLM)分数gpt-4o-mini 判断的二进制正确性。llm_judge.py evaluation/metrics/llm_judge.py:39-55
Token 消耗最终答案使用的 Token 总数。run_experiments.py evaluation/README.md:171
延迟搜索和生成所花费的时间。run_experiments.py evaluation/README.md:172

数据集结构(LOCOMO)

数据集针对不同的实验设置进行了分区:

  • locomo10.json:用于记忆召回的标准对话数据集 evaluation/README.md:30
  • locomo10_rag.json:专门为基于检索增强生成(RAG)的片段切分和检索测试格式化 evaluation/README.md:31

问题按类型分类(类别 1-5),这使得 generate_scores.py 脚本能够报告不同认知负载下的性能表现 evaluation/metrics/llm_judge.py:80-90

来源:evaluation/README.md:21-32evaluation/metrics/llm_judge.py:111-115