codebase นี้มีการใช้วิธีการเรียนรู้อย่างต่อเนื่องสองวิธี:
L2P เป็นเทคนิคการเรียนรู้อย่างต่อเนื่องที่แปลกใหม่ซึ่งเรียนรู้ที่จะกระตุ้นให้แบบจำลองที่ผ่านการฝึกอบรมมาก่อนเพื่อเรียนรู้งานตามลำดับภายใต้การเปลี่ยนงานที่แตกต่างกัน แตกต่างจากวิธีการฝึกซ้อมหลักหรือวิธีการอิงตามสถาปัตยกรรม L2P ไม่จำเป็นต้องใช้บัฟเฟอร์การฝึกซ้อมหรือเอกลักษณ์เวลาทดสอบ L2P สามารถนำไปใช้กับการตั้งค่าการเรียนรู้อย่างต่อเนื่องที่หลากหลายรวมถึงการตั้งค่างานที่ท้าทายและเป็นจริงที่สุด L2P มีประสิทธิภาพสูงกว่าวิธีการที่ทันสมัยก่อนหน้านี้ น่าแปลกที่ L2P บรรลุผลการแข่งขันกับวิธีการซ้อมแม้ว่าจะไม่มีบัฟเฟอร์การซ้อม


รหัสเขียนโดย Zifeng Wang รับทราบถึง https://github.com/google-research/nested-transformer
นี่ไม่ใช่ผลิตภัณฑ์ Google ที่ได้รับการสนับสนุนอย่างเป็นทางการ
เกณฑ์มาตรฐาน Imagenet-R แยกถูกสร้างขึ้นบน ImageNet-R โดยการหาร 200 คลาสออกเป็น 10 งานที่มี 20 คลาสต่องานดู libml/input_pipeline.py สำหรับรายละเอียด เราเชื่อว่าการแยก Imagenet-R มีความสำคัญอย่างยิ่งต่อชุมชนการเรียนรู้อย่างต่อเนื่องด้วยเหตุผลดังต่อไปนี้:
Codebase ได้รับการปรับปรุงใหม่ใน Pytorch โดย Jaeho Lee ใน L2P-Pytorch และ DualPrompt-Pytorch
pip install -r requirements.txt
หลังจากนี้คุณอาจต้องปรับรุ่น JAX ของคุณตามรุ่นไดรเวอร์ CUDA ของคุณเพื่อให้ JAX ระบุ GPU ของคุณได้อย่างถูกต้อง (ดูปัญหานี้สำหรับรายละเอียดเพิ่มเติม)
หมายเหตุ: Codebase ได้รับการทดสอบผ่านทางสภาพแวดล้อม TPU โดยใช้เวอร์ชัน JAX รุ่นใหม่ล่าสุด ขณะนี้เรากำลังดำเนินการตรวจสอบสภาพแวดล้อม GPU เพิ่มเติม
ก่อนที่จะทำการทดลองสำหรับ 5-Datasets และ Core50 ขั้นตอนการเตรียมชุดข้อมูลเพิ่มเติมควรดำเนินการดังนี้:
"PATH_TO_CORE50" และ "PATH_TO_NOT_MNIST" ใน libml/input_pipeline.py โดยเส้นทางปลายทางในขั้นตอนที่ 2 รุ่น VIT-B/16 ที่ใช้ในบทความนี้สามารถดาวน์โหลดได้ที่นี่ หมายเหตุ: Codebase ของเรารองรับ VITS ขนาดต่าง ๆ หากคุณต้องการลองใช้ VITS VITS โปรดเปลี่ยน config.model_name ในไฟล์ config ตามตัวเลือกที่ถูกต้องที่กำหนดไว้ในรุ่น/vit.py
เราให้ไฟล์การกำหนดค่าเพื่อฝึกอบรมและประเมิน 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 TPUs และเราระบุขนาดแบทช์ต่ออุปกรณ์ 16 ตัวในไฟล์ config สิ่งนี้บ่งชี้ว่าเราใช้ขนาดแบทช์ทั้งหมด 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}
}