GPT-4 API를 실무에 적용하며 배운 프롬프트 엔지니어링 패턴
배경
사내 위키 시스템에 긴 문서를 자동으로 요약하는 기능을 추가하게 됐다. GPT-4 API가 3월에 출시된 후 처음으로 프로덕션에 적용하는 작업이었다.
초기 접근과 문제점
처음엔 단순하게 "다음 문서를 요약해줘"라는 프롬프트를 사용했다. 결과는 일관성이 없었다. 어떤 때는 3줄로, 어떤 때는 10줄로 요약됐고, 핵심을 놓치는 경우도 많았다.
적용한 패턴들
1. 역할과 제약 명시
const systemPrompt = `당신은 기술 문서 요약 전문가입니다.
- 3~5개의 bullet point로 요약
- 각 항목은 한 문장으로 제한
- 코드나 기술 용어는 그대로 유지`;
역할을 부여하고 출력 형식을 구체적으로 지정하니 일관성이 크게 개선됐다.
2. Few-shot Examples
예시를 2~3개 제공하는 것만으로도 품질이 향상됐다.
const fewShotExamples = [
{
input: "Redis 캐싱 전략 문서...",
output: "- TTL 기반 캐시 무효화 전략 도입\n- 읽기 성능 40% 개선..."
}
];
3. 단계별 사고 유도
복잡한 문서의 경우 "먼저 주요 섹션을 파악하고, 각 섹션의 핵심을 추출한 뒤, 최종 요약을 작성하세요"처럼 단계를 나눠 지시했다. Chain-of-Thought 방식이라고 하더라.
실무 팁
- temperature는 0.3~0.5 사이가 적당했다. 0에 가까울수록 일관적이지만 너무 경직됐다
- max_tokens는 여유있게 설정해야 중간에 잘리는 일이 없다
- 비용 절감을 위해 gpt-3.5-turbo로 먼저 테스트 후 필요시에만 GPT-4 사용
결과
프롬프트 개선 후 내부 테스트에서 80% 이상 만족도를 받았다. API 비용은 문서당 평균 $0.02 정도로 예상보다 저렴했다.
프롬프트 엔지니어링이 별도 직군으로 생길 만큼 중요해지는 것 같다. 당분간은 이 영역도 계속 학습해야겠다.