이 코드베이스에는 두 가지 지속적인 학습 방법의 구현이 포함됩니다.
L2P는 다른 작업 전환하에 순차적으로 작업을 학습하도록 미리 훈련 된 모델을 동적으로 프롬프트하는 법을 배우는 새로운 지속적인 학습 기술입니다. 주류 리허설 기반 또는 아키텍처 기반 방법과는 달리 L2P는 리허설 버퍼 나 테스트 시간 작업 아이덴티티가 필요하지 않습니다. L2P는 가장 도전적이고 현실적인 작업에 대한 설정을 포함하여 다양한 지속적인 학습 설정으로 일반화 될 수 있습니다. L2P는 최첨단 방법을 지속적으로 능가합니다. 놀랍게도, L2P는 리허설 버퍼 없이도 리허설 기반 방법에 대한 경쟁력있는 결과를 달성합니다.


코드는 Zifeng Wang이 작성했습니다. https://github.com/google-research/nested-transformer에 대한 감사.
이것은 공식적으로 지원되는 Google 제품이 아닙니다.
Split Imagenet-R 벤치 마크는 200 개의 클래스를 작업 당 20 개의 클래스로 10 개의 작업으로 나누어 Imagenet-R을 기반으로합니다. 자세한 내용은 libml/input_pipeline.py를 참조하십시오. 우리는 분할 Imagenet-R이 다음과 같은 이유로 지속적인 학습 커뮤니티에 매우 중요하다고 생각합니다.
코드베이스는 L2P-Pytorch 및 DualPrompt-Pytorch의 Jaeho Lee에 의해 Pytorch에서 상환되었습니다.
pip install -r requirements.txt
그런 다음 JAX가 GPU를 올바르게 식별하도록 CUDA 드라이버 버전에 따라 JAX 버전을 조정해야 할 수도 있습니다 (자세한 내용은이 문제 참조).
참고 : Codebase는 최신 JAX 버전을 사용하여 TPU Enviroment에서 통합적으로 테스트되었습니다. 우리는 현재 GPU 환경을 추가로 검증하기 위해 노력하고 있습니다.
5 다타 세트 및 Core50에 대한 실험을 실행하기 전에 추가 데이터 세트 준비 단계를 다음과 같이 수행해야합니다.
"PATH_TO_CORE50" 및 "PATH_TO_NOT_MNIST" 교체하십시오. 이 논문에 사용 된 VIT-B/16 모델은 여기에서 다운로드 할 수 있습니다. 참고 : 코드베이스는 실제로 다양한 크기의 VIT를 지원합니다. VITS 변형을 시도하려면 Models/vit.py에 정의 된 유효한 옵션에 따라 구성 파일에서 config.model_name 자유롭게 변경하십시오.
구성 파일을 제공하여 구성의 여러 벤치 마크에서 L2P 및 DualPrompt를 교육하고 평가합니다.
벤치 마크 데이터 세트에서 L2P를 실행하려면 :
python main.py --my_config configs/$L2P_CONFIG --workdir=./l2p --my_config.init_checkpoint=<ViT-saved-path/ViT-B_16.npz>
$L2P_CONFIG 다음 중 하나 일 수 있습니다 : [cifar100_l2p.py, five_datasets_l2p.py, core50_l2p.py, cifar100_gaussian_l2p.py] .
참고 : 8 V100 GPU 또는 4 TPU를 사용하여 실험을 실행하고 구성 파일에서 16의 장치 배치 크기 당 A를 지정합니다. 이는 총 배치 크기가 128을 사용한다는 것을 나타냅니다.
벤치 마크 데이터 세트에서 DualPrompt를 실행하려면 :
python main.py --my_config configs/$DUALPROMPT_CONFIG --workdir=./dualprompt --my_config.init_checkpoint=<ViT-saved-path/ViT-B_16.npz>
여기서 $DUALPROMPT_CONFIG 다음 중 하나 일 수 있습니다 : [imr_dualprompt.py, cifar100_dualprompt.py] .
우리는 Tensorboard를 사용하여 결과를 시각화합니다. 예를 들어 L2P를 실행하도록 지정된 작업 디렉토리가 workdir=./cifar100_l2p 인 경우 결과를 확인하기위한 명령은 다음과 같습니다.
tensorboard --logdir ./cifar100_l2p
다음은 추적해야 할 중요한 측정 항목과 해당 의미는 다음과 같습니다.
| 메트릭 | 설명 |
|---|---|
| 정확도 _n | N-th 작업의 정확도 |
| 잊어 버렸습니다 | 현재 작업까지 잊어 버리는 평균 |
| avg_acc | 현재 작업까지 평균 평가 정확도가 높아집니다 |
@inproceedings{wang2022learning,
title={Learning to prompt for continual learning},
author={Wang, Zifeng and Zhang, Zizhao and Lee, Chen-Yu and Zhang, Han and Sun, Ruoxi and Ren, Xiaoqi and Su, Guolong and Perot, Vincent and Dy, Jennifer and Pfister, Tomas},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={139--149},
year={2022}
}
@article{wang2022dualprompt,
title={DualPrompt: Complementary Prompting for Rehearsal-free Continual Learning},
author={Wang, Zifeng and Zhang, Zizhao and Ebrahimi, Sayna and Sun, Ruoxi and Zhang, Han and Lee, Chen-Yu and Ren, Xiaoqi and Su, Guolong and Perot, Vincent and Dy, Jennifer and others},
journal={European Conference on Computer Vision},
year={2022}
}