Google의 Gemini API 문서에 소개된 프롬프트 설계 전략을 정리해 보았습니다. LLM(대규모 언어 모델)으로부터 원하는 결과를 얻기 위해서는 명확하고 구체적인 프롬프트 작성이 필수적입니다.
원문 가이드: Gemini API 프롬프트 설계 전략, Google AI Developers on X
1. 명확하고 구체적인 요청 사항 (Clear and Specific Requests)
모델의 동작을 효과적으로 제어하는 가장 좋은 방법은 명확하고 구체적인 요청을 하는 것입니다. 단순히 질문을 던지는 것뿐만 아니라, 단계별 작업 지시나 페르소나(Persona)를 부여하는 것도 좋은 방법입니다.
입력 (Input) 구성 요소
프롬프트의 입력은 다음과 같은 형태로 구성될 수 있습니다:
- 질문 입력: 모델이 답해야 할 질문
- 태스크 입력: 모델이 수행해야 할 작업
- 항목 입력: 모델이 작업할 대상 문서나 텍스트
- 완료 입력: 모델이 이어받아 작성할 텍스트의 시작 부분
부분 입력 완료 (Partial Input Completion)
생성형 모델은 고급 자동 완성 도구처럼 작동할 수 있습니다. 예를 들어, JSON 구조의 앞부분을 제공하면 모델이 나머지 구조를 완성하게 유도할 수 있습니다.
유효한 필드는 cheeseburger, hamburger, fries, drink 입니다.
주문: 치즈버거 하나랑 감자튀김 하나 주세요.
출력: ``` { "cheeseburger": 1, "fries": 1 } ```
주문: 햄버거 두 개랑 음료 하나, 감자튀김 하나요.
출력:
2. 제약 조건 (Constraints)
모델에게 해야 할 일과 하지 말아야 할 일을 명확히 지시하세요.
- 요약의 길이 제한 (예: “한 문장으로 요약해 줘”)
- 사용할 수 있는 정보의 범위 제한
- 특정 형식 준수 요구
다음 텍스트를 한 문장으로 요약하세요:
[텍스트 내용...]
3. 대답 형식 (Output Format)
원하는 응답 형식을 구체적으로 요청할 수 있습니다.
- 표, 글머리 기호 목록
- JSON, XML 데이터 형식
- 엘리베이터 피치, 키워드, 시 등 특정 스타일
시스템 지침을 통해 “모든 답변은 사용자가 간결함을 요청하지 않는 한 구체적으로 작성하라"와 같이 기본 행동 양식을 설정할 수도 있습니다.
4. 퓨샷 프롬프트 (Few-shot Prompting)
**퓨샷(Few-shot)**은 프롬프트에 예시를 포함하여 모델에게 원하는 패턴을 학습시키는 방법입니다. 예시가 없는 것을 **제로샷(Zero-shot)**이라고 합니다.
- 모델은 예시의 패턴(형식, 문체, 길이 등)을 파악하여 응답에 적용합니다.
- 구체적이고 다양한 예시를 제공할수록 정확도가 높아집니다.
- 설명만으로는 부족할 때 예시를 통해 의도를 명확히 전달할 수 있습니다.
예시: 설명 스타일 조정하기
제로샷 요청:
질문: 눈은 어떻게 생성되나요? 설명해 주세요.
퓨샷 요청 (짧은 설명 유도):
질문: 하늘은 왜 파란가요?
설명1: (긴 과학적 설명...)
설명2: Rayleigh 산란 효과 때문입니다.
정답: 설명2
질문: 지진의 원인은 무엇인가요?
설명1: 지구 지각의 급격한 에너지 방출입니다.
설명2: (긴 설명...)
정답: 설명1
이제 다음 질문에 답하세요.
질문: 눈은 어떻게 생성되나요?
이렇게 예시를 통해 “짧은 설명"을 선호한다는 패턴을 보여주면, 모델은 그에 맞춰 짧은 답변을 생성할 확률이 높아집니다.
프롬프트 엔지니어링은 모델과 소통하는 언어를 배우는 과정과 같습니다. 위 전략들을 활용하여 Gemini로부터 더 정확하고 유용한 답변을 얻어보세요!