복잡한 문맥 속에서 정확한 해결책을 찾아내는 Thread of Thought (ThoT) 프롬프트 전략을 상징하는, 빛나는 전구에서 통찰력이 폭발하는 추상적인 일러스트레이션
|

LLM이 긴 글을 못 읽나요? CoT 대신 ‘Thread of Thought’ 쓰세요

LLM이 긴 글을 못 읽나요? CoT 대신 ‘Thread of Thought’ 쓰세요

분명 문서는 다 줬는데, 왜 엉뚱한 대답을 할까요?

RAG(Retrieval-Augmented Generation) 시스템을 구축하거나 긴 문맥(Long Context)을 다루는 LLM 애플리케이션을 개발해 본 분이라면, 이 답답한 상황을 한 번쯤 겪어보셨을 겁니다.

우리는 흔히 모델의 컨텍스트 윈도우(Context Window)만 늘리면 만사형통일 거라 기대합니다. 128K 모델이 나왔으니 이제 책 한 권 분량도 거뜬히 이해할 거라고 믿는 것이죠.

하지만 현실은 냉혹합니다. 문맥이 길어질수록, 특히 중요한 정보가 문서의 중간 부분에 섞여 있을 때 모델이 이를 까맣게 잊어버리는 ‘Lost in the Middle’ 현상이 발생하기 때문입니다.

오늘은 단순히 문맥 길이를 늘리는 것을 넘어, 정보가 뒤섞인 ‘혼란스러운 문맥(Chaotic Context)’ 속에서도 LLM이 길을 잃지 않고 정확한 답을 찾아내게 만드는 강력한 프롬프트 전략, Thread of Thought (ThoT)를 소개합니다.

마이크로소프트와 시드니 공과대학교 연구진이 제안한 이 방법은 복잡한 파인튜닝 없이 프롬프트 한 줄로 모델 성능을 비약적으로 향상시킬 수 있습니다.


1. 문제는 ‘길이’가 아니라 ‘혼란’입니다

우선 문제의 본질부터 짚고 넘어갑시다. 우리는 흔히 “문맥이 너무 길어서(Long Context)” 문제라고 생각하지만, 연구진은 이를 “문맥이 혼란스러워서(Chaotic Context)” 문제라고 재정의합니다.

검색 엔진이나 벡터 DB에서 정보를 가져와 LLM에게 던져준다고 상상해 보세요. 거기에는 사용자 질문과 직접 관련된 정보도 있지만, 전혀 상관없는 ‘노이즈(Distractors)’들도 잔뜩 섞여 있습니다. 정보들은 서로 얽혀 있고, 중요도는 제각각입니다.

💡 CoT (Chain of Thought)의 한계

“단계별로 생각해 봐(Let’s think step by step)”라는 마법의 주문, CoT도 이런 혼란스러운 상황에서는 힘을 쓰지 못합니다. 정보가 너무 많고 난잡하면, 논리적인 추론 단계를 밟기도 전에 정보의 홍수 속에서 길을 잃기 때문입니다.

그렇다면 해결책은 무엇일까요?

인간이 복잡한 전공 서적을 읽을 때를 떠올려 보세요. 우리는 한 번에 모든 걸 이해하려 하지 않습니다. 문단을 나누고, 각 부분을 요약하고, 중요한 내용을 체크하며(Analyzing) 천천히 읽어 내려갑니다. 바로 이 인간의 인지 과정을 프롬프트에 적용한 것이 Thread of Thought (ThoT)입니다.


2. 생각의 스레드(ThoT): 쪼개고, 요약하고, 분석하라

ThoT의 핵심은 LLM에게 “한 입에 먹기 좋게 잘라서 소화해”라고 지시하는 것입니다. 연구진은 이를 두 단계의 프롬프트 프로세스로 구현했습니다. 아주 간단합니다.

Step 1: 분석 및 요약 (The Analysis Trigger)

첫 번째 단계에서는 모델에게 문맥을 관리 가능한 단위로 나누어 분석하게 합니다. 여러분의 프롬프트 뒤에 다음 문장을 추가하세요.

“Walk me through this context in manageable parts step by step, summarizing and analyzing as we go.”
(이 문맥을 관리 가능한 부분으로 나누어 단계별로 설명해 주고, 진행하면서 요약하고 분석해 주세요.)

이 문장은 모델에게 단순히 “답을 내놔”라고 하는 대신, “천천히 읽으면서 내용을 씹어먹어라”라고 지시하는 것과 같습니다. 이렇게 하면 모델은 긴 텍스트를 순차적으로 처리하며 불필요한 정보는 버리고 중요한 정보만 간추리는 ‘생각의 스레드’를 유지하게 됩니다.

Step 2: 결론 도출 (The Extraction)

모델이 1단계에서 충분히 내용을 분석했다면, 이제 정답을 요구할 차례입니다.

“Therefore, the answer:”
(따라서, 정답은:)

아주 단순해 보이지만, 앞서 정리된 ‘생각의 흐름’을 바탕으로 명확한 결론을 내리게 하는 강력한 트리거입니다.


3. 실전 비교: 흩어진 정보를 잇는 힘

ThoT가 실제로 얼마나 강력한지 논문에 나온 사례를 통해 살펴보겠습니다.

상황: “The Red Hearts”라는 밴드가 어떤 음악을 하는지 묻는 질문이 있습니다. 검색된 문서(Context)에는 이 밴드에 대한 파편적인 정보들이 흩어져 있고, 다른 밴드 이야기 같은 노이즈도 섞여 있습니다.

❌ CoT (기존 방식):

“제공된 정보에는 다양한 밴드 이야기가 있지만, The Red Hearts의 장르를 콕 집어 말하는 부분은 없네요. 모르겠습니다.”라고 포기해 버립니다. 정보가 흩어져 있어서 연결하지 못한 것이죠.

✅ ThoT (제안 방식):

  • Passage 6에서 “The Red Hearts는 로스앤젤레스 출신이다”라는 점을 확인.
  • Passage 8에서 그들이 “Garage Punk 밴드”라고 묘사된 부분을 발견.
  • 이 조각들을 연결하여 “The Red Hearts는 Garage Punk 음악을 합니다”라는 정확한 정답 도출.

이것이 바로 종합(Synthesizing) 능력의 차이입니다. ThoT는 흩어진 정보를 연결하여 새로운 통찰을 만들어냅니다.


4. 데이터가 증명하는 성능

“그냥 우연히 맞춘 거 아니야?”라고 의심하실 수 있습니다. 그래서 연구진은 PopQA 데이터셋(모델이 문맥을 읽어야만 풀 수 있는 문제들)을 이용해 실험을 진행했습니다.

방법론 GPT-4 (정확도) 비고
Vanilla (기본) 0.430
Retrieval (검색만) 0.360
CoT (단계별 생각) 0.442 성능 향상 미미함
ThoT (생각의 스레드) 0.651 기본 대비 약 22%p 상승

놀랍게도 GPT-4 기준, 기본 프롬프트 대비 약 22% 포인트 더 높은 정확도를 기록했습니다. LLaMA 2 70B 모델에서도 ThoT가 가장 높은 성능을 보여주어, 특정 모델에 국한되지 않는 범용성을 입증했습니다.


5.만능은 아닙니다

저희는 여러분께 약을 팔고 싶지 않습니다. ThoT도 완벽하지는 않습니다.

“Mark Gil은 누구와 결혼했나요?”라는 질문에 대해, 문서가 “Andi Eigenmann은 Mark Gil과 배우 Jaclyn Jose 사이의 딸이다”라는 정보를 줬다고 가정해 봅시다. 사람이라면 “아, 그럼 Jaclyn Jose랑 결혼했었겠네”라고 간접 추론(Implicit Reasoning)을 합니다.

하지만 ThoT를 쓴 모델도 여기서 실패했습니다. “문서에 결혼했다는 직접적인 말이 없다”며 답을 찾지 못한 것이죠. ThoT는 명시적인 정보를 정리하고 요약하는 데는 탁월하지만, 고차원적인 관계 추론에는 여전히 한계가 있습니다. (물론 이는 현재 LLM들의 공통적인 숙제이기도 합니다.)


6. 결론: 지금 당장 프롬프트를 바꿔보세요

오늘의 핵심을 요약하자면 다음과 같습니다.

  • 긴 문맥보다 무서운 건 정보가 뒤섞인 혼란스러운 문맥(Chaotic Context)입니다.
  • ThoT는 인간의 독해 과정을 모방하여 문맥을 나누고(Segment), 요약하고(Summarize), 분석(Analyze)하게 합니다.
  • GPT-4, LLaMA 2 등 다양한 모델에서 CoT를 압도하는 성능을 보여주었습니다.

여러분의 RAG 시스템이나 챗봇이 긴 문서 앞에서 횡설수설하고 있나요? 복잡한 코드 수정이나 파인튜닝을 고민하기 전에, 프롬프트에 이 마법의 문장을 먼저 넣어보세요.

“Walk me through this context in manageable parts step by step, summarizing and analyzing as we go.”

작은 변화가 놀라운 결과의 차이를 만들 것입니다.

Similar Posts