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

2. Prompt : CoT (with Zero/One/Few Shot)

by Finn# 2024. 2. 29.
728x90

2024. 2. 26

지난 게시글에 이어 CMYK 스터디 2기 첫번째 활동에 대해서 리뷰해보겠습니다.

이번 시간에는 지난 번에 다뤘던 Zero/One/Few Shot에 Chain of Thought 정보를 추가하는 Prompt에 대해서 알아보겠습니다.


프롬프트 작성 지침

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

(2) 간결하게 작성

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

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

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

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

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

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

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


Chain of Thought(CoT)

: 기본적으로 목표는 Prompt를 통해 LLM이 Step by Step으로 답변을 유도해내는 과정에 대해서 생성할 수 있게 유도하는 것에 있습니다. 이전에 배웠던 Zero/One/Few Shot에 CoT를 유도하거나 제공해주는 방식으로 사용해볼 수 있습니다. 다음의 예시를 참고해보시죠.

 

ChatGPT Python API

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

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

 

1. Zero Shot + CoT

LLM에게 CoT를 직접적으로 요구하는 모습

zero shot + CoT의 경우에는 실제로 LLM이 답변을 생성할 때, CoT를 요구하는 개념이기 때문에 "Let's step by step"이나 "답변을 순서대로 설명해줘"와 같은 구체적인 답변을 요구하는 것을 의미합니다. 이렇게 순서에 따라서 답변을 유도해내는 과정에서 LLM은 더 정확한 답변을 생성하는 경향을 보인다고 합니다.

 

2. One shot + CoT

 

위의 예시를 살펴보면 .. 장황하게 적어놨지만 그냥 그럴듯하게 답변을 유도하는 과정에 대해서 적어놓으면 LLM도 이러한 정보를 반영해서 해당 사고회로를 통해 답변을 유도하는 것을 확인해볼 수 있다.

 

3. Few shot  + CoT

 

이번 예시는 예시를 좀 더 풍부하게 여러개 주었더니 예시들에서 제시한 CoT에서 공통되는 중심 내용을 파악해서 답변을 유도한 것을 볼 수 있다. 이는 LLM이 사용자가 제시한 CoT에 근거한 답변을 생성하게 되는 것을 의미하고 있다. 그리고 One Shot과 달리 "A: "라는 양식도 학습된 것을 볼 수 있다. 이처럼 이전에 제공한 예제들의 CoT를 Naive하게 활용하여 답변을 생성하는 것을 Naive Greedy Decoding이라고 한다.


발표 영상 (2024.02.24)

 


CMYK 로고

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

반응형