프롬프트 튜닝 (Prompt Tuning)

Prompt Design

  • 프롬프트 디자인이란 언어모델에서 주로 활용하며 모델이 원하는 레벨의 결과를 출력할 수 있도록 입력 테스트를 변형하는 방법이다
  • 장점은 추가학습 없이 사전학습된 모델의 예측 성능을 끌어올릴 수 있음
  • 단점은 프롬프트를 사람이 직접 설계해야 한다는 부담이 있으며 성능 향상이 제한적

Prompt Engineering

  • 프롬프트 엔지니어링이란 원하는 답을 얻기 위해 모델에 주어진 입력(프롬프트)을 설계,조정하는 기법
  • 입력 프롬프트 = (1) 지시 instruction + (2) 예시 few-shot examples 프롬프트튜닝
  • 어떻게 지시를 주는지, 어떤 예시를 보여주는지가 거대 언어 모델의 성능에 크게 영향을 미침

Chain-of-Thought (CoT) 프롬프팅

  • 단순히 질문과 응답만을 예시로 활용하는 것이 아니라 추론 과정도 예시에 포함한다 -> 이를 통해 테스트 질문에 대해 추론을 생성하고 응답하도록 유도함으로써, 더 정확한 정답 생성을 기대할 수 있음
  • CoT로 인한 성능 향상은 모델 크기가 커질수록 더 확대된다
  • 예시 기반 CoT는 강력하지만 예시를 위한 추론 과정을 수집해야 하는 문제가 있다
    • 예시 없이도(0-shot) 언어 모델의 추론 성능을 강화할 수 있을까? 프롬프트튜닝

0-shot CoT 프롬프팅

  1. 추출 문장을 통한 추론 생성 (ex- Let’s think step by step)
  2. 주어진 질문과 생성된 추론을 통한 정답 생성 (ex - Therefore, the answer is)
    • 0-shot CoT는 기존 0-shot 프롬프팅보다 훨씬 높은 추론 성능을 달성 프롬프트튜닝

Prompt Tuning

  • PEFT(Parameter-Efficient Fine-Tuning)의 한 방법으로 학습 가능한 프롬프트로서, 가상 토큰(virtual token)을 입력에 추가
  • 역전파를 통해 오직 가상 토큰에 대한 임베딩만 학습하고 나머지 모델은 고정
  • 장점
    • 사람의 디자인 없이 스스로 프롬프트를 학습할 수 있음
    • 사전학습된 모델을 고정할 수 있음
      (지식 손실 X : 일반 파인튜닝은 지식 손실 발생)
    • 적은 비용으로 새로운 데이터셋의 모델을 학습할 수 있음
  • 학습된 프롬프트는 그저 숫자 열일뿐, 해석되는게 아님 프롬프트튜닝

미세 조정 vs 프롬프트 튜닝 vs 프롬프트 디자인

프롬프트튜닝