Chain-of-Thought (CoT)
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๊ฐ ํจ๊ณผ์ ์ธ๊ฐ?
- ์ค๊ฐ ๋จ๊ณ ๊ฒ์ฆ: ์ด๋์ ํ๋ ธ๋์ง ์ฐพ๊ธฐ ์ฌ์
- ๋ณต์กํ ๋ฌธ์ ํด๊ฒฐ: ํ ๋ฒ์ ๋ชป ํ์ด๋ ๋จ๊ณ๋ณ๋ก ๋๋๋ฉด ๊ฐ๋ฅ
- ์ ๋ขฐ์ฑ ํฅ์: ๊ณผ์ ์ด ๋ง์ผ๋ฉด ๋ต๋ ๋ง์ ํ๋ฅ ๋์
- ์ธ๊ฐ๊ณผ ์ ์ฌ: ์ฐ๋ฆฌ๋ ์ด๋ ค์ด ๋ฌธ์ ๋ ๋จ๊ณ๋ณ๋ก ํ์์์!
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%