논문

[논문리뷰] P-tuning-GPT Understands, Too(Version2)

송채채 2024. 1. 24. 18:09

P-tuning이란?

P-tuning은 언어 모델의 full pre-training을 지양하고 수동적인 프롬프트 엔지니어링을 극복하고자 고안한 방법입니다. 수동 프롬프트 엔지니어링은 단어 하나의 변화가 결과에 큰 영향을 미치기 때문에 성능의 일관성을 확보하기 어렵습니다. AutoPrompt와 같은 선행 연구는 템플릿을 자동으로 생성하는 방식을 도입했지만, 여전히 단어 단위의 템플릿이기 때문에 단어 하나가 바뀌면 결과가 크게 달라지는 한계가 있습니다. P-tuning은 이러한 한계를 극복하기 위해 연속성있는 임베딩 벡터를 생성하여 학습합니다.

 

 

프롬프트에는 "영국의 수도는 [MASK] 입니다."라는 문장이 있습니다. 여기서 "The capital of ~is"는 프롬프트이고, "Britain"은 컨텍스트(X), [MASK]는 예측해야하는 Y입니다.
언어 모델은 X와 Y를 입력받아 영국의 수도는 런던입니다.라는 문장을 출력합니다.


이때, 프롬프트를 임베딩하는 과정에서 기존의 이산 프롬프트(discrete prompt)에서 사용되던 단어들뿐만 아니라 의사 토큰(pseudo token)을 활용하여 템플릿의 컨텍스트를 학습하고자 합니다. 의사 토큰은 프롬프트 인코더를 통해 학습되며 연속성있는 임베딩 벡터로 변환됩니다. 변환된 벡터는 주어진 태스크에 맞게 유연하게 사용될 수 있습니다.

 

프롬프트 인코더는 LSTM을 활용했습니다. 즉, 가상의 의사토큰(일종의 껍데기)을 셋팅하고, 파인튜닝을 원하는 서브태스크에 맞는 학습데이터셋을 준비합니다. 그리고, 프롬프트 인코더를 학습데이터셋에 맞게 파인튜닝하면 일부 파라미터만 학습시킬 수 있습니다. P-tuning의 장점은 LSTM으로 구성된 프롬프트 인코더만 바꾸면 서브태스크에 맞는 파인튜닝을 적은 학습량으로 할 수 있다는 것입니다.

2023-10-25 Version 2

P-tuning의 방법은 GPT Understands, Too라는 논문에서 개발되었습니다. 대부분 2021년 version 1에 대한 리뷰만 존재하고, 2023-10-25일에 업데이트 된 version 2는 리뷰가 없어서 간략히 정리했습니다.
핵심 연구방법론은 같지만, 논문의 동기가 처음에는 GPT를 향상시키는 것이었지만, version 2에서는 PEFT에 대한 기법을 중심으로 p-tuning의 구조를 중심으로 설명합니다.

  1. Motivation 삭제:
    • 버전 2에서는 Motivation(동기) 부분이 삭제되었습니다. Version 1이 GPT의 자연어 이해 성능 향상을 위한 내용 중심이었다면, Version 2는 P-tuning의 구조와 방법론에 대한 내용을 중심으로 다루고 있습니다.
  2. 방법론:
    • 방법론 부분이 구체적으로 수정되었습니다. Version 1은 "Architecture", "Optimizer"만 설명되어 있었지만, Version 2에서는 "Discrete prompts problem", "P-tuning", "Prompts Encoder"로 연구방법과 구조를 상세하게 구분하여 설명합니다.
    • LSTM에 대한 설명이 추가되었습니다. LSTM을 어떻게 활용하는지에 대한 내용이 버전 2에서는 더욱 자세하게 다루어졌습니다.
    • 앵커토큰(anchor token)에 대한 내용이 삭제되었습니다.
    • LSTM을 선택한 이유에 대한 보충 설명이 추가되었습니다.
    • 프롬프트 토큰의 개수에 따른 퓨샷(few-shot) 성능 내용이 추가되었습니다.
  3. 벤치마킹:
    • 벤치마킹 부분에서는 자동화된 이산 프롬프트(discrete prompts)를 비교하는 내용이 추가되었습니다.
    • 연구결과
    • 연구 결과 부분에서는 p-tuning을 테스트 데이터셋에 적용하는 것에서 그치지 않고, p-tuning의 장점을 고려하여 벤치마크를 구분하고 성능을 보여주는 내용이 추가되었습니다.
반응형