블로그 목록으로
Technology
11분

고급 프롬프트 엔지니어링 테크닉

Few-shot, Chain-of-Thought 등 고급 프롬프트 기법으로 LLM 성능을 극대화하는 방법을 알아봅니다.

OnCreative
2023.12.15
#Prompt Engineering#LLM#Best Practices

프롬프트 엔지니어링의 진화

프롬프트 엔지니어링은 단순한 질문 작성을 넘어 LLM의 잠재력을 최대한 끌어내는 핵심 기술로 자리잡았습니다. 올바른 프롬프트 전략은 모델 성능을 2-3배 이상 향상시킬 수 있습니다.

기본 원칙

1. 명확성과 구체성

Bad Example:

"이메일 써줘"

Good Example:

"B2B 소프트웨어 고객에게 보낼 제품 업데이트 이메일을 작성해주세요.

  • 톤: 전문적이면서 친근한
  • 길이: 150-200단어
  • 포함 내용: 새 기능 3가지, 출시일, 상세 정보 링크
  • 마무리: 행동 유도 문구"
  • 2. 구조화된 출력 요청

    출력 형식을 명확히 지정하여 일관된 결과를 얻을 수 있습니다.

    고급 테크닉

    1. Chain-of-Thought (CoT) Prompting

    기본 CoT

    Q: 로저는 테니스 공을 5통 가지고 있습니다. 각 통에는 공이 3개씩 들어있고, 2개의 통을 더 샀습니다. 총 몇 개의 테니스 공을 가지고 있나요?

    A: 단계별로 생각해보겠습니다:

  • 처음에 5통을 가지고 있었습니다
  • 각 통에는 3개의 공이 있습니다
  • 처음 공의 개수: 5 × 3 = 15개
  • 2통을 더 샀습니다
  • 추가된 공: 2 × 3 = 6개
  • 총 공의 개수: 15 + 6 = 21개
  • 답: 21개의 테니스 공

    2. Few-shot Learning

    다양한 예시를 제공하여 모델이 패턴을 학습하도록 합니다. 예시는 다양성을 가지고 있어야 하며, 원하는 출력 형식을 명확히 보여줘야 합니다.

    3. Self-Consistency

    동일한 문제에 대해 여러 추론 경로를 생성하고, 가장 일관된 답변을 선택하는 방법입니다. 복잡한 추론 문제에서 정확도를 크게 향상시킬 수 있습니다.

    4. Tree of Thoughts (ToT)

    문제 해결을 위한 여러 사고 경로를 탐색하고, 각 경로를 평가하여 최적의 해결책을 찾는 방법입니다. 복잡한 계획 수립이나 창의적 문제 해결에 효과적입니다.

    5. ReAct (Reasoning + Acting)

    사고와 행동을 번갈아가며 문제를 해결하는 패턴입니다. 외부 도구나 API와 상호작용이 필요한 작업에 적합합니다.

    6. Constitutional AI 프롬프팅

    AI가 자신의 응답을 스스로 검토하고 개선하도록 하는 방법입니다. 정확성, 유용성, 안전성 측면에서 응답 품질을 향상시킵니다.

    도메인별 최적화

    1. 코드 생성

  • 함수 시그니처 명확히 지정
  • 입출력 예시 제공
  • 제약 조건 명시
  • 에러 처리 요구사항 포함
  • 2. 데이터 분석

  • 분석 목적 명확화
  • 데이터 구조 설명
  • 원하는 인사이트 유형 지정
  • 출력 형식 정의
  • 3. 크리에이티브 작업

  • 타겟 오디언스 정의
  • 톤과 스타일 가이드
  • 필수 포함 요소
  • 피해야 할 요소
  • 프롬프트 최적화 전략

    1. A/B 테스팅

    여러 프롬프트 변형을 테스트하여 최적의 버전을 찾습니다. 정량적 메트릭을 사용하여 객관적으로 평가합니다.

    2. 프롬프트 압축

    토큰 제한을 고려하여 프롬프트를 최적화합니다:

  • 중복 제거
  • 약어 사용
  • 핵심 정보만 추출
  • 실전 체크리스트

  • 목적이 명확히 정의되어 있는가?
  • 필요한 컨텍스트가 모두 포함되어 있는가?
  • 출력 형식이 구체적으로 지정되어 있는가?
  • 예시가 다양하고 대표성이 있는가?
  • 제약 조건이 명시되어 있는가?
  • 단계별 사고가 필요한 경우 CoT를 사용했는가?
  • 일관성이 중요한 경우 Self-Consistency를 적용했는가?
  • 프롬프트 길이가 최적화되어 있는가?
  • 테스트를 통해 검증했는가?
  • 엣지 케이스를 고려했는가?
  • 성능 측정 메트릭

    정량적 메트릭

  • 정확도: 정답률
  • 일관성: 반복 실행 시 일치율
  • 완성도: 요구사항 충족률
  • 효율성: 토큰 사용량 대비 품질
  • 정성적 메트릭

  • 관련성: 질문과의 연관성
  • 유용성: 실제 활용 가능성
  • 명확성: 이해하기 쉬운 정도
  • 창의성: 독창적 해결책 제시
  • 결론

    프롬프트 엔지니어링은 LLM 활용의 핵심 역량입니다. 체계적인 접근과 지속적인 실험을 통해 최적의 프롬프트를 찾아내고, 이를 통해 AI의 잠재력을 최대한 활용할 수 있습니다. 중요한 것은 한 번에 완벽한 프롬프트를 작성하려 하지 말고, 반복적인 개선을 통해 점진적으로 향상시키는 것입니다.