Digital Garden

Chain-of-Thought (CoT)

๐Ÿ‘€ 1

Chain-of-Thought (CoT)

ํ•œ ์ค„ ์š”์•ฝ

AI์—๊ฒŒ ๋‹ต๋งŒ ์š”๊ตฌํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ โ€œ๋‹จ๊ณ„๋ณ„๋กœ ์ƒ๊ฐํ•˜๋Š” ๊ณผ์ •โ€์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ํ•˜๋ฉด ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ํ‘ผ๋‹ค๋Š” ์ถ”๋ก  ๊ธฐ๋ฒ•.

์‰ฌ์šด ์„ค๋ช…

Chain-of-Thought(์‚ฌ๊ณ ์˜ ์—ฐ์‡„)๋Š” โ€œ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋ฉด์„œ ์ƒ๊ฐํ•˜๊ธฐโ€์ด๋‹ค.

์‰ฌ์šด ๋น„์œ : ์ˆ˜ํ•™ ๋ฌธ์ œ ํ’€์ด

์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• (Direct Answer):

์งˆ๋ฌธ: ์ฒ ์ˆ˜๋Š” ์‚ฌ๊ณผ 12๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ , 3๊ฐœ๋ฅผ ๋จน๊ณ  5๊ฐœ๋ฅผ ๋” ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ช‡ ๊ฐœ?
AI: 14๊ฐœ

โ†’ ๋‹ต๋งŒ ๋‚ด๊ณ  ๋

Chain-of-Thought:

์งˆ๋ฌธ: ์ฒ ์ˆ˜๋Š” ์‚ฌ๊ณผ 12๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ , 3๊ฐœ๋ฅผ ๋จน๊ณ  5๊ฐœ๋ฅผ ๋” ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ช‡ ๊ฐœ?

AI:
1๋‹จ๊ณ„: ์ฒ˜์Œ ์‚ฌ๊ณผ๋Š” 12๊ฐœ์˜€์Šต๋‹ˆ๋‹ค.
2๋‹จ๊ณ„: 3๊ฐœ๋ฅผ ๋จน์—ˆ์œผ๋ฏ€๋กœ, 12 - 3 = 9๊ฐœ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.
3๋‹จ๊ณ„: 5๊ฐœ๋ฅผ ๋” ๋ฐ›์•˜์œผ๋ฏ€๋กœ, 9 + 5 = 14๊ฐœ์ž…๋‹ˆ๋‹ค.
๋‹ต: 14๊ฐœ

โ†’ ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋ฉด์„œ ๋‹ต์„ ๋ƒ„

์™œ CoT๊ฐ€ ํšจ๊ณผ์ ์ธ๊ฐ€?

  1. ์ค‘๊ฐ„ ๋‹จ๊ณ„ ๊ฒ€์ฆ: ์–ด๋””์„œ ํ‹€๋ ธ๋Š”์ง€ ์ฐพ๊ธฐ ์‰ฌ์›€
  2. ๋ณต์žกํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ: ํ•œ ๋ฒˆ์— ๋ชป ํ’€์–ด๋„ ๋‹จ๊ณ„๋ณ„๋กœ ๋‚˜๋ˆ„๋ฉด ๊ฐ€๋Šฅ
  3. ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ: ๊ณผ์ •์ด ๋งž์œผ๋ฉด ๋‹ต๋„ ๋งž์„ ํ™•๋ฅ  ๋†’์Œ
  4. ์ธ๊ฐ„๊ณผ ์œ ์‚ฌ: ์šฐ๋ฆฌ๋„ ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์ž–์•„์š”!

Few-shot CoT vs Zero-shot CoT:

Few-shot CoT: ์˜ˆ์‹œ๋ฅผ ๋จผ์ € ๋ณด์—ฌ์คŒ

์˜ˆ์‹œ 1:
Q: 2 + 3 ร— 4๋Š”?
A: ๋จผ์ € ๊ณฑ์…ˆ: 3 ร— 4 = 12, ๊ทธ ๋‹ค์Œ ๋ง์…ˆ: 2 + 12 = 14

์˜ˆ์‹œ 2:
Q: 100 - 50 รท 2๋Š”?
A: ๋จผ์ € ๋‚˜๋ˆ—์…ˆ: 50 รท 2 = 25, ๊ทธ ๋‹ค์Œ ๋บ„์…ˆ: 100 - 25 = 75

์ด์ œ ํ’€์–ด๋ด:
Q: 8 + 6 ร— 2๋Š”?

Zero-shot CoT: โ€œ๋‹จ๊ณ„๋ณ„๋กœ ์ƒ๊ฐํ•ด๋ดโ€๋ผ๊ณ ๋งŒ ์š”์ฒญ

Q: 8 + 6 ร— 2๋Š”? Let's think step by step.
A: 1๋‹จ๊ณ„: ๊ณฑ์…ˆ ๋จผ์ €... 2๋‹จ๊ณ„: ๋ง์…ˆ...

ํ•ต์‹ฌ ํฌ์ธํŠธ

  • ์ค‘๊ฐ„ ์ถ”๋ก  ๊ณผ์ •: ๋‹ต๋งŒ์ด ์•„๋‹Œ ์‚ฌ๊ณ  ๊ณผ์ • ์ƒ์„ฑ
  • ์„ฑ๋Šฅ ํ–ฅ์ƒ: ๋ณต์žกํ•œ ์ถ”๋ก  ๋ฌธ์ œ์—์„œ 20~50% ์ •ํ™•๋„ ํ–ฅ์ƒ
  • ๋””๋ฒ„๊น… ๊ฐ€๋Šฅ: ์–ด๋А ๋‹จ๊ณ„์—์„œ ํ‹€๋ ธ๋Š”์ง€ ํŒŒ์•… ๊ฐ€๋Šฅ
  • ์‹ ๋ขฐ์„ฑ ์ฆ๊ฐ€: ๊ณผ์ •์ด ๋…ผ๋ฆฌ์ ์ด๋ฉด ๋‹ต ์‹ ๋ขฐ๋„ ์ƒ์Šน

๊ด€๋ จ ๊ฐœ๋…

  • GSM8K - CoT๊ฐ€ ํ•„์ˆ˜์ ์ธ ์ˆ˜ํ•™ ์ถ”๋ก  ๋ฒค์น˜๋งˆํฌ
  • MMLU - ์ผ๋ถ€ ์–ด๋ ค์šด ๊ณผ๋ชฉ์—์„œ CoT ์ ์šฉ
  • HumanEval - ์ฝ”๋“œ ์ƒ์„ฑ์—์„œ๋„ CoT ์œ ์‚ฌ ๋ฐฉ๋ฒ• ์‚ฌ์šฉ
  • Curriculum Learning - CoT ๋‹จ๊ณ„ ์ˆ˜๋กœ ๋‚œ์ด๋„ ์ธก์ • ๊ฐ€๋Šฅ

R4 ์—ฐ๊ตฌ์—์„œ์˜ ์—ญํ• 

CoT๋Š” R4 ์—ฐ๊ตฌ์˜ D2 (์ถ”๋ก  ๋‹จ๊ณ„ ์ˆ˜) ์ธก์ •์— ํ•ต์‹ฌ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

D2 (์ถ”๋ก  ๋‹จ๊ณ„ ์ˆ˜) ๊ณ„์‚ฐ:

def compute_reasoning_steps(question, answer):
    # GPT-4๋ฅผ ์‚ฌ์šฉํ•œ Chain-of-Thought ๋ถ„ํ•ด
    prompt = f"""
    Question: {question}
    Answer: {answer}

    Break down the reasoning into individual logical steps.
    Output each step on a new line, numbered.
    """

    cot = gpt4_generate(prompt)
    steps = parse_numbered_steps(cot)

    d2 = len(steps)  # ๋‹จ๊ณ„ ์ˆ˜๊ฐ€ ๋‚œ์ด๋„
    return normalize(d2, max_steps=10)

๋‚œ์ด๋„ ๋ถ„๋ฅ˜ ์˜ˆ์‹œ:

์‰ฌ์šด ๋ฌธ์ œ (1~2 ๋‹จ๊ณ„):

Q: 5 + 3์€?
CoT:
1๋‹จ๊ณ„: 5 + 3 = 8
๋‹ต: 8
โ†’ D2 = 1 (๋งค์šฐ ์‰ฌ์›€)

์ค‘๊ฐ„ ๋ฌธ์ œ (3~4 ๋‹จ๊ณ„):

Q: ์ฒ ์ˆ˜๋Š” 12๊ฐœ, ์˜ํฌ๋Š” 8๊ฐœ, ๋ฏผ์ˆ˜๋Š” 15๊ฐœ์˜ ์‚ฌํƒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ‰๊ท ์€?
CoT:
1๋‹จ๊ณ„: ์ „์ฒด ๊ฐœ์ˆ˜ = 12 + 8 + 15 = 35๊ฐœ
2๋‹จ๊ณ„: ์‚ฌ๋žŒ ์ˆ˜ = 3๋ช…
3๋‹จ๊ณ„: ํ‰๊ท  = 35 รท 3 = 11.67๊ฐœ
๋‹ต: 11.67๊ฐœ
โ†’ D2 = 3 (์ค‘๊ฐ„)

์–ด๋ ค์šด ๋ฌธ์ œ (5~7 ๋‹จ๊ณ„):

Q: ์–ด๋–ค ์ˆ˜์˜ 2๋ฐฐ์—์„œ 5๋ฅผ ๋นผ๋ฉด 15๊ฐ€ ๋œ๋‹ค. ์ด ์ˆ˜์— 3์„ ๊ณฑํ•˜๋ฉด?
CoT:
1๋‹จ๊ณ„: x์˜ 2๋ฐฐ์—์„œ 5๋ฅผ ๋นผ๋ฉด 15 โ†’ 2x - 5 = 15
2๋‹จ๊ณ„: ์–‘๋ณ€์— 5 ๋”ํ•˜๊ธฐ โ†’ 2x = 20
3๋‹จ๊ณ„: ์–‘๋ณ€์„ 2๋กœ ๋‚˜๋ˆ„๊ธฐ โ†’ x = 10
4๋‹จ๊ณ„: ์ด ์ˆ˜์— 3์„ ๊ณฑํ•˜๊ธฐ โ†’ 10 ร— 3
5๋‹จ๊ณ„: ๊ณ„์‚ฐ โ†’ 30
๋‹ต: 30
โ†’ D2 = 5 (์–ด๋ ค์›€)

๋‹ค์ฐจ์› ๋‚œ์ด๋„์—์„œ์˜ ์—ญํ• :

์ข…ํ•ฉ ๋‚œ์ด๋„ = 0.3 ร— D1 (์–ธ์–ด ๋ณต์žก์„ฑ)
            + 0.5 ร— D2 (์ถ”๋ก  ๋‹จ๊ณ„ ์ˆ˜) โ† ๊ฐ€์žฅ ๋†’์€ ๊ฐ€์ค‘์น˜!
            + 0.2 ร— D3 (๋„๋ฉ”์ธ ์ง€์‹)

์™œ D2๊ฐ€ 50%๋กœ ๊ฐ€์žฅ ๋†’์€๊ฐ€?

  • ์ถ”๋ก  ๋Šฅ๋ ฅ์ด LLM์˜ ํ•ต์‹ฌ ๋Šฅ๋ ฅ
  • ๋‹จ๊ณ„ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์‹ค์งˆ์ ์œผ๋กœ ์–ด๋ ค์›€
  • ๊ฐ๊ด€์  ์ธก์ • ๊ฐ€๋Šฅ (CoT ๋ถ„ํ•ด ํ›„ ์นด์šดํŠธ)

ZPD Window ์ ์šฉ:

ํ˜„์žฌ ๋ชจ๋ธ์ด 3๋‹จ๊ณ„ ๋ฌธ์ œ๊นŒ์ง€ ์ž˜ ํ’€์Œ
โ†’ ZPD ๋ฒ”์œ„: 3~4๋‹จ๊ณ„ ๋ฌธ์ œ ์„ ํƒ
โ†’ 1~2๋‹จ๊ณ„๋Š” ๋„ˆ๋ฌด ์‰ฌ์›€ (์ œ์™ธ)
โ†’ 5๋‹จ๊ณ„ ์ด์ƒ์€ ๋„ˆ๋ฌด ์–ด๋ ค์›€ (์ œ์™ธ)

๊ฐ€์„ค H3b ๊ฒ€์ฆ:

๊ฐ€์„ค H3b: ์ถ”๋ก  ์ค‘์‹ฌ ํƒœ์Šคํฌ์—์„œ ZPD-Adaptive ํšจ๊ณผ๊ฐ€ ๋” ํผ

์ถ”๋ก  ํƒœ์Šคํฌ (GSM8K, MMLU):
- CoT ๋‹จ๊ณ„ ์ˆ˜๋กœ ๋ช…ํ™•ํ•œ ๋‚œ์ด๋„ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ
- ZPD Window ์ ์šฉ ํšจ๊ณผ์ 
- ํšจ๊ณผ ํฌ๊ธฐ: Cohen's d > 1.5

์ƒ์„ฑ ํƒœ์Šคํฌ (HumanEval):
- CoT ๋‹จ๊ณ„ ์ˆ˜ ์ธก์ • ๋ชจํ˜ธ (์—ฌ๋Ÿฌ ํ’€์ด ๋ฐฉ๋ฒ•)
- ZPD Window ์ ์šฉ ์ œํ•œ์ 
- ํšจ๊ณผ ํฌ๊ธฐ: Cohen's d โ‰ˆ 1.0

๋” ์•Œ์•„๋ณด๊ธฐ

  • Wei, J., et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022.
  • Zero-shot CoT: โ€œLetโ€™s think step by stepโ€ ์ถ”๊ฐ€๋งŒ์œผ๋กœ ํšจ๊ณผ
  • Self-Consistency: ์—ฌ๋Ÿฌ ๋ฒˆ CoT ์ƒ์„ฑ ํ›„ ๋‹ค์ˆ˜๊ฒฐ
  • Tree of Thoughts (ToT): CoT๋ฅผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ํ™•์žฅ
  • Program-aided Language Models (PAL): CoT๋ฅผ ์ฝ”๋“œ๋กœ ์ƒ์„ฑ
  • Least-to-Most Prompting: ์‰ฌ์šด ๊ฒƒ๋ถ€ํ„ฐ ๋‹จ๊ณ„์ ์œผ๋กœ CoT
  • GPT-4 MMLU ์ ์ˆ˜: CoT ์—†์Œ 70% โ†’ CoT ์ ์šฉ 86%