프롬프팅 기법 정리

가온·2024년 9월 14일

요즘 이것저것 만들어보면서 생성AI 모델 API를 불러와서 적용시키는 작업을 했었다.
코드 작성은 간단하지만, 원하는 결과가 나오는가?는 미지수다. 결국 프롬프팅에 달린 일이다.
이전에는 그냥 출력하고 싶은 결과를 무작정 적었다면, 이제는 초반부터 프롬프팅 기법을 적용해서 정확도도 높이고 비용도 줄여보려고 한다.

다음의 내가 까먹지 않기 위해 메모장에 적어둔 프롬프팅 기법을 여기 옮겨 적는다.

Role-Play Prompting

  • 모델에게 구체적인 역할을 지정해준다.
    ex) 너는 AI 전문가야, 너는 국어교사야 etc
    참고논문 : "Better Zero-Shot Reasoning with Role-Play Prompting”

Few-Shot-Learning-Prompting

  • 모델이 특정 작업에 대해 사전 학습을 거의 또는 전혀 하지 않은 상태에서 몇 가지 예제만을 준 뒤에 작업을 수행하게 하는 방식
  • 프롬프팅 시 몇 가지 예시를 제공해준다.
  • 파라미터 크기와 성능이 비례한다.
  • 특정 상황에서 너무 많은 예제는 과적합 문제를 야기한다.
  • 일반론적으로 예시 2~3개가 경제적이다.
    ex) "질문 : Prophet 파라미터 튜닝하는 방법을 알려줘
    답변 : 1. Prophet 모델의 정의 : ~
    2. Prophet 파라미터 튜닝 옵션 :
    3. 예시 코드"
    "질문 : 랜덤 포레스트 모델 튜닝하는 방법 알려줘
    답변 : 1. 랜덤 포레스트 모델의 정의 : ~
    2. 랜덤 포레스트 파라미터 튜닝 옵션 : ~
    3. 예시 코드 "

참고논문 :
“Language Models are Few-Shot Learners”, 2020, OpenAI
“Lost in the Middle: How Language Models Use Long Contexts”, 2023

Zero-Shot-Learning-Prompting

  • Few-shot과 반대
  • 하나의 예시도 주지 않고 답변 요구

One-Shot-Learning-Prompting

  • 하나의 예시를 주고 답변 요구

Chain-of-Thought(CoT) Prompting

  • 차근차근 생각해보자라고 입력
  • “Let's think step by step"을 입력하는 것만으로 성능이 좋아졌음
    참고논문 :
    “Chain of Thought Prompting Elicits Reasoning in Large Language Models”, 2022,Google
    “Large Language Models are Zero-Shot Reasoners”, 2022

According-to-Prompting

  • 모델이 참고하는 출처 명시하기
  • ~에 따르면 말이야, ~질문?
    ex) 나무위키에 따르면, 프롬프팅 기법에는 뭐가 있어?
    참고논문 : “According to ...: Prompting Language Models Improves Quoting from Pre-Training Data”

예시는 내가 쓴 것이기 때문에 틀릴 수도 있지만, 일단 이렇게 정리해두면 다음에 또 쓰겠지

0개의 댓글