Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
7
8 commits
1 linked in READMEs
updated Jan 30, 2026
This huggingface page contains data for the paper: Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
Evaluating the abilities of large language models (LLMs) for tasks that require long-term memory and thus long-context reasoning, for example in conversational settings, is hampered by the existing benchmarks, which often lack narrative coherence, cover narrow domains, and only test simple recall-oriented tasks. This paper introduces a comprehensive solution to these challenges. First, we present a novel framework for automatically generating long (up to 10M tokens), coherent, and topically diverse conversations, accompanied by probing questions targeting a wide range of memory abilities. From this, we construct BEAM, a new benchmark comprising 100 conversations and 2,000 validated questions. Second, to enhance model performance, we propose LIGHT–a framework inspired by human cognition that equips LLMs with three complementary memory systems: a long-term episodic memory, a short-term working memory, and a scratchpad for accumulating salient facts. Our experiments on BEAM reveal that even LLMs with 1M token context windows (with and without retrieval-augmentation) struggle as dialogues lengthen. In contrast, LIGHT consistently improves performance across various models, achieving an average improvement of 3.5%–12.69% over the strongest baselines, depending on the backbone LLM. An ablation study further confirms the contribution of each memory component.
BEAM is a comprehensive dataset for evaluating long-term memory in language models. It contains multi-scale conversations (128K, 500K, 1M, and 10M tokens) across diverse domains, including general, coding, and math topics, and is used to evaluate ten distinct memory abilities.
Each conversation includes:
10M conversations have a unique structure with multiple plans:
import ast
from datasets import load_dataset
# Load the dataset
dataset = load_dataset("Mohammadta/BEAM")
# Access different chat sizes
dataset_100k = dataset["100K"]
dataset_500k = dataset["500K"]
dataset_1m = dataset["1M"]
# Example: Get a regular conversation (100K, 500K, 1M)
conversation = dataset_100k[0]
print(conversation["conversation_seed"]) # Dict
print(conversation["chat"]) # List
print(conversation["probing_questions"]) # String
# Direct access to dict objects (no parsing needed)
profile_data = conversation["user_profile"]
print(f"User info: {profile_data.get('user_info', '')}")
print(f"Relationships: {profile_data.get('user_relationships', '')}")
seed_data = conversation["conversation_seed"]
print(f"Category: {seed_data.get('category', '')}")
print(f"Title: {seed_data.get('title', '')}")
# probing_questions is a string
questions_string = conversation["probing_questions"]
probing_questions_data = ast.literal_eval(questions_string)
print(f"Probing questions: {probing_questions_data}")
# Direct access to lists
chat_data = conversation["chat"]
print(f"Chats: {chat_data}")
user_questions = conversation["user_questions"]
print(f"User questions: {user_questions}")
The BEAM dataset is released under the
Creative Commons Attribution–ShareAlike 4.0 International License (CC BY-SA 4.0).
Full license text: https://creativecommons.org/licenses/by-sa/4.0/
If you use this dataset in your research, please cite:
Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
@misc{tavakoli2025milliontokensbenchmarkingenhancing,
title={Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs},
author={Mohammad Tavakoli and Alireza Salemi and Carrie Ye and Mohamed Abdalla and Hamed Zamani and J Ross Mitchell},
year={2025},
eprint={2510.27246},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2510.27246},
}
8 commits
Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
7
8 commits
1 linked in READMEs
updated Jan 30, 2026
This huggingface page contains data for the paper: Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
Evaluating the abilities of large language models (LLMs) for tasks that require long-term memory and thus long-context reasoning, for example in conversational settings, is hampered by the existing benchmarks, which often lack narrative coherence, cover narrow domains, and only test simple recall-oriented tasks. This paper introduces a comprehensive solution to these challenges. First, we present a novel framework for automatically generating long (up to 10M tokens), coherent, and topically diverse conversations, accompanied by probing questions targeting a wide range of memory abilities. From this, we construct BEAM, a new benchmark comprising 100 conversations and 2,000 validated questions. Second, to enhance model performance, we propose LIGHT–a framework inspired by human cognition that equips LLMs with three complementary memory systems: a long-term episodic memory, a short-term working memory, and a scratchpad for accumulating salient facts. Our experiments on BEAM reveal that even LLMs with 1M token context windows (with and without retrieval-augmentation) struggle as dialogues lengthen. In contrast, LIGHT consistently improves performance across various models, achieving an average improvement of 3.5%–12.69% over the strongest baselines, depending on the backbone LLM. An ablation study further confirms the contribution of each memory component.
BEAM is a comprehensive dataset for evaluating long-term memory in language models. It contains multi-scale conversations (128K, 500K, 1M, and 10M tokens) across diverse domains, including general, coding, and math topics, and is used to evaluate ten distinct memory abilities.
Each conversation includes:
10M conversations have a unique structure with multiple plans:
import ast
from datasets import load_dataset
# Load the dataset
dataset = load_dataset("Mohammadta/BEAM")
# Access different chat sizes
dataset_100k = dataset["100K"]
dataset_500k = dataset["500K"]
dataset_1m = dataset["1M"]
# Example: Get a regular conversation (100K, 500K, 1M)
conversation = dataset_100k[0]
print(conversation["conversation_seed"]) # Dict
print(conversation["chat"]) # List
print(conversation["probing_questions"]) # String
# Direct access to dict objects (no parsing needed)
profile_data = conversation["user_profile"]
print(f"User info: {profile_data.get('user_info', '')}")
print(f"Relationships: {profile_data.get('user_relationships', '')}")
seed_data = conversation["conversation_seed"]
print(f"Category: {seed_data.get('category', '')}")
print(f"Title: {seed_data.get('title', '')}")
# probing_questions is a string
questions_string = conversation["probing_questions"]
probing_questions_data = ast.literal_eval(questions_string)
print(f"Probing questions: {probing_questions_data}")
# Direct access to lists
chat_data = conversation["chat"]
print(f"Chats: {chat_data}")
user_questions = conversation["user_questions"]
print(f"User questions: {user_questions}")
The BEAM dataset is released under the
Creative Commons Attribution–ShareAlike 4.0 International License (CC BY-SA 4.0).
Full license text: https://creativecommons.org/licenses/by-sa/4.0/
If you use this dataset in your research, please cite:
Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs
@misc{tavakoli2025milliontokensbenchmarkingenhancing,
title={Beyond a Million Tokens: Benchmarking and Enhancing Long-Term Memory in LLMs},
author={Mohammad Tavakoli and Alireza Salemi and Carrie Ye and Mohamed Abdalla and Hamed Zamani and J Ross Mitchell},
year={2025},
eprint={2510.27246},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2510.27246},
}
8 commits