본문 바로가기

CS/AI

[프롬프트 엔지니어링] CoT (Chain of Thought) 프롬프팅

반응형

CoT, Chain of Thought 프롬프팅이란

LLM이 복잡한 추론 문제를 해결할 때 사고 과정을 단계별로 보여주도록 유도하는 프롬프트 엔지니어링 기법입니다.

제로샷 기법으로 LLM이 스스로 사고 과정도 만들어내게 하는 방법이 있고, 퓨샷 기법으로 직접 사고 과정을 제시해주어 LLM이 학습 이후 그에 따른 정답을 얻어낼 수도 있습니다.

 

당연히 제로샷보단 LLM이 참고할 수 있는 예시를 몇 개 제시하는 것이 더 정확도가 높습니다.

 

CoT는 문제와 함께 사고 과정을 제시해줌으로써 LLM 자체의 업데이트가 없이도 문제 해결 방법과 정답을 더 고차원적으로 얻어낼 수 있습니다.


제로샷 예)

계란을 5개 사서 집에 두었어. 영희가 2개 먹고 철수가 5개 더 사왔어.

준수가 2개를 깨뜨렸어. 그러면 계란이 몇 개 남았을까?

단계별로 생각해보자.

 

퓨샷 예)

Q:

호텔 기준 인원이 4명이고 최대 인원은 8명이야. 호텔은 숙박비가 20만원인데 추가 인원 1명 당 침구류 비용 1만원이 추가로 청구돼. 6명이 이용할 때 숙박비가 얼마일까?

 

다음 순서로 계산해줘:

 

1단계 : 기준 인원 확인

2단계: 이용 인원 확인

3단계: 이용하려는 인원 수에서 기준 인원을 빼기

4단계 : 3단계의 결과가 0보다 크면 그 수만큼 1만원 곱하기

5단계: 4단계의 결과에 20만원 더하기

 

A: 

1단계: 기준 인원 확인

기준 인원: 4명

 

2단계: 이용 인원 확인

이용 인원: 6명

 

3단계: 이용하려는 인원 수에서 기준 인원을 빼기

초과 인원: 2명

 

4단계: 3단계의 결과가 0보다 크면 그 수만큼 1만 원 곱하기

추가 비용: 2만 원

 

5단계: 4단계의 결과에 20만 원 더하기

최종 숙박비: 22만 원

 

Q:

이제 7명이 이용하면 숙박비가 얼마일까?


 

이런 식으로 문제를 제시해줌과 함께 문제를 해결하는 방법까지 알려줌으로써 LLM이 우리가 의도한대로 정답을 내주도록 유도할 수 있습니다.

 

 

 

 

 

 

CoT의 확장: Self-Consistency with CoT (CoT-SC)

CoT의 단일 체인이 아닌 여러 독립적인 체인을 생성하고 가장 높은 점수를 얻는 체인을 선택하는 방식입니다.

이는 다양한 경로를 탐색할 수 있는 이점을 제공하며, 더욱 더 정확한 답을 이끌어낼 수 있습니다.

 

하나의 CoT이 혹여나 틀린 사고 방식을 전개하고 있다면? 당연히 정답도 틀릴 것입니다.

하지만 다양한 시각으로 한 문제에 접근했을 때 더 자주 나온 답을 선택함으로써 오답률을 낮춥니다.

마치 사람들끼리 집단 지성을 통해 답을 도출하는 느낌이네요.

 

https://medium.com/@johannes.koeppern/self-consistency-with-chain-of-thought-cot-sc-2f7a1ea9f941

 


하지만 CoT는 본질적으로 단일 체인 구조로 인해 사고 탐색의 유연성이 부족하며, 문제를 분해하거나 재결합하는 능력이 제한적입니다.

 

이러한 한계를 뛰어넘기 위하여 단일 경로를 사용하는 것이 아닌 여러 가지 경로를 통해 정답을 도출하는 방법인

ToT(Tree of Thought), GoT(Graph of Thought) 기법도 논의되고 있습니다.

이에 대해서는 나중에 더 다뤄보도록 하겠습니다.

 

감사합니다.