3.D. 단계적으로 지시하기
3.D. 단계적으로 지시하기🔗
'명확하고 구체적으로 지시하기'의 연장선 상에 있는 또 다른 주요 기법으로 '단계적으로 지시하기'가 있습니다. 특히 어느 정도 '생각'을 해야 하는 작업에서 LLM의 실수나 오류를 줄이는 데 상당히 효과적인 방법으로 알려져 있습니다.
단계적 지시는 말 그대로 복잡한 작업을 더 작고 단순한 작업들으로 나누는 것입니다. 사람이 언제든 실수를 할 수 있는 것처럼, LLM도 마찬가지입니다. 더구나 사람에겐 비교적 간단한 작업/사고 과정일지라도 알고 보면 차근차근 생각해야 하는 것들이 있습니다. 이러한 경우에 '단계적 지시'를 통해 LLM이 각 단계를 차례대로 처리하여 더욱 정확하고 구체적인 결과를 제공할 수 있습니다.
* AI 생성 이미지 with Nano Banana Pro
다음은 단계적 지시를 하는 몇 가지 방법들입니다.
단계별 설명 요청🔗
가장 단순한 방법으로, LLM에 "차근차근" 또는 "단계적으로" 설명해달라는 요청만 덧붙여도 기존과 다른 답변을 얻을 수 있습니다. 이런 지시를 받은 LLM은 학습한 지식으로 가장 적합할 것 같은 단계들을 찾아(또는 만들어내) 그에 맞춰 답변합니다.
예를 들어,
광합성 과정을 차근차근, 단계적으로 설명해주세요.
또는,
컴퓨터의 부팅 과정을 단계별로 설명해주세요.
와 같은 식입니다.
이 방법의 장점은 사용자가 복잡한 프롬프트 구조를 만들 필요 없이, 간단한 지시만으로 체계적이고 상세한 설명을 얻을 수 있다는 것입니다. 또한 이 접근법은 다양한 주제와 질문 유형에 보편적으로 적용될 수 있어 매우 유용합니다.
다만, 이 방법을 사용할 때는 LLM이 설정한 단계의 수준과 깊이가 사용자의 기대에 부합하는지 확인해야 합니다. 필요하다면 "더 자세히 설명해주세요" 또는 "그 단계는 생략해주세요"와 같은 추가 요청을 통해 응답을 조정할 수 있습니다.
직접적으로 단계를 구분하여 지시🔗
지시/질문을 처리하기 위해 구체적으로 어떤 과정을 거쳐야 하는지 잘 알고 있을 경우, -앞서 다뤘던 '구분 기호'를 사용하여- 직접 단계를 구분해 요청하면 됩니다.
간단한 예시는 다음과 같습니다.
다음 단계에 따라 텍스트를 분석해주세요:
1. 주요 주제 식별하기
2. 각 문단 요약하기
3. 전체 텍스트의 톤 분석하기
4. 핵심 주장이나 결론 추출하기
각 단계를 구분하는 방법도 간단한 지시/설명에 그치지 않고 목적이나 세부 지침 등을 구체적으로 알려줄수록, LLM이 더 정확하고 상세한 응답을 줄 수 있습니다. 위의 예시로도 충분할 수 있지만, 결과가 마음에 들지 않거나 더 정밀한 작업을 요청할 때는 다음과 같이 지시할 수 있습니다.
다음 단계에 따라 텍스트를 분석해주세요:
1. 텍스트의 앞 부분 또는 뒷 부분에서 전체 텍스트를 대표하는 주요 주제 식별하기
2. 식별한 주요 주제를 바탕으로, 각 문단의 내용을 간략하게 요약하기
3. 전체 텍스트의 톤을 분석하고, 시작부터 끝까지 톤의 변화가 있는지 확인하기
4. 텍스트 전반에 걸쳐 반복되는 핵심 주장이나 아이디어를 찾아 추출하고, 이를 바탕으로 저자의 주요 결론 또는 메시지 도출하기
중간 결과 확인 및 반복🔗
여러 단계를 거치는 복잡한 작업의 경우, 간혹 중간 결과를 확인하고 필요에 따라 추가 지시를 제공하는 것이 유용할 수 있습니다. 예를 들어 수학 문제를 풀어보려는 경우, 다음과 같은 형식으로 질문을 할 수 있습니다.
문제: 한 상자에는 12개의 공이 들어 있습니다.
4개는 빨간색, 5개는 파란색, 3개는 초록색입니다.
이 상자에서 2개의 공을 꺼낼 때, 같은 색의 공 2개를 꺼낼 확률을 구하세요.
1단계: 전체 경우의 수를 계산할 것.
[계산 결과: ]
2단계: 빨간색 2개를 꺼낼 경우의 수, 파란색 2개를 꺼낼 경우의 수, 초록색 2개를 꺼낼 경우의 수를 각각 계산할 것.
[계산 결과: ]
3단계: 1단계의 전체 경우의 수에서 2단계에서 구한 경우의 수를 모두 더한 후 값의 비율을 계산할 것.
[계산 결과: ]
위와 같은 방법으로 질문하면 답변 내용을 보면서 계산 과정이 올바른지 쉽게 확인할 수 있고, 어떤 오류를 발견한다면 오류가 발생한 단계나 오류 내용을 특정해 다시 풀어보게끔 유도할 수 있습니다. 위의 예제를 직접 돌려본 결과는 이 곳에서 확인할 수 있습니다. (이번엔 특별히 틀린 부분은 없는 것 같습니다.)
또 이 같은 수학 문제 풀이뿐만 아니라 텍스트 요약, 아이디어 제안 등 작업의 종류와 무관하게 LLM이 답변한 근거나 그와 관련된 사실들을 함께 확인하고 싶을 때 사용할 수 있습니다. 물론, 근거를 제시하더라도 LLM은 언제든 (그럴싸하게) 거짓을 답할 수 있으므로 진실 여부 판단은 사람의 몫입니다.
📌 참고 : 이처럼 LLM이 스스로 생각하는 과정을 단계별로 설명하도록 유도하는 것은 '생각의 사슬(Chain-of-Thought, CoT)'이라는 고급 프롬프트 기법의 가장 기본적인 형태입니다. 단순히 "차근차근 생각하고 설명해줘" 또는 "Let's think step by step"과 같은 문구를 추가하는 것만으로도, LLM은 문제 풀이 과정을 명시적으로 전개하며 복잡한 문제의 추론 정확도를 높일 수 있다고 알려져 있습니다.
한편 이 CoT 기법이나 유사한 어떤 고급 프롬프트 기법을 사용할 때 유의할 사항도 있습니다. 대형언어모델(LLM)의 대표적 추론 기법으로 주목받은 '사고 사슬(CoT)'이 진정한 추론이 아니라 취약한 신기루에 불과하다는 연구 결과가 있기 때문입니다. 이에 따르면 훈련에 포함되지 않은 완전히 새로운 문제에서는 성능이 크게 떨어지므로 CoT를 과신해서는 안 된다고 강조합니다. CoT는 학습 데이터를 최대한 모방하는 것일 뿐, 인간의 사고과정에 준하는 것으로 착각해서는 안 된다는 것입니다.
다만 '대부분의 경우 여전히 유용할 수 있다'는 부연도 있습니다. 엄청난 양의 데이터를 학습한 LLM에게 '그렇게까지 생소한 문제가 있겠냐'는 의미인데, '대부분'이니 '생소함'이니 다소 주관적인 기준으로 CoT 기법을 써야 할지 말아야 할지 (또는, 믿어도 될지 등을) 판단하기란 쉽지 않을 것입니다.
특히, 일반 사용자 입장에선 어떤 LLM의 학습 데이터 중 내 문제와 관련된 부분이 얼마나 충분하고 부족한지 알기 어렵기 때문에, 사용자가 직접 질문과 함께 알고 있는 관련 정보나 맥락을 충분히 제공하는 것만이 답변의 신뢰성과 일관성을 유지할 수 있는 비법입니다. 그래서 'LLM이 적절한 답변을 하는 데 무엇이 필요한가? 뭘 꼭 알려줘야 하지?', 즉 컨텍스트 엔지니어링'에 대한 관심이 커지기 시작한 것입니다.
질문의 의도 분류🔗
복잡한 작업을 수행할 때, 먼저 질문이나 작업의 유형을 분류하고 그에 따라 적절한 단계를 적용하는 것이 유용할 수 있습니다. 예를 들어, 고객 서비스 질문을 다음과 같이 분류할 수 있습니다.
고객 문의 사항: "제 계정에 로그인하려고 하는데 비밀번호가 계속 틀렸다고 나와요. 어떻게 해야 할까요?"
먼저 위의 질문 유형을 다음 중 하나로 분류해주세요:
- 기술 지원
- 계정 관리
- 결제 문의
- 일반 문의
그리고 각 유형에 따른 적절한 단계를 수행해주세요.
이렇게 하면 LLM이 질문의 성격을 먼저 파악하고, 그에 맞는 세부 단계를 수행함으로써 답변의 정확성을 향상시킬 수 있습니다. 위의 예시처럼 특별히 복잡한 작업이 아니더라도, 어떤 상황이나 조건에 따라 다른 방식으로 답변을 받아야 할 때 효과적으로 사용할 수 있는 방법입니다.
이해에 도움이 될 만한 예시를 하나 더 들어보겠습니다.
SYSTEM:
당신은 학생들의 에세이 작성을 돕는 AI 튜터입니다. 질문에 답하기 전에 먼저 질문의 의도를 파악하고, 그에 따른 적절한 단계별 가이드를 제공하세요.
질문 의도 분류:
1. 주제 선정: 에세이 주제를 고르거나 좁히는 데 도움이 필요한 경우
2. 구조 설계: 에세이의 전체적인 구조나 개요 작성에 관한 질문
3. 내용 개발: 각 섹션의 내용을 발전시키는 방법에 대한 조언이 필요한 경우
4. 논증 강화: 주장을 뒷받침하는 증거나 논리를 개선하고자 하는 경우
5. 마무리: 결론 작성이나 전체 에세이 마무리에 대한 조언이 필요한 경우
각 의도에 따라 적절한 단계별 가이드를 제공하세요.
USER:
"기후 변화가 생태계에 미치는 영향"이라는 주제로 에세이를 써야 하는데, 어떻게 시작해야 할지 모르겠어요. 도와주세요.
위 예시에서 SYSTEM 프롬프트는 다음 장에서 설명할 '역할 부여'와 함께, LLM에게 '의도 분류의 기준'과 '어떤 단계별 가이드가 적절할지'에 대한 단서를 제공하고 있습니다. 이를 바탕으로 LLM은 USER 프롬프트(=학생의 질문)에 대해 '의도 파악 → 적절한 단계로 가이드 제시'와 같이 답변하게 됩니다. 이처럼 분류 기준이나 그 분류에 적합한 반응, 단계, 작업 등을 구체적으로 알려준다면 LLM은 더욱 체계적이고 일관된 방식으로 복잡한 작업을 수행할 수 있습니다.
