프롬프트 엔지니어링은 작성한 프롬프트를 개선하여 더 신뢰할 수 있고 더 높은 품질의 출력을 얻는 것에 관한 것입니다. 이 과정은 초기 프롬프트를 작성하고, 성능을 평가한 다음, 단계별로 엔지니어링 기법을 체계적으로 적용하여 개선하는 것을 포함합니다.

반복적 개선 프로세스
이 접근 방식은 명확한 순환을 따릅니다: 목표를 설정하고, 초기 프롬프트를 작성하고, 이를 평가하고, 프롬프트 엔지니어링 기법을 적용한 다음, 더 나은 성능을 확인하기 위해 재평가합니다. 이 순환은 프롬프트를 다듬어가면서 반복됩니다.

이 튜토리얼 시리즈에서는 실용적인 예제를 다룰 것입니다: 운동선수의 키, 체중, 신체적 목표, 식이 제한 사항을 기반으로 하루 식단 계획을 생성하는 프롬프트를 만드는 것입니다.
평가 파이프라인 설정하기
이 평가는 이전 모듈의 파이프라인을 개선한 버전을 사용하며, 데이터셋 생성과 모델 채점을 처리하는 PromptEvaluator 클래스로 감싸져 있습니다. 이 클래스는 평가 프로세스를 가속화하기 위해 동시성을 지원합니다:
속도 제한 오류를 피하기 위해 낮은 동시성 값(예: 3)으로 시작하세요. API 할당량에 따라 이 값을 조정할 수 있습니다.
테스트 데이터 생성하기
generate_dataset 메서드는 프롬프트를 위한 테스트 케이스를 생성합니다. 다음을 지정해야 합니다:
- 프롬프트가 수행해야 할 작업을 설명하는 작업 설명
- 프롬프트가 필요로 하는 입력에 대한 명세
- 생성할 테스트 케이스의 수
식단 계획 예제의 경우:
초기 프롬프트 작성하기
기준선을 설정하기 위해 단순하고 소박한 프롬프트로 시작하세요. run_prompt 함수는 테스트 케이스 입력을 받아 모델의 응답을 반환해야 합니다:
평가 실행하기
평가 프로세스는 프롬프트의 출력을 예상 기준과 비교합니다. 채점을 안내하기 위해 추가 기준을 더할 수 있습니다:
결과 분석하기
평가는 브라우저에서 열 수 있는 output.html 파일을 생성합니다. 이 보고서는 각 테스트 케이스에 대한 상세한 결과를 보여주며, 점수, 근거, 그리고 프롬프트가 생성한 실제 출력을 포함합니다.

낮은 초기 점수에 낙담하지 마세요 - 이는 예상된 결과입니다! 이 예제의 초기 프롬프트는 10점 중 2.3점만 받았지만, 이는 개선해 나갈 명확한 기준선을 제공합니다.
다음 단계
기준선을 설정했으니, 이제 더 구체적으로 작성하기, 출력 형식 요구사항 추가하기, 구조화된 프롬프트 사용하기, 다중 예시(multi-shot) 구현하기와 같은 프롬프트 엔지니어링 기법을 체계적으로 적용할 수 있습니다. 각 기법은 평가 점수를 향상시켜야 하며, 목표를 향한 측정 가능한 진전을 제공해야 합니다.