PyContinual (一个简单易扩展的持续学习框架)
新闻
🔥 如果你是为了我们最新的 EMNLP23 论文代码而来,请查看 开发分支。我们添加了 continual_finetune.ipynb 作为软掩码场景的自包含示例。它无需 GPU 即可运行良好!
🔥 我们关于语言模型持续预训练的工作已被 EMNLP22 和 ICLR23 接收。查看我们用于持续预训练/后训练的 代码库!
🔥 我们最新的NLP持续学习综述现已在 arXiv 上发布。如果你对持续学习和NLP感兴趣,不妨一看!
🔥 你对额外的基线、任务(包括抽取和生成)、语言模型(如RoBERTa和BART)以及高效训练方法(如fp16和多节点)感兴趣吗?查看我们的 开发分支!
易于使用
你只需更改 baseline
、backbone
和 task
,然后就可以开始了。
这里是一个示例:
python run.py \
--bert_model 'bert-base-uncased' \
--backbone bert_adapter \ #或其他骨干网络 (bert, w2v...)
--baseline ctr \ #或其他可用基线 (classic, ewc...)
--task asc \ #或其他可用任务/数据集 (dsc, newsgroup...)
--eval_batch_size 128 \
--train_batch_size 32 \
--scenario til_classification \ #或其他可用场景 (dil_classification...)
--idrandom 0 \ #使用哪个随机序列
--use_predefine_args #使用预定义参数
易于扩展
你只需编写自己的 ./dataloader
、./networks
和 ./approaches
。你就可以 开始了!
性能
简介
最近,持续学习方法越来越受关注。该代码库包含了一系列(改进的)最先进方法的 PyTorch 实现,使用相同的训练和评估流程。
该代码库包含以下论文的代码:
- 在持续学习中实现遗忘预防和知识迁移, Zixuan Ke, Bing Liu, Nianzu Ma, Hu Xu 和 Lei Shu, NeurIPS 2021
- CLASSIC: 方面情感分类任务的持续对比学习, Zixuan Ke, Bing Liu, Hu Xu 和 Lei Shu, EMNLP 2021
- 适应 BERT 以持续学习一系列方面情感分类任务, Zixuan Ke, Hu Xu 和 Bing Liu, NAACL 2021
- 相似和不同任务混合序列的持续学习, Zixuan Ke, Bing Liu 和 Xingchang Huang, NeurIPS 2020 (如果你只关心这个模型,也可以查看 CAT)
- 用于情感分类的知识迁移持续学习, Zixuan Ke, Bing Liu, Hao Wang 和 Lei Shu, ECML-PKDD 2020 (如果你只关心这个模型,也可以查看 LifelongSentClass)
- 40+ 基线和变体 (并持续增长中!)
特性
- 数据集: 目前支持语言数据集(文档/句子/方面情感分类、自然语言推理、主题分类)和图像数据集(CelebA、CIFAR10、CIFAR100、FashionMNIST、F-EMNIST、MNIST、VLCS)
- 场景: 目前支持任务增量学习和领域增量学习
- 训练模式: 目前支持单GPU。你也可以更改为多节点分布式训练和混合精度训练。
架构
./res
: 所有结果保存在此文件夹中。
./dat
: 处理后的数据
./data
: 原始数据
./dataloader
: 包含不同数据的数据加载器
./approaches
: 训练代码
./networks
: 网络架构代码
./data_seq
: 一些参考序列(例如 asc_random)
./tools
: 准备数据的代码
设置
- 如果您想运行现有系统,请参阅 run_exist.md
- 如果您想用自己的模型扩展框架,请参阅 run_own.md
- 如果您想查看完整的基线和变体列表,请参阅 baselines.md
参考文献
如果使用此代码、其部分内容或由此衍生的开发,请考虑引用以下参考文献。
@inproceedings{ke2021achieve,
title={Achieving Forgetting Prevention and Knowledge Transfer in Continual Learning},
author={Ke, Zixuan and Liu, Bing and Ma, Nianzu and Xu, Hu, and Lei Shu},
booktitle={NeurIPS},
year={2021}
}
@inproceedings{ke2021contrast,
title={CLASSIC: Continual and Contrastive Learning of Aspect Sentiment Classification Tasks},
author={Ke, Zixuan and Liu, Bing and Xu, Hu, and Lei Shu},
booktitle={EMNLP},
year={2021}
}
@inproceedings{ke2021adapting,
title={Adapting BERT for Continual Learning of a Sequence of Aspect Sentiment Classification Tasks},
author={Ke, Zixuan and Xu, Hu and Liu, Bing},
booktitle={Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
pages={4746--4755},
year={2021}
}
@inproceedings{ke2020continualmixed,
author= {Ke, Zixuan and Liu, Bing and Huang, Xingchang},
title= {Continual Learning of a Mixed Sequence of Similar and Dissimilar Tasks},
booktitle = {Advances in Neural Information Processing Systems},
volume={33},
year = {2020}}
@inproceedings{ke2020continual,
author= {Zixuan Ke and Bing Liu and Hao Wang and Lei Shu},
title= {Continual Learning with Knowledge Transfer for Sentiment Classification},
booktitle = {ECML-PKDD},
year = {2020}}
联系方式
如果您对代码有任何问题,请发送电子邮件至 Zixuan Ke、Xingchang Huang 或 Nianzu Ma。我们感谢 Bing Liu、Hu Xu 和 Lei Shu 提供的宝贵意见和建议。