"분명히 제대로 물어본 것 같은데, 왜 AI는 자꾸 엉뚱한 대답을 할까?"
생성형 AI를 사용해 본 사람이라면 누구나 한 번쯤 겪어봤을 답답한 상황입니다. 하지만 이는 AI의 성능 문제가 아닐 수 있습니다. 『생성형 AI 인 액션』 도서에 따르면, 프롬프트의 작은 표현 차이가 결과물의 품질을 극적으로 바꿀 수 있습니다.
이처럼 AI가 최상의 결과물을 내놓도록 지시하고 유도하는 기술을 바로 프롬프트 엔지니어링(Prompt Engineering) 이라고 합니다. 오늘은 『생성형 AI 인 액션』 6장의 내용을 중심으로, AI의 잠재력을 최대한 끌어내는 실용적인 프롬프트 작성 기술을 단계별로 알아보겠습니다.
1. 프롬프트 엔지니어링의 기본: AI에게 명확하게 지시하는 법
좋은 프롬프트는 단순히 질문을 던지는 것이 아니라, AI가 따라야 할 명확한 '지침서'를 제공하는 것입니다. 책에서는 효과적인 프롬프트가 다음과 같은 핵심 요소들로 구성된다고 설명합니다.
지침 (Instruction): AI가 수행해야 할 명확한 작업. (예: "아래 내용을 요약해 줘.")
주요 내용 (Primary Content): AI가 처리해야 할 정보. (예: 요약할 기사 본문)
예제 (Examples): 원하는 결과물의 형식이나 스타일을 보여주는 샘플.
단서 (Cue): AI가 결과물 생성을 시작하도록 유도하는 신호. (예: "요약:")
이 요소들을 조합하여 "자세하게", "전문적인 톤으로", "글머리 기호로 정리해서"와 같이 구체적인 구문과 구조를 사용하는 것이 중요합니다. 어린아이에게 심부름을 시키듯, 모호함 없이 명확하게 지시하는 것이 핵심입니다.
2. 기초 기술: 제로샷(Zero-Shot) vs. 퓨샷(Few-Shot) 학습
프롬프트 엔지니어링의 가장 기본적인 두 가지 접근법은 '제로샷'과 '퓨샷'입니다. 이는 모델을 재훈련시킬 필요 없이, 프롬프트 내에서 제공된 정보만으로 AI가 작업을 학습하는 '컨텍스트 내 학습(In-context learning)'이라는 놀라운 능력 덕분에 가능합니다.
제로샷(Zero-Shot) 학습: 예제 없이 바로 작업 지시하기
제로샷 학습은 AI에게 별도의 예시 없이 바로 작업을 지시하는 가장 간단한 방법입니다. LLM은 방대한 데이터로 사전 훈련되었기 때문에, 많은 경우 예시 없이도 지시를 이해하고 수행할 수 있습니다.
실전 사례: 제로샷 학습을 활용한 간단한 번역 요청 예시
퓨샷(Few-Shot) 학습: 몇 가지 예제로 AI 가르치기
퓨샷 학습은 AI에게 원하는 결과물에 대한 몇 가지 예제(shots)를 프롬프트에 직접 포함하여 제공하는 방식입니다. 이를 통해 AI는 결과물의 형식, 스타일, 톤을 더 명확하게 이해하고, 사용자의 의도에 훨씬 더 부합하는 결과물을 생성합니다.
실전 사례: 새로운 단어 정의하기
3. 고급 기술: 모델의 추론 능력을 깨우는 '사고의 연쇄(CoT)'
단순한 작업을 넘어 복잡한 논리나 추론이 필요한 문제에 직면했을 때, LLM은 종종 잘못된 답변을 내놓곤 합니다. 이때 모델의 추론 능력을 극적으로 향상시키는 강력한 기술이 바로 '사고의 연쇄(Chain of Thought, CoT)' 입니다.
작동 방식
CoT의 핵심은 간단합니다. AI에게 바로 답을 요구하는 대신, "단계별로 생각해서 설명해 줘(Let's think step-by-step)" 라는 마법 같은 문구를 추가하는 것입니다. 이 지시어는 모델이 문제 해결 과정을 단계별로 나누어 생각하고, 그 과정을 명시적으로 표현하도록 유도합니다. 이 과정을 통해 모델은 스스로 논리적 오류를 수정하고 더 정확한 결론에 도달하게 됩니다.
실전 사례: 나이 계산 문제
문제 상황:
"제가 6살이었을 때 여동생은 제 나이의 절반이었습니다. 이제 저는 70살인데, 여동생의 나이는 몇 살인가요?"
라는 질문에 AI는 종종 '35살'이라는 오답을 내놓습니다.
CoT 적용 후: 프롬프트 끝에 "단계별로 접근해 논리를 설명한 후 최종 답을 제시하세요."라고 추가하면, AI는 다음과 같이 정확한 추론 과정을 거쳐 정답을 도출합니다.
퓨샷 CoT: 궁극의 조합
더 나아가, 퓨샷 학습과 CoT를 결합할 수도 있습니다. 즉, AI에게 몇 가지 문제와 그에 대한 단계별 풀이 과정을 예시로 보여준 뒤, 새로운 문제를 풀도록 하는 것입니다.
결론 및 전문가 팁
지금까지 AI의 성능을 끌어올리는 프롬프트 엔지니어링의 핵심 기술들을 살펴보았습니다. 요약하자면 다음과 같습니다.
명확하게 지시하라: AI를 어린아이라고 생각하고 구체적이고 명확한 지침을 제공하세요.
예제를 보여줘라 (퓨샷): 복잡한 형식이나 스타일이 필요할 땐, 몇 가지 예시를 제공하는 것이 가장 효과적입니다.
스스로 생각하게 하라 (CoT): 어려운 추론 문제가 있다면, "단계별로 생각하라"고 지시하여 AI의 논리 회로를 활성화하세요.
팁: '중간 정보 손실(Lost in the middle)'을 피하세요!
책에서는 LLM이 프롬프트의 처음과 끝부분에 있는 정보에 더 집중하는 경향이 있다고 지적합니다. 따라서 가장 중요한 지침이나 핵심 질문은 프롬프트의 맨 앞이나 맨 뒤에 배치하는 것이 좋습니다. 이 작은 변화만으로도 응답의 품질이 크게 달라질 수 있습니다.
프롬프트 엔지니어링은 AI와 더 효과적으로 '대화'하는 방법입니다. 오늘 배운 기술들을 활용하여 여러분의 AI 경험을 한 단계 업그레이드해 보시기 바랍니다. 더 깊이 있는 고급 기법이 궁금하다면, 『생성형 AI 인 액션』이 훌륭한 가이드가 될 것입니다.
https://wikibook.co.kr/gai-in-action/
《생성형 AI 인 액션》은 대형 언어 모델(LLM) 같은 최신 AI를 효과적으로 사용하는 실용적인 방법을 소개합니다. 마케팅이나 소프트웨어 개발 등 여러 분야의 활용 사례와 함께, 좋은 질문을 설계하는 법(프롬프트 엔지니어링), 그리고 '환각'이나 높은 비용 같은 문제들의 해결책을 제시합니다.