미래지향적 테크 스타일. 중앙에 빛나는 AI 두뇌/머리 형상, 왼쪽에서

ChatGPT가 안 배우는데 똑똑해지는 이유? In-Context Learning 완벽 분석: Zero-shot부터 Tree-of-Thought까지!


핵심 요약

ChatGPT는 왜 추가 학습 없이도 새로운 문제를 척척 풀까요? 비밀은 In-Context Learning(ICL)에 있습니다. 놀라운 사실: 단순히 “Let’s think step by step”이라는 한 줄만 추가해도 수학 문제 정확도가 17.9% → 78.7%까지 급상승합니다! 이 포스팅에서는 Zero-shot, Few-shot, Chain-of-Thought(CoT), Tree-of-Thought(ToT), Self-Consistency까지 – LLM이 파라미터 업데이트 없이 똑똑해지는 마법의 원리를 완벽하게 분석합니다.



Table of Contents


1. In-Context Learning이란? 추가 학습 없이 능력이 생기는 마법

1-1. 전통적 학습 vs In-Context Learning

전통적인 머신러닝에서 모델이 새로운 능력을 얻으려면:

  1. 대량의 학습 데이터 준비
  2. 수 시간~수 일간 학습 (파라미터 업데이트)
  3. 학습 완료 후 새 능력 획득

하지만 GPT-3 이후의 LLM은 다릅니다:

“프롬프트에 몇 가지 예시만 넣어줘도, 본 적 없는 태스크를 바로 수행한다!”

이것이 바로 In-Context Learning(ICL), 즉 맥락 내 학습입니다.

비유로 이해하기:
전통적 학습이 요리학원에 6개월 등록하는 것이라면, ICL은 레시피 한 장 보고 바로 따라 만드는 것입니다. 요리학원은 실력을 “몸에 익히지만”(파라미터 변경), 레시피는 그때그때 참고만 하죠(파라미터 불변).

1-2. ICL의 과학적 원리: 왜 작동하는가?

ICL이 어떻게 가능한 걸까요? 최신 연구에 따르면:

가설 1: 암묵적 Gradient Descent (메타 학습)

Transformer의 self-attention 메커니즘이 내부적으로 gradient descent를 흉내낸다는 연구 결과가 있습니다. 즉, 프롬프트의 예시를 보고 마치 미세 조정을 한 것처럼 행동합니다.

“Transformer attention은 다른 형태의 gradient descent이다. ICL은 forward computation을 통해 meta-gradient를 생성하고, 이것이 모델에 적용된다.”
Why Can GPT Learn In-Context? 논문

가설 2: 지식 검색 (Knowledge Retrieval)

LLM은 사전 학습 중 이미 수많은 패턴을 학습해두었고, 프롬프트의 예시가 적절한 지식을 “활성화”하는 신호 역할을 합니다.

현실: 연구에 따르면 ICL은 이 두 메커니즘의 스펙트럼 위에서 작동합니다:

  • 예시가 적을 때: Knowledge Retrieval이 우세
  • 예시가 많을 때: Meta-Learning이 우세

1-3. ICL의 핵심 요소

효과적인 ICL을 위한 3가지 요소:

요소설명예시
Demonstration태스크를 보여주는 예시들입력-출력 쌍
Template예시와 쿼리를 구조화하는 형식“질문: … 답변: …”
Instruction태스크에 대한 명시적 설명“다음 문장을 요약하세요”

2. Zero-shot vs Few-shot: 예시의 힘

2-1. Zero-shot Learning: 예시 없이 도전

Zero-shot예시 없이 태스크 설명만으로 문제를 푸는 방식입니다.

예시:

프롬프트: “다음 문장의 감정이 긍정인지 부정인지 분류하세요: ‘이 영화 정말 재미있었어!'”

출력: “긍정”

장점:

  • 예시 준비 불필요
  • 토큰 절약
  • 범용적

단점:

  • 복잡한 태스크에서 성능 저하
  • 모델이 의도를 잘못 이해할 수 있음

2-2. Few-shot Learning: 몇 가지 예시의 마법

Few-shot2~8개의 예시를 프롬프트에 포함시키는 방식입니다.

예시:

프롬프트:
문장: “이 카페 분위기 최고예요” → 긍정
문장: “음식이 너무 짜서 못 먹겠어요” → 부정
문장: “직원이 친절했어요” → 긍정

문장: “배송이 너무 늦었어요” → ?

출력: “부정”

Few-shot의 효과:

태스크Zero-shotFew-shot (8-shot)향상폭
감정 분석76%89%+13%
번역45%68%+23%
수학 문제17%58%+41%

비유:
Zero-shot은 “요리해봐”라고 말하는 것, Few-shot은 “이렇게 만들면 돼”라며 완성된 요리 사진 3장을 보여주는 것입니다.

2-3. 예시 선택의 중요성

Few-shot의 성능은 예시 선택에 크게 좌우됩니다:

  • 유사한 예시: 쿼리와 비슷한 예시가 성능 향상에 효과적
  • 다양한 예시: 여러 유형을 커버하면 일반화 능력 향상
  • 순서 영향: 마지막에 가까운 예시가 더 큰 영향을 미침

연구 결과: Self-Adaptive In-Context Learning은 예시 선택과 순서를 검색 문제로 접근하여 최적의 조합을 찾습니다.


3. Chain-of-Thought (CoT): 생각의 사슬로 추론력 폭발

3-1. CoT의 발견: 단순한 아이디어의 놀라운 효과

2022년, Google의 Wei et al.이 발표한 Chain-of-Thought Prompting은 LLM 추론 연구의 판도를 바꿨습니다.

핵심 아이디어:

“답만 바로 말하지 말고, 생각하는 과정을 단계별로 말해봐

Standard Prompting:

Q: 철수가 사과 5개를 가지고 있었고, 영희에게 3개를 주고, 어머니께 2개를 받았습니다. 철수는 몇 개의 사과를 가지고 있나요?
A: 4개

Chain-of-Thought Prompting:

Q: (같은 문제)
A: 철수는 처음에 5개를 가지고 있었습니다. 영희에게 3개를 줬으니 5-3=2개가 남았습니다. 어머니께 2개를 받았으니 2+2=4개입니다.

3-2. CoT의 놀라운 성능 향상

GSM8K (초등학교 수학) 벤치마크 결과:

모델StandardCoT향상폭
GPT-3 175B17.9%58.0%+40.1%
PaLM 540B17.9%58.1%+40.2%
LaMDA 137B6.5%17.0%+10.5%

핵심 발견:

  • CoT는 모델이 충분히 클 때 (100B 이상) 효과적
  • 복잡한 문제에서 성능 향상이 더 큼 (GSM8K > 단순 문제)
  • 작은 모델에서는 오히려 성능이 떨어질 수 있음

3-3. Zero-shot CoT: “Let’s think step by step”의 마법

Few-shot CoT는 예시를 만들어야 하는 번거로움이 있습니다. Zero-shot CoT는 이를 해결합니다:

프롬프트 끝에 “Let’s think step by step” 한 줄만 추가!

결과:

태스크Zero-shotZero-shot CoT향상폭
MultiArith17.7%78.7%+61%
GSM8K12.5%40.7%+28.2%
AQUA-RAT22.4%33.5%+11.1%

놀라운 사실: 이 간단한 문장 하나가 태스크별 예시를 정성스럽게 만든 Few-shot과 비슷한 성능을 냅니다!

Zero-shot CoT가 작동하는 이유:

  • LLM이 사전 학습 중 “step by step” 형식의 텍스트를 많이 학습했기 때문
  • 이 프롬프트가 추론 모드를 활성화하는 신호 역할

3-4. CoT가 작동하는 원리

CoT는 왜 효과적일까요?

  1. 연산 자원 할당: 중간 단계를 출력함으로써 문제 해결에 더 많은 토큰(계산)을 사용
  2. 메모장 역할: 생성된 중간 단계가 다음 단계를 위한 맥락으로 작용
  3. 오류 국소화: 어느 단계에서 틀렸는지 진단 가능
  4. 복잡한 문제 분해: 한 번에 못 풀 문제를 여러 간단한 단계로 분해

비유:
CoT는 수학 시험에서 풀이 과정을 쓰는 것과 같습니다. 답만 적으면 실수하기 쉽지만, 풀이를 쓰면 스스로 검증하면서 풀 수 있죠!


4. Tree-of-Thought (ToT): 생각의 나무로 탐색하기

4-1. CoT의 한계: 한 방향으로만 생각하기

Chain-of-Thought의 문제점:

  • 단일 경로: 한 번 잘못된 방향으로 가면 되돌아올 수 없음
  • 탐색 부재: 여러 가능성을 비교하지 않음

비유:
CoT가 외줄 타기라면, 실수하면 떨어집니다. 우리에게 필요한 건 여러 갈래 길을 탐색하고, 막다른 길이면 되돌아오는 능력입니다.

4-2. Tree-of-Thought: 생각의 분기

Tree-of-Thought (ToT)는 2023년 Yao et al.이 제안한 기법으로:

  1. 분기 (Branching): 여러 가지 다음 단계를 동시에 생성
  2. 평가 (Evaluation): 각 분기가 목표에 얼마나 유망한지 점수 매김
  3. 탐색 (Search): BFS/DFS 알고리즘으로 최적 경로 탐색
  4. 가지치기 (Pruning): 유망하지 않은 경로는 버림

비유:
ToT는 체스를 두는 것과 같습니다. 한 수만 보는 게 아니라, 여러 수를 생각해보고, 상대 반응을 예측하고, 가장 유리한 수를 선택합니다.

4-3. ToT의 구성 요소

구성 요소역할구현 방법
Thought Generator다양한 다음 단계 생성LLM에게 여러 아이디어 요청
State Evaluator각 상태의 가능성 평가LLM이 스스로 점수 매김
Search Algorithm최적 경로 탐색BFS, DFS, A* 등

ToT 프롬프트 예시:

“세 명의 다른 전문가들이 이 질문에 답하고 있다고 상상해보세요.
모든 전문가들은 자신의 생각 한 단계를 적어내고, 그것을 그룹과 공유합니다.
그런 다음 모든 전문가들은 다음 단계로 넘어갑니다.
만약 어떤 전문가가 자신이 틀렸다는 것을 깨닫게 되면 그들은 떠납니다.”

4-4. ToT 성능: 창의적 문제에서의 압도적 우위

Game of 24 (4개 숫자로 24 만들기) 태스크:

방법성공률
Standard Prompting7.3%
Chain-of-Thought4.0%
CoT + Self-Consistency9.0%
Tree-of-Thought74.0%

놀라운 결과: ToT는 CoT 대비 18배 높은 성공률을 기록했습니다!

ToT가 효과적인 태스크:

  • 퍼즐 풀기 (스도쿠, 24 게임)
  • 창의적 글쓰기
  • 코드 디버깅
  • 복잡한 계획 수립

5. Self-Consistency와 Self-Correction: 고급 기법

5-1. Self-Consistency: 다수결의 지혜

Self-Consistency는 CoT의 확장으로, 여러 번 추론하고 다수결로 답을 선택합니다.

작동 방식:

  1. 같은 문제에 대해 여러 번 CoT 수행 (temperature 조절로 다양성 확보)
  2. 각 추론 경로에서 최종 답만 추출
  3. 가장 많이 나온 답을 선택 (다수결)

성능 향상:

데이터셋CoTCoT + Self-Consistency향상폭
GSM8K56.5%74.4%+17.9%
SVAMP79.0%86.6%+7.6%
AQuA35.8%48.3%+12.5%

비유:
Self-Consistency는 여러 명의 학생에게 같은 문제를 풀게 하고, 다수가 선택한 답을 정답으로 채택하는 것과 같습니다.

5-2. Self-Correction: 스스로 오류 수정

Self-Correction은 LLM이 자신의 출력을 검토하고 수정하는 기법입니다.

기본 프로세스:

  1. 초기 응답 생성
  2. 자기 비평: “이 답에 문제가 있는지 검토해줘”
  3. 수정된 응답 생성
  4. (필요시 반복)

주요 Self-Correction 기법:

기법특징
Reflexion언어적 피드백으로 자기 개선
Self-Refine반복적 비평과 수정
CRITIC외부 도구(검색, 코드 실행)로 검증

주의: 최근 연구에 따르면, 외부 피드백 없이 순수한 Self-Correction은 효과가 제한적입니다. 초기 프롬프트를 잘 설계하는 것이 더 중요할 수 있습니다.

5-3. 그 외 고급 기법들

기법설명특징
Progressive-Hint Prompting힌트를 점진적으로 제공GSM8K 92% → 95.5%
Program-of-Thought (PoT)코드로 추론수학 문제에서 CoT 능가
Graph-of-Thought (GoT)그래프 구조로 사고 확장ToT의 일반화
ReAct추론과 행동을 번갈아 수행도구 사용 에이전트

6. 각 기법별 성능 비교와 실전 활용

6-1. 종합 성능 비교

GSM8K (수학 추론) 기준 성능 비교:

기법정확도상대 비용복잡도
Zero-shot~17%낮음낮음
Few-shot (8-shot)~58%중간중간
Zero-shot CoT~41%낮음낮음
Few-shot CoT~58%중간중간
CoT + Self-Consistency~74%높음중간
Tree-of-Thought~74%*매우 높음높음

핵심 인사이트:

  • 비용 대비 효율: Zero-shot CoT가 최고 (한 줄 추가로 +24%)
  • 최고 성능: Self-Consistency + CoT 조합
  • 창의적 문제: ToT가 압도적

6-2. 실전 선택 가이드

상황별 추천 기법:

상황추천 기법이유
빠른 프로토타이핑Zero-shot CoT설정 간단, 효과 즉각적
정확도 중요CoT + Self-Consistency다수결로 오류 감소
복잡한 계획/퍼즐Tree-of-Thought탐색과 백트래킹 필요
비용 제한Few-shot (2~4개)토큰 절약하면서 효과적
코드/수학Program-of-Thought계산 정확도 보장

6-3. 프롬프트 템플릿 모음

Zero-shot CoT (범용):

[질문]

Let’s think step by step.

Few-shot CoT (수학):

Q: 철수가 사과 5개를 가지고 있었고…
A: 먼저 철수의 사과 수를 계산합니다… 따라서 답은 4개입니다.

Q: [새 질문]
A:

ToT 간이 버전:

세 명의 전문가가 이 문제를 풀고 있습니다.
각자 자신의 추론 단계를 공유하고, 틀린 전문가는 떠납니다.

[문제]


7. 정리: In-Context Learning의 미래

7-1. 핵심 요약

In-Context Learning: 파라미터 업데이트 없이 프롬프트만으로 새 능력 획득

Zero-shot/Few-shot: 예시의 유무와 개수로 구분, Few-shot이 일반적으로 우수

Chain-of-Thought: “단계별로 생각하기”로 수학 정확도 17% → 58%

Zero-shot CoT: “Let’s think step by step” 한 줄로 +24% 성능 향상

Self-Consistency: 여러 번 추론 후 다수결, 추가 +18% 향상

Tree-of-Thought: 여러 경로 탐색, 창의적 문제에서 CoT의 18배 성능

7-2. ICL의 한계와 미래

현재 한계:

  • 컨텍스트 길이 제한 (예시 수 제한)
  • 작은 모델에서는 효과 제한적
  • 예시/프롬프트에 민감 (취약성)

미래 방향:

  • In-Context Vectors (ICV): 예시를 벡터로 압축하여 컨텍스트 제한 극복
  • Many-shot ICL: 긴 컨텍스트 모델에서 수백 개 예시 활용
  • Reasoning Models: o1, Claude 3.5 같은 추론 특화 모델

FAQ: 자주 묻는 질문

Q1. CoT를 쓰면 항상 성능이 좋아지나요?

A. 아닙니다. 단순한 문제에서는 오히려 성능이 떨어질 수 있습니다. 또한 모델 크기가 100B 미만이면 효과가 제한적입니다. 복잡한 추론이 필요한 문제에서 가장 효과적입니다.

Q2. Few-shot 예시는 몇 개가 적당한가요?

A. 일반적으로 2~8개가 권장됩니다. 연구에 따르면 예시가 100개를 넘어가면 추가 효과가 미미합니다. 컨텍스트 길이와 비용을 고려해 4~6개가 실용적입니다.

Q3. Self-Consistency는 비용이 너무 많이 드는 것 아닌가요?

A. 맞습니다. 5~10배의 API 호출이 필요합니다. 높은 정확도가 중요한 경우에만 사용하고, 일반적으로는 Zero-shot CoT로 충분합니다. 비용 대비 효과를 항상 고려하세요.

Q4. ToT와 CoT 중 언제 무엇을 써야 하나요?

A. CoT: 단계별 추론이 필요한 대부분의 문제 (수학, 논리, 분석)
ToT: 여러 가능성을 탐색해야 하는 문제 (퍼즐, 창의적 글쓰기, 계획 수립)

Q5. ICL과 Fine-tuning 중 어떤 게 더 좋나요?

A. 상황에 따라 다릅니다:

  • ICL: 빠른 실험, 다양한 태스크, 적은 데이터
  • Fine-tuning: 특정 태스크 최적화, 일관된 스타일, 대량 처리

Fine-tuning 완벽 가이드를 참고하세요.


외부 참고 자료

ICL과 프롬프트 엔지니어링을 더 깊게 배우고 싶다면:


정리: 이 글에서 배운 것

In-Context Learning은 LLM이 프롬프트만으로 새 능력을 획득하는 메커니즘

Zero-shot은 예시 없이, Few-shot은 예시와 함께 – 예시가 많을수록 효과적

Chain-of-Thought는 “단계별 사고”로 복잡한 추론 문제 정확도를 3배 이상 향상

Zero-shot CoT“Let’s think step by step” 한 줄로 대부분의 효과 획득

Self-Consistency는 다수결로, ToT는 탐색으로 추가 성능 향상

태스크와 비용에 맞게 적절한 기법 선택이 핵심

다음 포스팅에서는 “RAG vs Fine-tuning: LLM 커스터마이징의 두 가지 길”에 대해 자세히 알아봅니다. 당신의 데이터로 AI를 맞춤화하는 최적의 방법을 비교해드릴게요!


관련 포스팅:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다