评估框架
评估框架
相关源文件
本章引用的主要源码文件:
docs/components/embedders/models/aws_bedrock.mdxdocs/components/vectordbs/dbs/opensearch.mdxevaluation/README.mdevaluation/metrics/llm_judge.pymem0/configs/llms/aws_bedrock.pymem0/embeddings/aws_bedrock.pymem0/llms/aws_bedrock.pymem0/llms/groq.pymem0/llms/litellm.pymem0/llms/ollama.pymem0/llms/together.pytests/llms/test_aws_bedrock.pytests/llms/test_litellm.pytests/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。
基准测试数据流
评估过程遵循从数据入库到指标生成的结构化管线。
来源:evaluation/README.md:21-50,evaluation/metrics/llm_judge.py:58-130
关键组件与实现
实验执行(run_experiments.py)
该脚本是运行基准测试的入口点。它通过 --technique_type 参数(例如 mem0、rag、langmem)支持多种技术,并支持 add 或 search 等方法 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/ 目录中的结果,用于计算:
- 各类别平均分:按问题复杂度级别细分性能
evaluation/README.md:143-156。 - 总体平均分:提供 BLEU、F1 和大语言模型(LLM)评分的全局平均值
evaluation/README.md:158-162。
代码实体映射
以下图表将概念性的评估步骤和基础设施映射到研究过程中使用的具体代码实体和提供者。
记忆技术到代码的映射
该图表将自然语言描述的"技术"桥接到 run_experiments.py 的参数和具体实现文件。
来源:evaluation/README.md:37-42,evaluation/README.md:84-93,evaluation/README.md:106-120
大语言模型(LLM)提供者集成
该图表映射了 Mem0 支持的各种大语言模型(LLM)后端,这些后端可在评估运行期间使用。
来源:mem0/llms/aws_bedrock.py:34-41,mem0/llms/groq.py:15-23,mem0/llms/ollama.py:15-34,mem0/llms/together.py:15-23,mem0/llms/litellm.py:14-20,tests/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-32,evaluation/metrics/llm_judge.py:111-115