Menu

제로샷 프롬프팅: 예시와 잘 통하는 경우

제로샷 프롬프팅은 답의 예시 없이 지시만으로 모델에게 작업을 시키는 방법입니다. 대부분의 사람이 ChatGPT, Claude, Gemini를 쓰는 방식이고, 흔한 작업에 지시가 정확할 때 잘 통합니다.

이 페이지의 모든 프롬프트는 수정한 뒤 ChatGPT, Claude 등 AI 앱에서 바로 열 수 있습니다.

제로샷 프롬프팅은 원하는 답의 예시를 전혀 보여 주지 않고 지시만으로 모델에게 작업을 시키는 방법입니다. "이 문단을 스페인어로 번역해 줘"와 "이 이메일을 두 문장으로 요약해 줘"가 제로샷 프롬프트입니다. 사람들이 채팅 모델을 쓰는 기본 방식이고, 흔한 작업이라면 대개 이것으로 충분합니다.

제로샷의 뜻

머신러닝에서 "샷(shot)"은 풀이가 된 예시 하나를 뜻합니다. 이 용어는 채팅 모델보다 오래되었지만, 프롬프팅에서의 의미는 Brown 등의 2020년 논문 "Language Models are Few-Shot Learners"로 널리 알려졌습니다. 이 논문은 GPT-3를 세 가지 설정으로 테스트했습니다. 작업 설명에 시연을 0개, 1개, 또는 몇 개 넣었고, 어느 경우에도 모델을 다시 학습시키지 않았습니다. 그 모델에서는 대개 예시가 몇 개 있을 때가 없을 때보다 나았습니다.

그 이후 채팅 모델은 지시 따르기를 집중적으로 학습했고, 그래서 지금은 평범한 요청도 아주 잘 통합니다. 제로샷 프롬프트는 이 모델들이 학습한 상황 그대로입니다. 누군가 할 일을 말로 설명하고 그 일이 처리되기를 기대하는 상황입니다.

제로샷이 맥락이 없다는 뜻은 아닙니다. 좋은 제로샷 프롬프트도 독자를 밝히고, 입력을 붙여 넣고, 형식과 제약을 설명합니다. 빠지는 것은 완성된 출력 예시 하나뿐입니다.

잘 쓴 제로샷 프롬프트

아래 프롬프트는 출력 예시 없이, 출력에 대한 정확한 설명만으로 회의록에서 할 일을 뽑아냅니다. 요소를 꺼 보면서 어느 줄이 일을 하는지 확인해 보세요.

회의록에서 할 일 뽑기
Parts
이 회의록에서 할 일을 뽑아 줘.
이 목록은 우리 팀의 업무 관리 도구에 들어가므로, 모든 항목에는 담당자가 정확히 한 명 있어야 해.
항목 하나당 한 줄: 담당자, 콜론, 동사로 끝나는 할 일, 그리고 회의록에 마감일이 있으면 괄호 안에 마감일.
누군가 하기로 동의한 일만 넣어. 논의만 한 것이나 아무도 맡지 않은 아이디어는 빼. 담당자가 없는 할 일은 담당자를 "미정"으로 써.
스프린트 싱크, 화요일 프리야가 금요일 전에 로그인 타임아웃 고칠 예정. 새 CI 서비스로 옮기는 것 논의, 결정 안 됨. 톰이 2.4 릴리스 노트 작성. 누군가 온보딩 문서 업데이트해야 함. 레나: 목요일까지 톰의 노트 리뷰할게요.
Try it
Example replyReplies vary between models and runs.

프리야: 로그인 타임아웃 고치기 (금요일 전) 톰: 2.4 릴리스 노트 작성하기 미정: 온보딩 문서 업데이트하기 레나: 톰의 릴리스 노트 리뷰하기 (목요일까지)

형식 줄이 예시가 할 일을 대신합니다. 각 줄의 정확한 모양을 풀어 쓰므로 따라 할 예시가 필요 없습니다. 형식을 끄면 답변이 제멋대로 모양을 고르는데, 흔히 이름을 굵게 쓴 글머리 기호 목록이 나옵니다. 읽기에는 괜찮지만 업무 관리 도구에 깔끔하게 붙여 넣을 수는 없습니다. 제약 조건을 끄면 CI 논의가 할 일로 나타날 수 있습니다. 결정되지 않은 주제는 포함하지 않는다고 모델에게 알려 준 것이 없기 때문입니다.

제로샷으로 충분한 경우

모델이 여러분의 말만으로 모든 것을 추론할 수 있을 때 제로샷이 통합니다.

  • 흔한 작업일 때. 요약, 번역, 설명, 문법 교정, 명확한 명세에 따른 함수 작성은 모두 모델이 학습에서 셀 수 없이 본 작업입니다.
  • 출력을 정확히 설명할 수 있을 때. "항목 하나당 한 줄, 담당자 먼저"는 예시만큼 명확합니다. 프로그램이 읽을 형식을 설명하는 방법은 구조화된 출력을 참고하세요.
  • 분류 이름이 말 그대로의 뜻일 때. 리뷰를 긍정과 부정으로 나누는 데는 보통 예시가 필요 없습니다. 이 라벨은 거의 모든 사람에게 같은 뜻이기 때문입니다.

대신 예시를 넣어야 하는 경우

말로 옮기기 어려운 것들이 있고, 제로샷 프롬프트가 빗나가기 시작하는 곳이 바로 여기입니다.

  • 여러분만의 경계. 고객지원 팀이 "로그인이 안 돼요"를 버그가 아니라 계정 문제로 분류한다면 모델은 그걸 알 수 없습니다. 대부분의 사람이 택할 해석을 고를 것입니다.
  • 사내 스타일. 팀의 커밋 메시지나 뉴스레터의 말투는 설명하기보다 보여 주기가 쉽습니다.
  • 같은 식으로 계속 빗나갈 때. 지시를 두 번이나 고쳐 썼는데도 출력이 같은 방식으로 조금씩 빗나간다면, 고쳐 쓰기를 멈추고 올바른 답 두세 개를 보여 주세요.

이것이 few-shot 프롬프팅입니다. 제로샷으로 시작해서 돌아온 결과를 보고, 틀리는 특정 부분에만 예시를 더하는 습관이 합리적입니다.

제로샷 생각의 사슬

Kojima 등의 2022년 논문 "Large Language Models are Zero-Shot Reasoners"는 "Let's think step by step(단계별로 생각해 보자)"이라는 한 문장을 더하면, 예시가 전혀 없어도 대형 모델이 산수, 기호, 논리 문제를 눈에 띄게 더 잘 푼다는 것을 발견했습니다. 이 문구는 모델이 답 앞에 중간 단계를 쓰게 만들고, 모델이 쓴 각 단계는 다음 단계의 컨텍스트가 됩니다. 이들의 방법은 두 번의 호출을 썼습니다. 첫 번째 호출이 추론을 만들고, 두 번째 호출이 최종 답을 요청했습니다.

아래 블록에서 첫 번째 탭은 즉시 답하게 하고, 두 번째 탭은 모델에게 풀 여유를 줍니다.

기차가 9시 40분에 출발할 예정이었어. 25분 늦게 출발했어. 평소 이동 시간은 2시간 35분인데, 가는 동안 10분을 만회했어. 몇 시에 도착할까? 시각만 답해.
Try it
Example replyReplies vary between models and runs.

12시 40분

첫 번째 답변은 기차가 만회한 10분을 빠뜨렸습니다. 모델이 처음 몇 토큰 안에 답을 정해야 할 때 생기는 종류의 실수입니다. 요즘 모델이라면 이 문제는 어느 쪽으로든 맞힐 수도 있지만, 문제의 단계가 많아질수록 차이가 커집니다. 두 번째 버전에는 장점이 하나 더 있습니다. 모든 단계가 보이므로 답이 어디서 틀렸는지 알 수 있습니다.

답하기 전에 내부적으로 추론하는 모델은 요청하지 않아도 이미 이 작업을 하므로, "단계별로 생각해 보자"는 답변을 길게 만드는 것 외에는 별로 더해 주는 것이 없습니다. few-shot 버전을 포함한 이 기법의 자세한 내용은 생각의 사슬(CoT) 프롬프팅에서 다룹니다.

제로샷과 few-shot 한눈에 비교

제로샷Few-shot
프롬프트에 들어가는 것지시, 맥락, 입력같은 것에 더해 입력과 답의 쌍 몇 개
잘 맞는 작업출력을 설명하기 쉬운 흔한 작업자체 분류 기준, 특이한 형식, 사내 스타일
비용짧은 프롬프트더 긴 프롬프트, 호출당 토큰 증가
흔한 실패여러분의 해석이 아닌 가장 흔한 해석을 고른다예시에 우연히 생긴 패턴까지 따라 한다

자주 묻는 질문

제로샷 프롬프팅이란 무엇인가요?

제로샷 프롬프팅은 출력 예시 없이 지시만으로 언어 모델에게 작업을 주는 것입니다. "이 이메일을 두 문장으로 요약해 줘"가 제로샷 프롬프트입니다. 최신 채팅 모델은 지시를 따르도록 학습되어 있어서 제로샷 프롬프트로도 일상적인 작업 대부분을 잘 처리합니다.

제로샷과 few-shot 프롬프팅은 어떻게 다른가요?

제로샷 프롬프트는 작업을 말로 설명합니다. Few-shot 프롬프트는 여기에 예시 몇 개, 즉 입력과 원하는 답의 쌍을 더해서 모델이 패턴을 따라 할 수 있게 합니다. 제로샷으로 시작하고, 설명보다 보여 주는 편이 쉬운 형식이나 구분을 출력이 계속 놓치면 few-shot으로 바꾸세요.

왜 제로샷이라고 부르나요?

머신러닝에서 "샷(shot)"은 풀이가 된 예시 하나를 뜻합니다. Brown 등의 2020년 GPT-3 논문 "Language Models are Few-Shot Learners"는 프롬프트에 작업 시연을 0개, 1개, 몇 개 넣고 모델을 테스트했고, 이때부터 제로샷, 원샷, few-shot이라는 이름이 프롬프팅의 표준 용어가 되었습니다.

제로샷 프롬프팅이 잘 안 통하는 경우는 언제인가요?

팀의 분류 기준이나 사내 스타일처럼 여러분만 아는 규칙에 달린 작업, 출력 형식이 특이한 작업, 모델이 너무 빨리 답해 버리는 여러 단계의 추론에서 어려움을 겪습니다. 앞의 두 가지는 예시로 해결되고, 세 번째는 단계별로 풀라고 요청하면 도움이 됩니다.

제로샷 생각의 사슬(zero-shot CoT)이란 무엇인가요?

답하기 전에 추론하라고 요청하는 제로샷 프롬프트입니다. 가장 유명한 방법은 "Let's think step by step(단계별로 생각해 보자)"을 덧붙이는 것입니다. Kojima 등은 2022년에 예시 없이 이 한 문장만으로 대형 모델의 산수와 논리 문제 성적이 좋아진다는 것을 보였습니다.

Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기