step by step 프롬프트의 마법? - ChatGPT 프롬프트 팩트체크
"step-by-step" 또는 "Let's think step by step."이라는 마법의 문장 하나만 추가하면 ChatGPT 결과가 확 좋아진다는, 엄청나게 효과적인 프롬프트 엔지니어링 기법이라는 "마법"에 대한 이야기를 자주 접한다. 진짜로 그런가? 만일 그렇다고 친다고 하면, 왜 그런가? 논리적으로 그럴 수밖에 없는가?
이 마법으로 불리는 프롬프트 작성 기법에 대해서 생각해보자.
이 이야기가 처음 등장한 것은 Large Language Models are Zero-Shot Reasoners ( arXiv:2205.11916 [cs.CL] https://arxiv.org/abs/2205.11916 ) 논문이라 한다. 논문 내용은 여러 데이터셋에 적용해 보니 "Let's think step by step." 딱 한 줄을 프롬프트에 추가해주니 정확도 향상에 매우 효과적이었다는 것이다. 논문 요약을 추가로 보자
논문 내용 요약 (by Google Gemini)
"대규모 언어 모델(LLM)은 일반적으로 몇 가지 예제만으로 학습할 수 있는 몇 가지 예제 학습 능력으로 알려져 있습니다. 이 논문의 저자들은 "Let's think step by step"이라는 문구를 답변 앞에 추가하면 LLM이 제로 샷 추론 작업에서 잘 수행할 수 있음을 보여줍니다. 이 기술은 Zero-shot CoT(Chain-of-Thought)라고 합니다. Zero-shot CoT는 손으로 만든 예제 없이 다양한 추론 작업의 정확도를 향상시킵니다. 저자들은 이것이 LLM이 아직 개발되지 않은 제로 샷 능력을 가지고 있음을 시사한다고 주장합니다."
step by step이 진짜 효과가 있는지 확인하는 예제
테스트용으로 사용하는 이 예제는 유튜브 영상에서 본 내용 중 하나다. 여행계획을 세우도록 요구하는 내용이다.
먼저 " step by step" 없이 한 번 해보고 비교해보자.
이 번에는 프롬프트의 두 번째 문장으로 "Let's think step by step"을 추가해서 결과를 보자.
(참고: 한글 메인명령에 영문으로 추가 지시를 했다고 문제가 될 일은 없을 것이다)
"step-by-step이 들어간 것과 아닌 것에 큰 차이가 있는가? 분명 봤던 영상에서는 엄청 좋아진다고 이야기 했던 것으로 기억한다. 하지만 내 눈에는 지금 이 여행계획 세우는 예제에서 결과가 거의 차이가 없어 보이고 어느 쪽이 더 나은 답인지 우열을 가릴 수가 없어 보인다.
step by step은 만능이 아니다?
어쩌면, 하필 이 예제에서만 오류가 발생한 것일까? 그 가능성을 짚어보자.
이 문제를 다시 정리해 보면, "ChatGPT 프롬프트에 "let's think step by step" 을 추가하는 " Zero-shot-CoT"를 적용하는 것이 일반적으로 성능을 향상시키는가?" 정도가 된다. 이제 ChatGPT에게 확인해보자.
ChatGPT ::
"Zero-shot-CoT (Chain of Thought)" 접근 방식은 문제 해결 과정에서 GPT와 같은 대규모 언어 모델이 단계별로 생각하는 과정을 모방하도록 프롬프트에 "let's think step by step"와 같은 지시를 추가하는 것입니다. 이 방식은 모델이 복잡한 문제를 더 효과적으로 이해하고 해결할 수 있도록 돕습니다.
효과가 있는 문제의 예
- 수학 문제 해결: 수학적 문제 해결에서 단계별 접근은 중간 단계를 명확하게 만들어 주며, 최종 답안으로 이어지는 논리적 연결을 제공합니다. 예를 들어, 복잡한 대수 문제나 기하 문제에서 각 단계를 분해하여 해결하는 것은 오류를 줄이고 정확도를 높이는 데 도움이 됩니다.
- 프로그래밍 디버깅: 코드에 버그가 있는 경우, 문제를 단계별로 분석하여 원인을 찾고 해결책을 제시하는 과정에서 "Zero-shot-CoT" 접근법이 유용합니다. 모델이 문제의 원인을 단계별로 추론하고, 각 단계에서 가능한 해결책을 평가함으로써, 더 정확한 디버깅 방안을 제시할 수 있습니다.
효과가 없는 문제의 예
- 단순 팩트 조회: 일반적인 지식이나 사실을 묻는 질문에서는 "let's think step by step"과 같은 접근법이 큰 효과를 발휘하지 못합니다. 예를 들어, "세계에서 가장 높은 산은 무엇인가?"와 같은 질문에 대해 단계별 접근이 불필요하며, 직접적인 답변이 더 효과적입니다.
- 개인적 의견이나 감정을 묻는 질문: 개인의 선호나 감정에 대한 질문은 구체적인 사실이나 논리적인 단계를 따르는 것이 아니므로, "Zero-shot-CoT" 접근법이 도움이 되지 않습니다.
효과가 나는 경우에 대한 논리적인 설명
"Zero-shot-CoT" 접근 방식이 효과를 발휘하는 경우, 그 이유는 다음과 같습니다:
- 문제 분해: 복잡한 문제를 더 작고 관리하기 쉬운 단계로 나누어 해결함으로써 전체 문제의 이해도를 높입니다.
- 중간 결과 확인: 각 단계에서의 결과를 확인함으로써 오류를 조기에 발견하고 수정할 수 있습니다.
- 논리적 추론 강화: 단계별 접근은 모델이 논리적이고 순차적인 추론을 따르도록 하여, 복잡한 문제에 대한 더 정확한 해결책을 도출합니다.
결론적으로, "Zero-shot-CoT" 접근법은 특정 유형의 문제에서 성능 향상을 이끌어낼 수 있지만, 모든 종류의 질문이나 문제에 대해 동일하게 유용한 것은 아닙니다. 문제의 복잡성과 유형을 고려하여 이 접근법을 적절히 활용해야 합니다.
혹시, ChatGPT라도 GPT-4 에서 GPT-3.5 보다 Zero-shot-CoT 가 더 효과가 있을까? 아니면 오히려 반대일까? 모델에 따라서 차이가 날 수도 있을지에 대해서 따져 보자.
ChatGPT ::
GPT-4에서 Zero-shot-CoT (Chain of Thought) 접근 방식이 GPT-3.5보다 더 효과적일 가능성이 높습니다. 이는 GPT-4가 GPT-3.5에 비해 여러 면에서 개선되고 발전한 모델이기 때문입니다. GPT-4는 더 큰 데이터셋으로 훈련되었고, 더 많은 파라미터를 가지고 있으며, 더 정교한 학습 기법이 적용되었습니다. 이러한 개선 사항들은 GPT-4가 더 복잡한 문제를 이해하고 해결하는 데 도움을 줍니다.
GPT-4에서 Zero-shot-CoT의 효과
- 더 나은 이해력: GPT-4는 텍스트의 맥락과 의미를 더 잘 이해할 수 있어, 복잡한 문제 해결 과정에서 필요한 논리적 추론을 더 정확하게 수행할 수 있습니다.
- 정교한 추론: GPT-4는 더 발전된 추론 능력을 바탕으로, 다단계 추론 과정에서 발생할 수 있는 오류를 줄이고, 더 정확한 중간 단계와 최종 결과를 제공할 수 있습니다.
- 더 넓은 지식 베이스: GPT-4는 더 많은 데이터와 정보를 학습함으로써, 다양한 주제와 영역에서의 문제 해결에 필요한 지식을 보유하고 있습니다. 이는 Zero-shot-CoT 접근 방식을 사용할 때 더 넓은 범위의 문제에 효과적으로 대응할 수 있게 합니다.
GPT-3.5 대비 GPT-4의 장점
- 일반화 능력: GPT-4는 복잡한 패턴을 인식하고 이를 새로운 문제에 적용하는 일반화 능력이 더 우수합니다. 이는 Zero-shot-CoT에서 단계별로 문제를 해결해 나가는 과정에서 중요한 역할을 합니다.
- 데이터 처리 능력: GPT-4는 더 많은 데이터를 처리할 수 있으므로, 특히 데이터 해석이 필요한 문제에서 Zero-shot-CoT 접근 방식의 효과가 더욱 두드러질 수 있습니다.
결론적으로, GPT-4는 그 구조와 학습 능력의 발전으로 인해 GPT-3.5에 비해 Zero-shot-CoT 접근 방식을 사용했을 때 더 나은 성능을 발휘할 가능성이 높습니다. 이는 특히 복잡한 문제 해결, 추론, 그리고 더 넓은 범위의 지식이 필요한 상황에서 더욱 분명하게 나타납니다.
ChatGPT의 답변에 대해 좀 더 생각해 볼 필요가 있을듯 하다. Zero-shot-CoT 방법의 특성상 일반적으로 더 발전된 언어모델에서 더 효과가 클 수 밖에 없는 것인지 확인해 본다.
ChatGPT ::
Zero-shot-CoT (Chain of Thought) 방법은 대규모 언어 모델이 복잡한 문제를 해결하는 과정에서 단계별로 생각을 진행하며, 그 과정을 명시적으로 표현하도록 하는 접근법입니다. 이 방식은 모델이 문제의 구조를 더 깊이 이해하고, 논리적인 단계를 거쳐 답안을 도출하게 합니다. 더 발전된 모델에서 Zero-shot-CoT가 더 효과적이라는 주장은 몇 가지 중요한 이유에서 타당성을 갖습니다.
1. 향상된 이해력 및 문맥 인식
더 발전된 모델은 보통 더 큰 데이터셋으로 훈련되며, 이로 인해 다양한 문맥과 주제에 대한 더 광범위한 이해를 가집니다. 이는 모델이 복잡한 문제의 맥락을 더 잘 파악하고, Zero-shot-CoT 방식으로 제시된 문제의 단계별 해석을 더 정확하게 수행할 수 있게 합니다.
2. 더 정교한 추론 능력
더 발전된 모델들은 더 많은 파라미터와 더 정교한 학습 알고리즘을 사용합니다. 이는 모델이 더 복잡한 논리적 추론을 수행하고, Zero-shot-CoT 방식으로 문제를 접근할 때 더 정확하고 세밀한 답변을 생성할 수 있음을 의미합니다.
3. 더 넓은 지식 베이스
더 발전된 모델은 더 최신의 데이터로 훈련되고 더 넓은 범위의 주제를 포괄합니다. 이는 Zero-shot-CoT 접근법을 사용할 때 모델이 더 다양한 문제에 대응할 수 있는 광범위한 지식을 활용할 수 있게 함을 의미합니다. 모델이 더 많은 정보를 기반으로 추론을 진행할 수 있으므로, 문제 해결 과정에서의 정확성과 신뢰성이 향상됩니다.
4. 일반화 및 적응 능력
더 발전된 모델은 더 나은 일반화 능력을 보여, 새로운 유형의 문제나 이전에 보지 못한 형식의 문제에 대해서도 효과적으로 대응할 수 있습니다. Zero-shot-CoT 방식은 모델이 주어진 문제를 단계별로 분해하고 해석하는 과정을 통해 이러한 일반화 능력을 더욱 발휘할 수 있게 합니다.
결론
이러한 이유들로 인해, 더 발전된 모델에서 Zero-shot-CoT 방법을 사용하는 것이 일반적으로 더 큰 효과를 발휘할 수 있습니다. 더 발전된 모델은 복잡한 문제를 해결하기 위한 논리적 추론, 문제 이해, 그리고 지식 활용 능력이 향상되어 있으므로, Zero-shot-CoT 접근법이 이러한 능력을 최대한 활용할 수 있는 구조를 제공합니다.
마지막으로 하필 이 문제를 선택해서 답이 이상하게 나온 것이었는지 더블체크를 해보자. "외국인 대학생을 위한 최고의 서울 여행 계획을 제시하라." 라는 프롬프트는 "Zero-shot-CoT" 접근 방식이 상대적으로 효과가 없는 문제들 중의 하나인지 말이다.
ChatGPT ::
"외국인 대학생을 위한 최고의 서울 여행 계획을 제시하라."라는 프롬프트는 Zero-shot-CoT (Chain of Thought) 접근 방식이 상대적으로 효과가 없는 문제의 예에 해당할 수 있습니다. 이유는 다음과 같습니다:
Zero-shot-CoT의 특성과 적용 범위
Zero-shot-CoT 방식은 복잡한 문제 해결이나 논리적, 계산적 추론이 필요한 문제에 특히 유용합니다. 이 접근법은 문제를 단계별로 분해하여 각 단계의 추론 과정을 명시적으로 표현하고, 이를 통해 최종 결론에 도달하는 방식입니다.
여행 계획 프롬프트의 특성
반면, 여행 계획 프롬프트는 주로 정보 제공, 조언, 개인의 선호도나 경험을 기반으로 한 제안 등을 포함합니다. 이러한 유형의 문제는 단순한 사실 조회나 개인적 의견 제공보다는 다양한 옵션과 정보를 고려하여 통합적인 계획을 세우는 것을 요구하지만, Zero-shot-CoT에서 중점을 두는 논리적 추론이나 단계별 문제 해결 과정을 명시적으로 따를 필요가 없습니다.
적용 가능성과 한계
- 적용 가능성: 여행 계획과 같은 주제에 Zero-shot-CoT를 적용하는 것이 완전히 무의미한 것은 아닙니다. 예를 들어, 여행 일정을 계획하면서 각 일정의 우선순위를 정하거나, 여행지 간의 이동 방법을 결정하는 과정에서 단계별로 생각해볼 수 있습니다.
- 한계: 그러나 전반적으로 볼 때, 이러한 유형의 문제 해결은 Zero-shot-CoT 접근 방식의 핵심 강점을 충분히 활용하지 못합니다. 여행 계획은 개인적인 취향, 관심사, 그리고 특정 상황에 따라 매우 다양하게 달라질 수 있으며, 이는 단순히 논리적인 추론 과정을 통해 최적의 해답을 도출할 수 있는 문제가 아닙니다.
결론
따라서 "외국인 대학생을 위한 최고의 서울 여행 계획을 제시하라."라는 프롬프트는 Zero-shot-CoT 접근 방식의 효과를 극대화하기 어려운 문제 유형에 속합니다. 여행 계획과 같은 주제는 더 포괄적인 정보 수집, 개인적 선호의 고려, 그리고 다양한 옵션 간의 통합적인 판단을 요구하는 바, Zero-shot-CoT의 직접적인 논리적 추론 방식보다는 다른 접근 방식이 더 적합할 수 있습니다.
Closing Note ::
여기서 테스트해본 최고의 여행계획을 세우는 문제는 원래 Zero-shot-CoT 가 마법을 부릴 수 있는 종류의 문제가 아니었던 것이다. "step by step" 주장한 논문 자체가 잘못된 것은 아니다. 효과가 전혀 없는 것도 아니다. 다만, 효과를 보일 수 있는 문제의 종류가 한정적이라는 점이 (현재 기준 1800회에 가까운 citation이 된) 논문에 명시되어있지 않다보니 다들 충분한 검토없이 받아들이면서 이런 혼선이 발생된 것으로 보인다. 기억하라. "step by step"은 만능이 아니다!
ChatGPT가 인기를 끌면서 "프롬프트 엔지니어링"도 많이 관심을 받고 있다. 하지만 마법과 같은 새로운 기법으로 이야기되는 많은 것들에 대해 (소위 "카더라" 마법의 레시피들에 대해) 진짜로 되는 부분과 아닌 부분을 가려서 사용해야만 한다. ChatGPT와 같은 도구에게 던져야할 프롬프트의 종류는 무제한으로 다양하다. 어떤 프롬프트를 던져야할 상황인지에 따라 적합한 방법을 골라 적용할 수 있어야 한다.
생각해보면 Zero-shot-CoT 논문이 등장한 것은 2022년. 아직 GPT-4가 ChatGPT에 올라가기도 훨씬 전이다. 상황도 환경 까지도 변한다. 어느 특정 시점에서 어떤 특정 기법이 얼마나 효과가 있는지에 대해서 확인을 해보고 나서 주장하고 또 사용하고 할 일이다.
참고::
이 글은 "디지털 마케터의 챗GPT 활용 전략" 책 중의 프롬프트 작성방법 부분을 보강 / Update하기 위한 내용입니다. 책에 대한 소개는 다음을 참고하세요
https://revisioncrm.tistory.com/596
프롬프트를 조금만 바꾸면 결과도 조금만 달라질까?
https://revisioncrm.tistory.com/635
ChatGPT 프롬프트는 무조건 길고 자세하기만 하면 되는 것인가?
https://revisioncrm.tistory.com/602
관련 영상 ::
협박을 하면 ChatGPT가 더 잘할 것이다? - 챗GPT 프롬프트 엔지니어링 방법에 대한 팩트체크 series
https://www.youtube.com/watch?v=nThC_t6EO9o&t=306s
https://www.youtube.com/watch?v=IHiniGq6dDU&t=2s
https://www.youtube.com/watch?v=GU7yydPxCeE&t=43s
* by promptStrategies, 전용준. 리비젼컨설팅 https://revisioncrm.tistory.com/182
'인공지능' 카테고리의 다른 글
ChatGPT 프롬프트 엔지니어링 기초 - 제한 사항을 명시하기 (0) | 2024.04.11 |
---|---|
ChatGPT의 현재는 언제일까? (0) | 2024.04.09 |
챗GPT AI 시각화 데이터 분석 - 막대 챠트 프롬프트 명령 (프롬프트와 영상) Tutorial (2) | 2024.03.29 |
[promptStrategy TIPs Series #20] 실제 업무에 얼마나 유용할까 - ChatGPT 한계와 대책 검토 (0) | 2024.03.29 |
ChatGPT 데이터 분석 - Scatterplot 데이터 시각화 분석 예제(영상) (0) | 2024.03.21 |