资讯动态

构建自定义长期记忆测试场景:LongMemEval聊天历史构造流水线实践教程

发布时间:2026/10/15 13:18:57 来源:尧图企业网站定制
模型评测AI 评测人工智能大模型【免费下载链接】LongMemEvalBenchmarking Chat Assistants on Long-Term Interactive Memory (ICLR 2025)项目地址https://gitcode.com/gh_mirrors/lo/LongMemEval点击查看免费下载LongMemEvalICLR 2025是面向聊天助手长期记忆能力的综合性基准测试包含 500 道高质量题目。本教程带你完整走一遍官方的聊天历史构造流水线从下载数据语料、理解三类会话来源到一条命令复现 LongMemEval_S/M并搭建完全自定义的长期记忆测试场景。 LongMemEval 是什么为什么需要可控的聊天历史LongMemEval 测试聊天系统的5 项核心长期记忆能力信息抽取Information Extraction多会话推理Multi-Session Reasoning知识更新Knowledge Updates时间推理Temporal Reasoning拒答能力Abstention它的灵感来自经典的大海捞针needle-in-a-haystack测试为每道题目编译一段连贯、可扩展、带时间戳的聊天历史让系统在阅读全部历史会话之后才能作答。而历史中的绝大多数会话只是干扰项filler真正有用的证据只藏在其中一两个会话里。核心价值官方提供了一条属性可控的构造流水线——你可以自由调节历史长度、会话数量与难度把测试从 LongMemEval_M 继续往上加难。 流水线的三大核心组件在动手之前先理解数据语料解压到data/custom_history/目录下包含的四个部分数据文件作用1_attr_bg/data_1_attr_bg.json用户属性与背景信息2_questions题目、答案、证据陈述及证据会话5_filler_sess/data_5_filler_sess.json干扰会话来自 ShareGPT 与 UltraChat 真实对话6_session_cache/data_6_session_cache.json基于背景事实模拟生成的用户会话构造流程可以概括为三步采样干扰会话按 50% 模拟用户会话、25% ShareGPT、25% UltraChat 的比例混合填充插入证据会话把带答案的会话标记为answer_前缀并按任务类型排布例如 knowledge-update 任务会刻意把旧事实放在新事实之前分配时间戳为每个会话生成日期并保证与题目的时间推理约束一致最终排序输出。这套逻辑全部封装在 sample_haystack_and_timestamp.py 中。️ 实战一条命令复现官方历史构造1. 准备环境只需做评估的话装最小依赖即可运行评估脚本见 requirements-lite.txtconda create -n longmemeval-lite python3.9 pip install -r requirements-lite.txt如需复现论文中的记忆检索与生成实验则使用完整环境 requirements-full.txt。2. 下载构造语料按 README.md 中Downloading the Corpus一节的官方链接下载压缩数据并解压到data/custom_history/目录下即上表中的四个数据部分。3. 运行构造命令进入data/custom_history/目录后执行python sample_haystack_and_timestamp.py task n_questions min_n_haystack_filler max_n_haystack_filler enforce_json_length其中task使用数据中的命名与论文官方名称的对应关系如下来源sample_haystack_and_timestamp.py数据中的命名论文中的能力single_hopsingle-session-userimplicit_preference_v2single-session-preferenceassistant_previnfosingle-session-assistanttwo_hop / multi_session_synthesismulti-sessiontemp_reasoning_implicit / explicittemporal-reasoningknowledge_updateknowledge-update4. 参数速查表参数含义官方取值n_questions最多构造的题目数500min/max_n_haystack_filler每道题历史的干扰会话数范围S 版 80M 版 500enforce_json_length用 Llama 3 tokenizer 限制历史 token 数S 版 115000M 版设为很大值即可例如复现 LongMemEval_S 的 single-session-user 部分python sample_haystack_and_timestamp.py single_hop 500 80 80 115000脚本运行完毕会在当前目录生成 JSON 结果文件并打印历史的最大/最小/平均 token 数方便你核对难度是否符合预期。 构建你自己的自定义场景当你想让题目超出官方 500 题的范围时只需做两件事仿照2_questions的格式编写题目包含题目内容、答案、证据会话以及时间推理任务所需的日期约束字段仿照6_session_cache的格式编写模拟会话让会话内容与用户背景一致并打上human_valid_label标记。之后仍然用同一条sample_haystack_and_timestamp.py命令运行流水线会自动完成干扰采样、证据插入、时间戳分配与长度控制。这正是官方可无限加难设计的由来——历史长度不再受限于发布数据集。✅ 验证生成结果与评估生成的每个实例包含以下关键字段question_id/question_type/question/answer题目信息question_date提问时间haystack_dates/haystack_session_ids/haystack_sessions按时间排序的完整聊天历史answer_session_ids证据会话列表用于会话级记忆召回率评估把结果喂给你的系统、收集输出后用官方评估脚本即可打分见 evaluate_qa.pycd src/evaluation python3 evaluate_qa.py gpt-4o your_hypothesis_file ../../data/longmemeval_oracle.json 实用小贴士token 长度自检LongMemEval_S 拼起来约 115k tokens约 40 个会话M 版约 500 个会话超出 128k 上下文时请优先用 S 版或 oracle 版测试随机性提示脚本每次运行的采样和时间戳都不同需要对比实验时可自行固定随机种子拒答题目question_id以_abs结尾的题目答案应为历史中未提及评估检索指标时官方会自动跳过这 30 道进阶玩法官方还在 src/index_expansion/ 提供了索引扩展关键词、用户事实、会话摘要与时间感知查询剪枝的实现可进一步改造历史构造的检索难度。掌握这条流水线后你就能像调配方一样为任意长期记忆系统定制难度、话题与规模完全可控的测试场景了 赞分享模型评测AI 评测人工智能大模型【免费下载链接】LongMemEvalBenchmarking Chat Assistants on Long-Term Interactive Memory (ICLR 2025)项目地址https://gitcode.com/gh_mirrors/lo/LongMemEval点击查看免费下载相关推荐LongMemEval终极指南ICLR 2025如何重新定义AI聊天助手的长期记忆评测LongMemEval终极指南ICLR 2025如何重新定义AI聊天助手的长期记忆评测 LongMemEval 是 ICLR 2025 收录的 AI 聊天助模型评测AI 评测人工智能大模型洛雪音乐桌面版免费音乐聚合播放器完整使用指南洛雪音乐桌面版免费音乐聚合播放器完整使用指南 周五晚上想听首歌手指在三个 App 之间划了个来回这首在这个平台下架那首在那个平台要会员。如果有一个软件桌面应用音视频前端如何快速部署 llama-serverOpenAI 兼容本地推理指南如何快速部署 llama serverOpenAI 兼容本地推理指南 llama server 是 llama.cpp 内置的纯 C/C HTTP 推理服人工智能大模型模型推理服务推理引擎本地部署后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑