冻结 GPT-2/ViT 当通用计算引擎:universal-computation 的 7 个任务与复现命令
项目信息
- 仓库:kzl/universal-computation
- 论文:Pretrained Transformers as Universal Computation Engines, arXiv:2103.05247
- 元信息:246 stars,MIT,Python,默认分支
master,最后 push2022-01-14,homepage 指向 arXiv:2103.05247。 - 以下按 README 与仓库元信息整理,未实机复现;运行相关均未实测。
Overview
官方代码库,对应论文 Pretrained Transformers as Universal Computation Engines。包含 demo notebook 和复现实验的脚本。
Project Demo
冻结预训练 Transformer 的最小演示见 demo.ipynb。运行该 notebook 可在几分钟内复现 Bit XOR 实验,并可视化学到的注意力图。未实测。
Status
当前没有更新计划,但未来可能添加新功能。
目前仓库支持以下任务:
['bit-memory', 'bit-xor', 'listops', 'mnist', 'cifar10', 'cifar10-gray', 'remote-homology']
以及以下模型:
['gpt2', 'gpt2-medium', 'gpt2-large', 'gpt2-xl', 'vit', 'lstm']
注意,CIFAR-10 LRA 是 cifar10-gray,patch size 为 1。
Usage
Installation
- 安装 Anaconda 环境:
$ conda env create -f environment.yml
- 将
universal-computation/加入PYTHONPATH,即在~/.bashrc添加:
export PYTHONPATH=~/universal-computation:$PYTHONPATH
Downloading datasets
数据集存放在 data/。
MNIST 和 CIFAR-10 在实验启动时由 PyTorch 自动下载。
Listops
从 Long Range Arena 下载 Listops 文件。将 .tsv 文件移到 data/listops。应有三个文件:basic_test、basic_train、basic_val。脚本默认在验证集评估。
Remote homology
从 TAPE 安装并下载 Remote Homology 文件。将文件移到 data/tape,即存在目录(以及 valid variant)data/tape/remote_homology/remote_homology_train.lmdb。其中应有两个文件:data.mdb 和 lock.mdb。脚本默认在验证集评估。
Running experiments
运行实验:
python scripts/run.py
添加 -w True 会将结果记录到 Weights & Biases:
python scripts/run.py -w True
Citation
@article{lu2021fpt,
title={Pretrained Transformers as Universal Computation Engines},
author={Kevin Lu and Aditya Grover and Pieter Abbeel and Igor Mordatch},
journal={arXiv preprint arXiv:2103.05247},
year={2021}
}
License
MIT