Study/AI

2. GPT 프롬프트 작성 방법 꿀팁! [언어모델의 체계적 탐색과 추론 능력 향상 시키는 ToT 방법]

자발적노예 2024. 4. 9. 00:05

안녕하세요 흔직 대딩 입니다.

저번 게시글에선 OpenAI가 공식적으로 발표한 프롬프트 엔지니어링에 대한 팁을 공유 드렸다면, 이번엔 좀 생소할 수 있지만 LLM이 출시되고 복잡하고 논리적인 문제에 적용해볼만한 프롬프트 엔지니어링 방법을 공유 드려보고자 합니다.

내용이 좀 복잡할 순 있지만 내용을 다 일고 마지막에 실제 프롬프트 예시를 직접 보고 활용하신다면 남들보다 더 고급지고, 논리적인 프롬프트를 작성할 수 있게 되실거에요!


Tree of Thoughts (ToT) 기법

복잡한 과제를 해결하기 위해서는 전통적인 프롬프팅 기법만으로는 부족한 경우가 많습니다. 이에 Yao et al.(2023)과 Long(2023)은 'Tree of Thoughts, (ToT)' 프레임워크를 제안했는데요. 이는 언어모델이 문제 해결을 위한 중간 단계로서 다양한 생각을 체계적으로 탐색하고 평가할 수 있게 해줍니다.

ToT 프레임워크의 핵심 아이디어는 무엇인가요?


Source : Yao et el. (2023)

ToT는 '생각'들의 트리 구조를 유지합니다. 여기서 각 '생각'은 문제를 해결하기 위한 중간 단계로서의 연속적인 언어 시퀀스를 말합니다. 언어모델은 이 중간 생각들을 생성하고 평가함으로써 의도적인 추론 과정을 거치며 문제 해결을 위한 진전 상황을 스스로 점검할 수 있습니다.

또한 탐색 알고리즘(BFS, DFS 등)을 활용해 미래의 생각들을 예측(lookahead)하고 되돌아가며(backtracking) 체계적으로 생각을 탐색하는 것이 가능해집니다.

ToT를 활용한 구체적인 예시가 있을까요?


Source : Yao et el. (2023)

논문에서는 '24 게임(Game of 24)'이라는 수학 추론 과제를 ToT 프레임워크로 해결하는 예시를 보여줍니다. 해당 게임은 사용자가 숫자 4개를 제공 하면 기본 산술을 사용하여 숫자 24를 만드는 게임인데요, 이 경우 세 단계의 생각(방정식)으로 분해하여, 각 단계마다 상위 5개 후보를 유지하며 탐색을 진행합니다.

BFS 탐색 시에는 언어모델이 각 생각 후보에 대해 '확실함/가능성 있음/불가능'을 평가합니다. 정답에 가까운 부분해를 우선 탐색하고, 불가능한 부분해는 제거하는 식입니다. 각 생각은 3번 평가되며, 아래와 같은 과정을 거칩니다.

ToT의 장점과 한계는 무엇일까요?

ToT를 통해 언어모델은 문제 해결을 위한 추론 능력과 전략적 탐색 능력을 크게 향상시킬 수 있습니다. 중간 생각을 체계적으로 생성, 평가, 탐색하는 과정에서 보다 탄탄한 추론 흐름을 구축할 수 있게 되는 것이죠.

다만 특정 과제별로 최적의 생각 단계 수와 후보 수 등을 정해야 하는 어려움이 있습니다. 또한 대규모 언어모델의 계산 비용이 높아지는 단점도 존재합니다.


그럼 어떻게 사용 해볼까요?

Hulbert는 ToT 프레임워크의 주요 개념을 간단한 프롬프트 기술로 적용하여 LLM이 단일 프롬프트에서 중간 사고를 평가하도록 하는 사고 트리 프롬프트를 제안했습니다. ToT 프레임워크를 적용한 샘플 프롬프트는 다음과 같습니다.

Imagine three different experts are answering this question. All experts will write down 1 step of their thinking, then share it with the group. Then all experts will go on to the next step, etc. If any expert realises they're wrong at any point then they leave. The question is...

해당 프롬프트 구조를 실제로 사용 해봤는데요

프롬프트에 "가벼운 노트북"이라는 키워드를 활용 하여 잠재고객에게 구매를 유도할 수 있는 주제는 어떤게 있을까?"로 작성할 때에 비해 내용이 간결하고 필요한 정보만 나온걸로 보입니다.

특히 각 전문가들의 답변에서 꼬리를 물고 답변이 이어지는걸 알 수 있는데요.

GPT가 만들어낸 전문가들의 주제와 내용들을 기반으로 사용자가 원하는 결과물로 뻗어 나가기에 좋을 것 같습니다!