추론 과정이 포함된 예시를 제공합니다. Zero-shot보다 더 정교한 추론 패턴을 유도할 수 있습니다.
Copy
def few_shot_cot(question): """Few-shot CoT: 추론 과정이 포함된 예시 제공""" system_prompt = """당신은 논리적 추론 전문가입니다.문제를 풀 때 반드시 아래 형식을 따르세요:[분석] 주어진 조건 정리[풀이] 단계별 추론[검증] 답변 검증[정답] 최종 답변""" examples = """## 예시 1Q: 버스에 15명이 타고 있었습니다. 첫 번째 정류장에서 4명이 내리고 8명이 탔습니다. 두 번째 정류장에서 6명이 내리고 3명이 탔습니다. 지금 몇 명이 타고 있나요?[분석] 초기: 15명 / 정류장 2곳에서 승하차 발생[풀이]- 첫 번째 정류장: 15 - 4 + 8 = 19명- 두 번째 정류장: 19 - 6 + 3 = 16명[검증] 15 - 4 + 8 - 6 + 3 = 15 + (8+3) - (4+6) = 15 + 11 - 10 = 16 ✓[정답] 16명## 예시 2Q: 도서관에 과학 책이 수학 책의 3배만큼 있습니다. 수학 책이 45권이라면, 과학 책과 수학 책을 합쳐 총 몇 권인가요?[분석] 과학 = 수학 × 3 / 수학 = 45권 / 구하기: 과학 + 수학[풀이]- 과학 책: 45 × 3 = 135권- 전체: 45 + 135 = 180권[검증] 135 ÷ 45 = 3 (3배 조건 충족) ✓ / 45 + 135 = 180 ✓[정답] 180권""" response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": f"{examples}\n\n## 문제\nQ: {question}"}, ], temperature=0, ) return response.choices[0].message.content# 실행print(few_shot_cot("사과 한 상자에 24개가 들어 있습니다. " "3상자를 사서 친구 5명에게 균등하게 나누어주면 " "1명당 몇 개를 받나요? 남는 사과는 몇 개인가요?"))
debug_prompt = """다음 Python 코드에 버그가 있습니다.단계별로 분석하여 버그를 찾고 수정하세요.[분석] 코드의 의도 파악[추적] 변수 값 추적 (Line by Line)[버그] 발견된 문제[수정] 수정된 코드```pythondef find_average(numbers): total = 0 for i in range(len(numbers)): total += numbers[i] return total / len(numbers) - 1```"""response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": debug_prompt}], temperature=0,)print(response.choices[0].message.content)# [분석] numbers 리스트의 평균을 구하려는 함수# [추적] total = sum(numbers) → 올바름# [버그] return total / len(numbers) - 1# → 연산자 우선순위 문제: (total/len) - 1 로 계산됨# → 의도: total / (len - 1) 이거나 단순 평균# [수정] return total / len(numbers)
CoT와 Few-shot을 동시에 사용해야 하나요?
상황에 따라 다릅니다. Zero-shot CoT (“단계별로 생각하세요”)만으로 충분한 경우가 많습니다. 특히 GPT-4 수준의 모델에서는 Zero-shot CoT의 성능이 매우 높습니다. Few-shot CoT는 특정 추론 형식을 강제하고 싶을 때 유용합니다. 비용 대비 효과를 고려하여 선택하세요.
Self-Consistency에서 최적의 경로 수(N)는?
연구에 따르면 5~10개 경로가 일반적으로 효과적입니다. 경로 수를 늘릴수록 정확도가 향상되지만, 5개 이후로는 향상 폭이 줄어듭니다. 비용(N배 API 호출)과 정확도의 트레이드오프를 고려하세요. 중요한 결정에는 10개, 일반적인 경우에는 5개가 적절합니다.
CoT에서 모델이 잘못된 추론을 하면 어떻게 하나요?
CoT는 추론 과정을 투명하게 만들어 오류 발견을 용이하게 합니다. 잘못된 추론이 반복되면: 1) Few-shot 예시에 올바른 추론 패턴을 추가하세요. 2) “각 단계를 검증하세요” 지시를 추가하세요. 3) Self-Consistency로 다수결 검증을 적용하세요. 4) 더 강력한 모델(GPT-4o)을 사용하세요.