APE (Automatic Prompt Engineer)는 프롬프트 엔지니어링을 자동화하는 기법으로 언어 모델에 대한 명령 생성 및 선택을 자동화하여 프로세스를 자연어 합성 및 최적화 문제로 다룹니다. 이 방법은 2022년 Yongchao Zhou의 연구팀이 공개한 <Large Language Models Are Human-Level Prompt Engineers> 연구로 제안된 방식 입니다.
LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS.pdf4.085477MB
APE는 다음과 같은 절차를 거칩니다.
1.
명령어 후보 생성: 언어 모델이 주어진 작업에 대한 여러 명령어 후보를 생성합니다.
2.
실행 및 평가: 생성된 명령어를 모델에서 실행하고 점수 함수를 기반으로 그 효과를 평가합니다.
3.
최적화: 가장 효과적인 명령어를 선별하고 개선하여 언어 모델의 성능을 제로샷 방식으로 향상시킵니다.
APE는 수동으로 만든 프롬프트보다 우수한 성능을 보여줄 뿐만 아니라, 'step-by-step한 프롬프트를 능가하며, 언어 모델이 다양한 작업에서 더 효과적인 연쇄 추론을 이끌어내는데 도움을 줍니다. 이는 CoT(Chain of Thought)와 같은 기존 방법보다 더 향상된 접근 방식을 제공합니다.
예를 들어, APE를 사용하여 수학 문제 해결을 위한 명령어를 생성할 때, 모델은 다음과 같은 단계를 거치게 됩니다:
문제: "두 수의 합이 15이고 그 차가 3인 두 수는 무엇인가요?"
명령어 후보 생성: "우선 간단한 식을 설정해 봅시다." / "두 수를 x와 y라고 합시다."
실행 및 평가: "x + y = 15"와 "x - y = 3"의 식을 설정하고 해결합니다.
최적화: 가장 정확한 답변을 도출한 방법을 선택하여 다른 비슷한 유형의 문제에 적용합니다.
APE를 사용하는 이러한 프로세스는 언어 모델을 통해 더 정확하고 효율적인 답변을 생성하게 하며, 사용자에게 보다 나은 경험을 제공합니다. APE는 명령어 후보를 생성하고 평가하여 최적의 명령어를 선택하는 과정을 자동화하여 인간 엔지니어의 작업을 줄이고, 언어 모델의 성능을 향상시키는 데 중요한 역할을 합니다.
최근에는 프롬프트 자체를 LLM에게 직접 작성해 달라고 하는 사례도 늘어나서 ... 효용감적으론 추론이 많이 필요한 경우에만 유의미한 결과를 내지 큰 체감은 안됩니다.