본문 바로가기
Groups - Lead/Kaggle Korea - Study - CMYK

1. Prompt : Zero/One/Few Shot

by Finn# 2024. 2. 29.
728x90

2024. 2. 26

 CMYK 스터디 2기 첫번째 활동이었습니다.

발표는 한시간동안 진행되었고 LLM에서 Fine-Tuning을 하지않아도 NLP Task를 수행할 수 있게 만들어주는 zero/one/few shot에 대한 이야기와 발전하는 prompt engineering에 대한 방향에 대해서 공부할 수 있었던 시간이었습니다. 본 발표를 통해서 Zero/One/Few Shot이 한번의 Prompt에 제공되는 예제량에 의해서 나뉜다는 것을 알게 되었습니다.


프롬프트 작성 지침

(1) 지침은 명확하고 구체적으로

(2) 간결하게 작성

(3) 행동 동사 사용(action verbs) - 행동 동사로 명령 요소를 시작 "Summarize the given text"

(4) 충분한 맥락을 제공 - 충분한 배경 정보를 제공

(5) 구분 기호(delimiter) 사용 • 프롬프트의 다른 요소를 분리해서 프롬프트를 더 잘 이해할 수 있도록 도움.

(6) 톤 지정 - 생성된 출력의 스타일, 형식 및 전반적인 감정을 결정함

(7) 형식 지정 - 지정된 형식이 없으면 임의의 방식으로 응답을 생성함

(8) 제약 조건 지정- LLM의 응답 범위를 제한하여 관련성을 유지하고 특정 요구에 초점을 맞추도록 제어

(9) 예시 사용- 주어진 예시와 일치하는 출력을 이해하고 생성할 수 있도록 구체적인 지침을 제공할 수 있음


ChatGPT Python API  + Zero/One/Few Shot  Exp

사용한 ChatGPT API와 코드는 다음과 같습니다.

openai 공식 홈페이지에 가면 자세한 정보를 참고해보실 수 있습니다.

 

Zero Shot

: 원하는 답만 물어봤을 때 LLM이 실제로 추론하여 올바른 답변을 생성하는 지 확인해봅니다.

풀고자하는 문제를 LLM에 단순하게 물어봤을 때 다음과 같은 답변을 출력합니다.

 

 

One shot

: 위와 동일한 질문에 대해서 한개의 질문 - 답 쌍을 제공해주었을 때, LLM이 사용자가 원하는 답변의 형태로 출력해주는 지 확인해봅니다.

 

간단한 경우에는 원하는 형태로 잘 답변하는 것을 알 수 있습니다 ( 2024.2.29일 기준 gpt-turbo 3.5)

 

하지만 답변의 형태가 좀 더 복잡한 경우에는 어떻게 될까?

아래 예시를 보면 원하는 답변의 형태로 LLM이 이해하지 못하는 것을 알 수 있다.

예시를 통해서 보시면 아시겠지만 good case와는 달리 예시를 줬음에도 원하는 답변 형태로 답변하지 않는 것을 확인해볼 수 있습니다.

 

 

Few shot (힌트)

: 위와 동일한 질문에 대해서 몇개의 질문 - 답 쌍들을 제공해주었을 때, LLM이 사용자가 원하는 답변의 형태로 출력해줄 수 있는 지 확인해봅니다.

 

한개의 예시를 더 추가해주었더니 별도의 정보없이도 LLM이 원하는 답변의 형태로 출력해주는 것을 확인해볼 수 있습니다.

 


발표 영상 (2024.02.24)

 


CMYK 로고

 

 

insta : https://www.instagram.com/f.inn_sharp/

 

반응형