项目介绍:MEMIT
MEMIT,也就是“大批量编辑 Transformer 的记忆”,是一个旨在一次性编辑数千条事实到 Transformer 记忆中的项目。这一项目主要集中在增强 Transformer 模型的可调性,使其更灵活、更高效地适应各种新的信息或事实更新。
安装指南
对于 Python、CUDA 和 PyTorch 的管理,推荐使用 conda
,而 pip
适用于其他所有方面的安装。要开始使用,安装 conda
后,运行以下命令即可:
CONDA_HOME=$CONDA_HOME ./scripts/setup_conda.sh
这里的 $CONDA_HOME
是您的 conda
安装路径,例如 ~/miniconda3
。
MEMIT 算法演示
项目中提供了一个演示文件 [notebooks/memit.ipynb
],用户可以通过简单的 API 指定所需的“重写”请求。例如:
request = [
{
"prompt": "{} plays the sport of",
"subject": "LeBron James",
"target_new": {
"str": "football"
}
},
{
"prompt": "{} plays the sport of",
"subject": "Michael Jordan",
"target_new": {
"str": "baseball"
}
},
]
类似的示例可以在演示笔记本中找到,通过这种方式,用户能够轻松编辑 Transformer 模型的记忆。
运行完整评估套件
MEMIT 项目提供了一套完整的评估工具,用户可使用 [experiments/evaluate.py
] 评估任意方法。例如,可以使用以下命令测试 MEMIT 算法:
python3 -m experiments.evaluate \
--alg_name=MEMIT \
--model_name=EleutherAI/gpt-j-6B \
--hparams_fname=EleutherAI_gpt-j-6B.json \
--num_edits=10000 \
--use_cache
每次运行的结果会以特定格式保存在 results/<method_name>/run_<run_id>
中:
results/
|__ MEMIT/
|__ run_<run_id>/
|__ params.json
|__ case_0.json
|__ case_1.json
|__ ...
|__ case_10000.json
用户还可以使用 [experiments/summarize.py
] 来总结运行结果:
python3 -m experiments.summarize --dir_name=MEMIT --runs=run_<run1>,run_<run2>
如何引用
如果需要引用此项目或相关研究,可以使用以下格式:
@article{meng2022memit,
title={Mass Editing Memory in a Transformer},
author={Kevin Meng and Sen Sharma, Arnab and Alex Andonian and Yonatan Belinkov and David Bau},
journal={arXiv preprint arXiv:2210.07229},
year={2022}
}
MEMIT 项目为 Transformer 模型的记忆编辑提供了一种创新的解决方案,使用户能够快速高效地更新模型内存中的大量事实,对于需要频繁更新信息的应用场景尤其有用。