제로샷 및 퓨샷 프롬프트 작성
모델에 직접 요청하는 방식과 예시를 제공하는 방식의 차이를 이해하고, 분류, 추출, 생성 작업에서 어느 접근법이 더 나은 결과를 내는지 학습합니다.
제로샷 및 퓨샷 프롬프트 작성은(는) CoddyKit의 무료 AI Engineering Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Engineering Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Engineering Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
제로샷 프롬프트란 무엇입니까?
제로샷 프롬프트란 작업을 수행하는 방법에 대한 예시를 전혀 제공하지 않고 모델에 작업을 요청하는 것을 뜻합니다. 작업을 간단히 설명하면 모델이 사전 학습한 지식을 적용합니다. 번역, 요약, 간단한 분류처럼 학습 중에 모델이 여러 번 접한 작업에서 특히 잘 작동합니다.
예를 들어 모델에 이 리뷰를 긍정 또는 부정으로 분류하십시오라고 요청하는 것은 제로샷 프롬프트입니다. 모델은 사전 학습 중 수천 개의 감정 분류 예시를 학습했으므로 프롬프트 자체에 예시를 보여 주지 않아도 작업을 수행할 수 있습니다.
간단한 제로샷 예시
제로샷 프롬프트는 간결하며 모델에 내장된 지식에 의존합니다. 작업이 일반적이고 모호하지 않을 때 가장 잘 작동합니다. 아래 프롬프트는 올바른 출력 예시를 보여 주지 않고도 작업을 명확하게 정의합니다.
import openai
client = openai.OpenAI()
prompt = 'Classify the sentiment of the following customer review.\nRespond with only one word: Positive, Negative, or Neutral.\n\nReview: The delivery was fast but the packaging was damaged.\n\nSentiment:'
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
max_tokens=5
)
print(response.choices[0].message.content) # Expected: Negative제로샷이 부족한 경우
작업 형식이 특이하거나, 모델이 흔하지 않은 출력 구조를 따라야 하거나, 실행할 때마다 다르게 해석될 수 있는 일관된 형식이 필요하면 제로샷 프롬프트가 실패할 수 있습니다. 사용자 지정 필드 이름을 사용하는 매우 구체적인 JSON 구조로 데이터를 추출하도록 요청하는 것은 제로샷 프롬프트로는 위험합니다. 모델이 사용자의 정확한 의도를 추측해야 하기 때문입니다.
제로샷은 모델이 사전 학습 중 자주 접하지 못했을 수 있는 도메인별 전문 용어나 틈새 분류 범주를 다룰 때도 어려움을 겪습니다. 이런 경우에는 예시를 제공하면 정확도가 크게 향상됩니다.
퓨샷 프롬프트란 무엇입니까?
퓨샷 프롬프팅은 실제 질의를 제시하기 전에 작업의 예시(입력과 원하는 출력)를 2~8개 모델에 제공하는 것을 의미합니다. 이러한 예시는 별도의 미세 조정이나 학습 없이도 원하는 정확한 형식과 분류 체계를 모델에 가르칩니다.
이는 프롬프트 엔지니어링에서 가장 강력하면서도 충분히 활용되지 않는 기법 중 하나입니다. 모델은 예시를 사용해 패턴을 추론하고 이를 새로운 입력에 적용합니다. GPT-3 논문의 연구에 따르면, 많은 작업에서 성능은 예시 수가 약 8개에 이를 때까지 크게 향상되었으며, 그 이후에는 향상 폭이 정체되어 토큰만 낭비하게 됩니다.
퓨샷 프롬프트 구조
퓨샷 프롬프트는 일관된 패턴을 따릅니다. N개의 예시를 입력-출력 쌍으로 보여 준 다음 새로운 입력을 제시하고 모델이 출력을 완성하게 합니다. 예시의 형식은 모델에 기대하는 정확한 출력 형식을 가르칩니다.
import openai
client = openai.OpenAI()
prompt = ('Extract the product name and price from each sentence.\n'
'Respond in the format: Product: <name> | Price: <price>\n\n'
'Sentence: The blue headphones cost $79.99.\n'
'Product: Blue Headphones | Price: $79.99\n\n'
'Sentence: You can get the leather wallet for just $34.\n'
'Product: Leather Wallet | Price: $34\n\n'
'Sentence: Order the ergonomic keyboard for $129.99 today.\n')
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
max_tokens=30
)
print(response.choices[0].message.content)좋은 퓨샷 예시 선택하기
예시의 품질은 예시의 수만큼 중요합니다. 다음과 같은 예시를 선택하십시오.
- 경계 사례를 포함합니다 — 모호한 입력을 어떻게 처리하기를 원하는지 모델이 알 수 있도록 모호한 입력의 예시를 포함합니다
- 출력 공간을 아우릅니다 — 세 가지 분류가 있다면 각 분류의 예시를 하나 이상 포함합니다
- 대표성을 가집니다 — 실제 운영 환경의 입력과 스타일 및 복잡성이 유사한 예시를 사용합니다
- 형식이 일관됩니다 — 예시의 형식이 조금이라도 일관되지 않으면 그 불일치가 모델 출력에도 나타납니다
잘못 선택한 예시는 작업 분포에 대해 모델을 오도하여 실제로 성능을 떨어뜨릴 수 있습니다.
제로샷과 퓨샷: 각각 언제 사용할까요
다음과 같은 경우에는 제로샷을 사용하십시오. 작업이 일반적이고 명확하게 정의되어 있거나, 토큰 비용을 최소화하고 싶거나, 아직 예시를 수집하기 어려워 빠르게 반복 작업을 진행하려는 경우입니다. 예시에 의해 모델의 일반적인 지식이 제한되어서는 안 되는 경우에도 제로샷이 더 적합합니다.
다음과 같은 경우에는 퓨샷을 사용하십시오. 출력 형식이 일반적이지 않거나 엄격하거나, 특정 분야의 범주가 있거나, 제로샷에서 형식이 일관되지 않게 출력되거나, 모델이 특정 스타일이나 어조를 일관되게 따르도록 해야 하는 경우입니다. 퓨샷은 특히 추출, classification, 형식 제약이 있는 생성에 효과적입니다.
분류 작업을 위한 퓨샷
classification은 퓨샷 프롬프팅의 가치가 가장 높은 활용 사례 중 하나입니다. 일반적인 범주에 대응하지 않는 사용자 지정 레이블이 있다면 예시를 제공하여 모델에 해당 분류 체계를 학습시킬 수 있습니다. 아래 예시는 지원 요청의 맥락에서 버그, 기능 요청, 질문이 정확히 무엇을 의미하는지 정의합니다.
import openai
client = openai.OpenAI()
prompt = ('Classify the support ticket into: Bug, Feature Request, or Question.\n\n'
'Ticket: The login button does nothing when I click it.\n'
'Category: Bug\n\n'
'Ticket: Can you add dark mode to the dashboard?\n'
'Category: Feature Request\n\n'
'Ticket: How do I export my data to CSV?\n'
'Category: Question\n\n'
'Ticket: The export button crashes the app every time.\n'
'Category:')
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
max_tokens=10
)
print(response.choices[0].message.content) # Bug원샷 프롬프팅
제로샷과 퓨샷 사이에는 원샷 프롬프팅이 있습니다. 정확히 하나의 예시를 제공하는 방식입니다. 원샷은 형식 문제를 해결하거나 모호한 작업을 명확히 하는 데 충분한 경우가 많으며, 완전한 퓨샷 프롬프트보다 훨씬 적은 토큰이 듭니다. 제로샷에서 신뢰할 수 없는 결과가 나올 때 원샷은 좋은 첫 번째 개선 단계입니다.
실제로는 제로샷으로 시작하여 실제 입력의 일부를 대상으로 평가한 다음, 모델이 실패하는 부분에만 예시를 추가하십시오. 이렇게 하면 프롬프트를 간결하고 토큰 효율적으로 유지하면서 가장 중요한 부분을 집중적으로 개선할 수 있습니다.
동적 퓨샷 선택
운영 시스템에서 모든 질의에 동일한 몇 개의 예시를 하드코딩하는 것은 최적의 방법이 아닙니다. 동적 퓨샷 선택은 임베딩 유사도를 사용하여 레이블이 지정된 예시 저장소에서 현재 입력과 가장 유사한 예시를 검색한 다음, 해당 예시만 프롬프트에 삽입합니다.
이렇게 하면 모델은 입력 스타일이나 분야와 맞지 않을 수 있는 일반적인 예시가 아니라, 특정 입력에 가장 관련성이 높은 시연을 항상 보게 됩니다. 이 기법은 퓨샷 프롬프팅의 장점과 검색 시스템의 확장성을 결합하며, 때로는 예시 기반 검색 증강 프롬프팅이라고도 합니다.
퓨샷 프롬프트의 형식 제약
퓨샷 프롬프팅은 구조화된 출력이나 JSON 모드를 사용할 수 없을 때 엄격한 출력 형식을 적용하는 가장 신뢰할 수 있는 방법입니다. 필드 이름, 구분 기호, 순서를 포함하여 기대하는 정확한 형식을 모델에 보여 주면, 구문 분석 가능한 출력이 나올 가능성이 크게 높아집니다.
퓨샷 프롬프트는 항상 기대하는 출력 패턴의 시작 부분으로 끝내십시오(예: JSON 객체의 여는 중괄호 또는 첫 번째 필드 이름). 이렇게 하면 모델이 작업을 먼저 요약하거나 설명하는 대신 해당 패턴을 이어 가도록 유도할 수 있습니다.
빠른 확인
이 단원에서 배운 AI 엔지니어링 개념을 이해했는지 확인해 보십시오.
단원 요약
이 단원에서는 다음을 배웠습니다. 제로샷 프롬프팅은 설명만으로 모델에 작업을 수행하도록 요청합니다. 퓨샷 프롬프팅은 형식과 분류 체계를 가르치기 위해 2~8개의 입력-출력 예시를 제공합니다. 또한 동적 퓨샷 선택은 임베딩 유사도를 사용하여 질의마다 가장 관련성 높은 예시를 검색합니다. 다음으로는 복잡한 추론 작업을 위한 사고 연쇄 프롬프팅을 살펴보겠습니다.
자주 묻는 질문
“제로샷 및 퓨샷 프롬프트 작성” 강의는 무료인가요?
네 — “제로샷 및 퓨샷 프롬프트 작성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Engineering Academy 강의 전체를 잠금 해제할 수 있습니다. AI Engineering Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“제로샷 및 퓨샷 프롬프트 작성”에서 뭘 배우나요?
모델에 직접 요청하는 방식과 예시를 제공하는 방식의 차이를 이해하고, 분류, 추출, 생성 작업에서 어느 접근법이 더 나은 결과를 내는지 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 AI Engineering Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Engineering Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Engineering Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“제로샷 및 퓨샷 프롬프트 작성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Engineering Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Engineering Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 제로샷 및 퓨샷 프롬프트 작성
- 사고 연쇄와 단계별 추론
- 시스템 프롬프트와 페르소나 정의
- 프롬프트 반복 개선과 디버깅