Prompt Tuning for Generative Multimodal Pretrained Models
🪝

Prompt Tuning for Generative Multimodal Pretrained Models

Tags
논문리뷰
NLP
TLDR논문리뷰
Published
Published August 5, 2022
  • Alibaba
  • Submitted on 4 Aug 2022
    • Comments: Work in progress

Paper TL;DR

notion image
💡
일반적인 수준의 Prompt Tuning, 하지만 Visual Encoding을 끼얹은.
  • MultiModal end-to-end 모델에의 Prompt Tuning
  • Fine-tune 대신에 prompt tuning을 적용
  • Encoder, Decoder 각 종류의 모델에 적용하는 대신, Encoder-Decoder(unified transformer) 계열의 모델에 적용
    • Encoder, Decoder 한 부분에만 Prompt-Embedding을 넣어주는 것 보다, 둘 다에 함께 Prompt embedding을 추가로 넣어주는 것이 효과가 좋다. (아주 큰 차이를 보인다고 함)
    • 만약 Encoder, Decoder 중 하나에만 넣어야 한다면 Encoder에 넣어주는 것이 낫다.
  • Zero-shot, Few-shot Learning, In-context Learning 맥락에서 유의미한 페이퍼
  • 전체 weight 중 1%에 해당하는 부분 (100M이라면 1M, 930M이라면 대략 9M) Params만 수정
  • Prompt의 길이가 길 수록 더 효과가 좋아짐
    • 20 tokens 이상의 prompt가 유의미한 모습을 보인다.
    • 하지만 너무 긴 prompt는 오히려 효과를 떨어뜨림.(128넘어가면 별로라고 하는 듯)
    • 실험적으로, 64 tokens의 prompt가 가장 좋은 효과를 보여줬다고 함
  • Reparameterization(ExBERT처럼, 추가적으로 MLP같은 학습 layer를 추가해 주는 것)은 생각보다 성능이 좋지 않았음
    • 오히려 성능 하락을 보이기도 함
  • Prompt Embedding Matrix를 일종의 Prompt Generator function으로 취급
 

Experiments & Results

notion image
  • 성능 비교시 finetuning과 prompt tuning이 성능 차이가 크지 않은 모습을 보여준다.
    • 실험은 NLU, NLG가 가능한 VQA 등으로 구성
    • 180M~470M 모델 크기로 구성
 
notion image
  • 유사 방법론인 Bitfit과 Adapter와도 비교. 성능이 더 좋다고 이야기 함.
 
notion image
  • Prompt Length에 따라서 Downstream Task에 성능 비교
    • 대략 60(64) 부근에서 가장 성능이 괜찮게 나온다고 함 (SNLI-VE의 test set에서 가장 극단적인 듯)
    • 64가 평균적으로 낫더라
 
notion image
  • Prompt Tuning이 Finetune보다 나은 점 하나로: Adversarial Attack에 강건하다.
    • Finetune한 모델, Prompt Tuning한 모델 각각에 대해서 공격
    • Gradient-based로 Adv attack
    • 성능 저하가 훨씬 적더라 (절반정도)
 
notion image
  • 앞서 이야기 했던.. Enc + Dec vs Enc vs Dec
  • 어디에 넣느냐에 따라서 성능의 차이가 있음
    • 유의미한 차이라고 보이긴 함 (성능 향상의 trend가 일정)
    • Encoder-Decoder 전부 넣어주는게 제일 낫다.
    • 안되면 encoder only라도.
 
notion image
  • 모델에 MLP 등 추가한 Reparameterization
    • MLP가 쪼끔 더 성능이 좋은가? 싶으면서도 오히려 떨어지는 경우(SNLI-VE dev/test, COCO, VQA)가 꽤 있음
 

Discussion

  • Prompt tuning이 finetune을 대체할수는 없지만 유의미한 성능이 나온다
  • 문제1: SLOOOOOOW Convergence
    • 분명, 1%정도의 params만 학습하니까 학습 cost는 낮고, Efficiency는 높음.
    • 근데.. 제대로 된 학습을 하려 하니 40epochs(?!)의 학습이 필요
    • GPU-Hours로 계산하니까.. 엄청 절약되는 그런게 아님
  • 문제2: HyperParams 튜닝이 어려움
    • Fine-tune할 때 쓰는 하이퍼파라미터 튜닝 기법을 쓰기 어려움
    • 다행히(?) Prompt Tuning을 위한 Hparams 튜닝은 크게 어렵지 않음
  • 문제가 있지만 그래도 Adv Attack에 강건한건 좋음