GPT-4 API로 프롬프트 엔지니어링 실험하며 배운 것들

배경

고객 문의 자동 분류 시스템에 GPT-4 API를 도입하게 되었다. 기존 룰 베이스 시스템의 정확도가 65% 수준이었고, 새로운 카테고리 추가 시마다 엔지니어링 리소스가 소모되는 문제가 있었다.

프롬프트 설계 과정

처음엔 단순한 지시문만 작성했다.

prompt = f"다음 문의를 분류하세요: {query}"

결과는 일관성이 없었다. 같은 문의에도 다른 카테고리를 반환하는 경우가 많았다.

1. 명확한 역할과 제약 추가

system_prompt = """
당신은 전자상품 CS 담당자입니다.
문의를 다음 카테고리 중 하나로 분류하세요:
- 배송
- 반품/환불
- 제품 문의
- 기술 지원
- 기타

카테고리명만 정확히 출력하세요.
"""

정확도가 78%로 올랐다.

2. Few-shot 예시 추가

examples = """
예시:
문의: "언제 도착하나요?" → 배송
문의: "환불 가능한가요?" → 반품/환불
문의: "배터리 용량이 궁금합니다" → 제품 문의
"""

정확도 86%까지 상승했다.

3. JSON 출력 강제

카테고리 외에 신뢰도 점수도 필요했다.

output_format = """
반드시 다음 JSON 형식으로 출력:
{
  "category": "카테고리명",
  "confidence": 0.95
}
"""

파싱 오류가 10% 정도 발생했다. response_format={"type": "json_object"} 파라미터를 추가하니 해결되었다.

온도 파라미터 실험

  • temperature=0.0: 가장 일관적이지만 경계 케이스에서 융통성 없음
  • temperature=0.3: 최적점. 일관성과 유연성의 균형
  • temperature=0.7: 창의적이지만 분류 작업엔 부적합

결과

최종 정확도 91%를 달성했다. 프롬프트 엔지니어링은 결국 명확한 지시, 구체적 예시, 그리고 출력 형식 통제의 조합이었다. LLM은 강력하지만 모호함을 싫어한다는 걸 다시 한번 배웠다.

GPT-4 API로 프롬프트 엔지니어링 실험하며 배운 것들