brunch

You can make anything
by writing

C.S.Lewis

by AI러 이채문 Dec 06. 2024

프롬프트 최적화를 위한 자동화 프레임워크

Automatic Prompt Engineer (APE)

Automatic Prompt Engineer (APE)는 Zhou et al. (2022)이 제안한 프레임워크로, 대규모 언어 모델(LLM)의 성능을 향상시키기 위해 최적의 프롬프트를 자동으로 생성하고 선택하는 과정을 제공합니다. 기존에는 사람이 설계한 프롬프트를 활용하는 경우가 많았지만, 이는 시간과 자원이 많이 소요되는 작업이었습니다. APE는 이러한 과정을 자동화함으로써 더 나은 성능을 달성할 수 있습니다.     

APE의 핵심은 명령어 생성과 검색 절차입니다. 이 과정은 블랙박스 최적화 문제로 정의되며, 다음과 같은 주요 단계를 포함합니다:


1. 명령어 후보 생성: LLM을 사용하여 주어진 작업에 대한 여러 명령어(프롬프트) 후보를 생성합니다.

2. 검색 및 평가: 생성된 명령어를 실행하여 결과를 평가하고, 성능이 가장 높은 명령어를 선택합니다.     

특히 APE는 제로샷 체인 오브 소트(Zeroshot ChainofThought, CoT) 프롬프트를 통해 복잡한 작업에서 높은 성능을 보였습니다. 예를 들어, "우리가 올바른 답을 가지고 있는지 확인하기 위해 단계적으로 이 문제를 해결합시다"라는 프롬프트는 사람이 설계한 프롬프트보다 MultiArith와 GSM8K 벤치마크에서 우수한 성능을 기록했습니다.               



 APE의 작동 방식    

APE의 작동 방식은 다음과 같이 요약할 수 있습니다:

     

 1) 명령어 후보 생성

 대규모 언어 모델(예: GPT3)을 사용하여 작업 설명 및 출력 예시를 기반으로 다양한 명령어 후보를 생성합니다.

 예시:

   입력: "write the antonym of the word."

   출력 후보: "give the antonym of the word provided.", "write the opposite of the word given."    

 

 2) 후보 실행 및 평가

 생성된 각 명령어를 실행한 결과를 평가하여 점수를 부여합니다.

 점수는 모델의 출력 정확성 및 논리적 일관성에 따라 결정됩니다.   

  

 3) 최적 프롬프트 선택

 평가 점수가 가장 높은 명령어를 선택하여 최종 프롬프트로 채택합니다.

 예를 들어, 아래의 후보 중 "write the antonym of the word."가 가장 높은 점수를 받아 선택됩니다:

   "write the antonym of the word." → 점수: 0.26

   "give the antonym of the word provided." → 점수: 0.28

   "reverse the input." → 점수: 0.86              




더 자세하게 봅시다.

이 이미지는 LLM(Large Language Models)을 세 가지 다른 방식으로 활용하는 프레임워크를 보여주고 있습니다:


1. LLMs as Inference Models (추론 모델로서의 LLM):

- 왼쪽 상단의 파란색 박스에 표시

- Professor Smith에게 주어진 지시사항과 반응을 보여주는 예시 포함

- 입력예시: prove/disprove, on/off 등의 데모 케이스를 포함


2. LLMs as Scoring Models (점수 매기기 모델로서의 LLM):

- 오른쪽 상단의 분홍색 박스에 표시

- 특정 작업(예: "단어의 반의어 쓰기")에 대한 다양한 응답의 확률을 계산

- 입력 "direct"에 대한 출력 "indirect"의 예시를 보여줌


3. LLMs as Resampling Models (재샘플링 모델로서의 LLM):

- 왼쪽 하단의 보라색 박스에 표시

- 의미는 유지하면서 지시문의 변형을 생성

- [Optional]로 표시되어 있어 필수 구성요소는 아님을 나타냄


중앙의 평가 프로세스:

- 제안된 여러 응답들의 점수를 매김

- Log Probability를 기준으로 평가

- 각 응답에 대한 점수 예시:

  * "-0.26": "write the antonym of the word."

  * "-0.28": "give the antonym of the word provided."

  * "-0.86": "reverse the input." (X로 표시되어 부적절함)

  * "-1.08": "to reverse the order of the letters" (X로 표시되어 부적절함)

  * "-0.16": "write the opposite of the word given." (별표로 표시되어 좋은 대안임)


이 프레임워크는 LLM이 단순히 텍스트를 생성하는 것을 넘어, 추론, 평가, 재구성의 복합적인 작업을 수행할 수 있음을 보여줍니다. 특히 응답의 품질을 확률적으로 평가하고, 부적절한 응답을 필터링하는 과정이 잘 설명되어 있습니다.




APE의 성능: 벤치마크 결과   

 

APE는 사람 설계 프롬프트를 능가하는 성능을 보였습니다. 아래는 주요 성능 비교 결과입니다:               

이 테이블은 Zero-shot Chain of Thought (CoT) 트리거 프롬프트의 효과성을 보여주는 연구 결과를 나타냅니다. 주요 내용을 분석해보겠습니다:


1. 프롬프트 카테고리:

- APE (Automatic Prompt Engineering) 방식

- Human-Designed (사람이 설계한) 프롬프트


2. 성능 비교:

- APE가 만든 프롬프트가 82.0%로 가장 높은 정확도를 보임

- Human-Designed 프롬프트들은 78.7%에서 45.7%까지 다양한 성능을 보임

- 트리거 프롬프트 없는 기본 Zero-shot은 17.7%로 가장 낮은 성능을 보임


3. Human-Designed 프롬프트 패턴:

- 대부분 "Let's..." 로 시작

- 'step by step'이라는 표현이 자주 등장

- 논리적 사고나 단계별 접근을 강조하는 경향


4. 성능 순위:

- 상위권: "Let's work this out..." (82.0%), "Let's think step by step" (78.7%)

- 중위권: "Let's solve this problem by splitting it into steps" (72.2%)

- 하위권: "Before we dive into the answer" (55.7%), "The answer is after the proof" (45.7%)


5. 주요 시사점:

- 자동 생성된 프롬프트(APE)가 사람이 만든 프롬프트보다 더 효과적일 수 있음

- 단계별 접근을 명시적으로 언급하는 프롬프트가 더 좋은 성능을 보임

- 프롬프트 엔지니어링이 모델 성능에 큰 영향을 미침 (17.7% → 82.0%)

이 결과는 적절한 프롬프트 설계가 AI 모델의 성능을 크게 향상시킬 수 있으며, 자동화된 프롬프트 생성 방식이 효과적일 수 있다는 것을 보여줍니다.


위 결과는 APE 프롬프트가 사람이 설계한 프롬프트보다 더 나은 성능을 보임을 나타냅니다. 특히, 체계적인 추론을 요구하는 문제에서 APE가 유리합니다.   


           


 APE의 활용 분야  

   

 1) 자연어 처리 (NLP)

 텍스트 분류, 감정 분석, 번역과 같은 작업에서 최적의 프롬프트를 자동으로 생성하여 성능을 극대화할 수 있습니다.     


 2) 데이터 과학

 대규모 데이터셋의 분석 및 처리에 최적화된 프롬프트를 생성하여 작업 효율성을 향상시킵니다.    

 

 3) 교육

 학생들에게 적합한 질문 형식을 자동으로 생성하여 학습 경험을 개인화할 수 있습니다.    

 

 4) 비즈니스 애플리케이션

 고객 지원, 마케팅, 보고서 생성 등 다양한 분야에서 효율적인 텍스트 생성 프롬프트를 제공하여 업무 생산성을 높입니다.  


             


 APE를 학습하려면?    

 

 기본 리소스

 논문: https://arxiv.org/abs/2203.14465

 체인 오브 소트(CoT) 프롬프팅: https://arxiv.org/abs/2205.11916  


 프롬프트 튜닝 관련 학습

 AutoPrompt: 프롬프트를 자동으로 생성하는 경사 유도 검색 방식.

 Prompt Tuning: 모델 미세 조정을 최소화한 학습 가능한 소프트 프롬프트 활용.     


 실습 환경

 Hugging Face에서 프롬프트 엔지니어링을 실험할 수 있는 모델 제공.

 OpenAI Codex API를 활용해 APE 기법을 실습.               

APE는 프롬프트 설계의 자동화를 통해 대규모 언어 모델의 잠재력을 극대화하는 혁신적인 프레임워크입니다. 앞으로 더욱 다양한 분야에서 활용될 가능성이 높습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari