[논문] LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS
Abstract
LLm은 뛰어난 성능을 보여주는 와중에, 사용되는 프롬프트에 크게 의존하고 있습니다. 그리고 이중 가장 효과적이라고 알려져있는 프롬프트는 주로 사람에 의해 작성이 되었습니다. 본 논문에서는 고전적인 프로그램 합성과 프롬프트 엔지니어링에 영감을 받아, 자동 프롬프트 엔지니어(Automatic Prompt Engineer, APE)를 제안합니다. 프롬프트를 "프로그램"으로 취급하며, LLM이 제안한 여러 프롬프트 후보들을 비교하여 선택된 스코어 함수를 최대화하기 위해 최적화합니다. 선택된 프롬프트의 품질을 평가하기 위해 다른 LLM의 프롬프트 결과에 따라 제로샷 성능을 평가합니다. 여러 테스트 결과 인간의 프롬프트와 동급 혹은 그이상의 결과가 도출되었습니다.
Introduction
일반적인 관점에서 '어떻게 LLM을 우리가 원하는데로 출력하게 할 것인가?'라는 질문의 답변은 Fine-tuning(파인튜닝), In-context learning(문맥학습), 여러 형태의 프롬프트 생성(several forms of prompt generation) 등의 방법으로 답을 해왔습니다. 하지만 순수한 언어 프롬프트만으로는 원하는 결과를 얻을 수 없는 경우가 있습니다. 따라서, 인간은 특정 모델과의 호환성을 잘 모르기 때문에 다양한 프롬프트를 실험해야 원하는 답을 얻을 수 있습니다. 왜나면 LLM 즉 이 프로그램이 어떻게 처리되는지는 인간에게 직관적이지 않으며, 답변의 품질은 실행하고 나서 알 수 있기 때문입니다.
논문에서 프롬프트를 생성하고 검증하는 데에 드는 인력을 줄이기 위해 LLM(Large Language Model)을 사용하는 새로운 알고리즘을 제안합니다. 이 알고리즘은 LLM을 사용하여 Instruction을 자동으로 생성하고 선택하는 것을 목표로 합니다.
먼저 Instruction proposal candidate set을 LLM으로 생성합니다. 그후 생성된 candidate set에 대해 scoring function을 통해 점수를 매깁니다. 그것들중 K% high score candidates에 대해 filtering하며 (Proposal candidate set 생성이 실패할 경우, candidate set을 resampling) ,조건이 충족된 candidate set 중 전체 training data에 대해 score가 가장 높은 instruction을 최종적으로 선택
Instrction Induction : LLM 이 주어진 예제에 적합한 Instruction을 추론할 수 있는지를 평가하기 위한 Task입니다.
N개의 demonstration이 주어졌을 때, LLM을 통해 적잘한 instruction을 생성하고 Execution Accuracy로 Instruction의 품질을 평가

Excution Accuracy: 평가해야 하는 Instruction과 test data의 input이 주어졌을 때, 정답 output 생성 여부로 계산

Natural Language Program Synthesis Using LLMs
ρ = Instruction, {(Q,A)} = dataset(input/output demonstration sample)
여러 Instruction들과 demonstration 이 주어졌을 때, Dataset 에 대한 평균 Score가 가장 높은 Instruction을 선택합니다.
예시)
- 작업: 이미지 설명
- 초기 지시문 후보: "이 사진을 설명하라", "무엇을 볼 수 있나요?", "이미지에 대해 더 알려주세요"
- 반복 과정: 각 지시문의 성능 평가 → "이 사진을 설명하라"가 가장 높은 점수 획득 → 지시문 업데이트 및 리샘플링 → "이 사진에서 가장 중요한 것을 설명하라"로 개선
- 최종 지시문: "이 사진에서 가장 중요한 것을 설명하라"
3.1 Initial Proposal Distributions
LLM을 사용하여 input/output demostration이 주어졌을 때, instruction set을 생성
3.2 Score Functions
주어진 Dataset내에서 생성된 instruction 을 평가할 수 있는 scoring function이 필요합니다.
A = Desired answer
Excution Accuracy
ρ(Instruction) 과 Q(qustion)을 M(model)에 넣었을 때, 그것이 desicred answer인 A와 같다면 1 아니라면 0
Log probability
ρ(Instruction) 과 Q(qustion)이 주어진 상황에서 desicred answer인 A가 발생활 확률
( 모델이 예측한 각 단어(또는 토큰)의 확률의 곱 )에 log를 취한 값 (0~1사이 이기때문에 값은 음수)
Efficient score estimation
모든 instruction candidate set에 대해 전체 training data에 대한 score computation cost를 줄여야 하기 때문에,
Computation resource를 high quality candidate에 많이 투입하고, low quality candidate에는 적게 투입합니다.
1) Training dataset의 small subset에 대해서 모든 candidate set을 scoring
2) Score가 특정 threshold를 넘는 candidates를 training dataset의 겹치지 않는 다른 subset에 대해 scoring하여 score의 average update
조건(특정 threshold)을 충족하는 small candidate set의 남을 때까지 1), 2)과정을 반복합니다.
마지막 candidate set에 대해서는 전체 training data에 대한 score를 계산하여 가장 점수가 높은 instruction 선택합니다.
위 방법을 통해 high-quality samples에 대한 computation cost는 유지하고 low-quality samples에 대한 computation cost는 대폭 감소시킬 수 있습니다.
3.3) Iterative Proposer Distrubutions
Proposal set μ의 diversity가 부족하거나 모든 candidate이 high score를 달성하지 못할 경우 good proposal set μ 생성 실패 했을 때는 Iterative Monte Carlo Search라는 방법을 실행합니다.
Iterative Monte Carlo Search : Low score candidates를 filtering한 후, high score를 가진 candidates과 비슷한 instruction을 생성하는데 도움이 되는 prompting
이러한 방식을 통해 proposal set μ의 전반적인 quality를 향상시킬 수 있습니다. 하지만 computation cost가 높기 때문에 일반적인 APE를 default로 사용하게 됩니다.
Result
24개의 task에 대해서 이전 논문인 greedy값보다 높고, human값에 근접한 것을 알 수 있습니다.