본문 바로가기

논문 리뷰

LARGE LANGUAGE MODELS AS OPTIMIZERS by Google DeepMind

1. Introduction

Optimization(최적화)는 각 task에 따라 커스터마이즈되어야 하는 매우 중요한 단계이다. 본 연구는 Optimization by PROmpting(OPRO)를 제안하며, LLM을 옵티마이저로 활용하여 간단하고 효과적으로 최적화를 진행할 수 있는 방법이라고 소개한다. 최적화 문제를 프로그래밍된 solver를 이용하는 대신, 자연어로 최적화 문제를 묘사한 다음 problem 묘사와 이전에 찾은 solution으로부터 LLM이 새로운 solution을 만들어낼 수 있도록 하는 것이다.  최적화에서의 LLM의 잠재력을 보여주기 위해 본 연구에서는 먼저 선형 회귀와 외판원 문제를 적용해본다.(본 요약에서는 선형 회귀만 설명하겠다) 이후, LLM의 프롬프트 최적화 능력을 보여주는데, 이 최적화 목적은 task accuracy를 최대화하는 프롬프트를 찾는 것이다. 이때 옵티마이저 역할을 하는 LLM에게 주는 프롬프트를 meta-prompt라고 하고, meta-prompt는 두 가지 핵심 정보를 담고 있다. 먼저 첫 번째는 이전에 만들어진 프롬프트와 그 training accuracies다. 두 번째는 최적화 문제 설명이다. 또한 LLM이 이 두 정보와 목표 output 포멧 사이의 관계를 이해할 수 있도록 설명을 제공한다. 본 연구에서 OPRO는 LLM이 최적화 단계별로 새로운 프롬프트를 생성할 수 있게 한다. 처음 task accuracy는 낮은 상태에서 최적화 과정을 통해 task accuracy를 향상시키는 것을 보여준다. OPRO 프레임워크의 개요는 다음 이미지와 같다.

프롬프트를 optimize할 때는 GSM8K와 Big-Bench Hard(BBH)라는 벤치마크를 사용한다.

 

2. OPRO: LLM as the OPTIMIZER

1번에서의 그림과 같이, 각 최적화 단계에서 프롬프트가 생성된 후 평가되고, 만약 LLM이 더 나은 최적화 점수를 내는 솔루션을 제안하지 못하거나 optimization steps 횟수가 최종 단계에 도달하면 최적화 과정은 종료된다.

 

2.1. Desirables of optimization by LLMs

LLM의 장점들이다.

- Making use of natural language descriptions: LLM은 자연어를 이해할 수 있다.

- Trading off exploration and exploitation: LLM을 이용할 때 탐사(새로운 방법을 시도해보는 것)와 활용(기존에 있는 방법을 시도하는 것)을 적절히 잘 써야 한다.

 

2.2. Meta-Prompt Design

최적화용 LLM의 input으로서 meta-prompt는 두 개의 중요 부분으로 나뉜다.

- Optimization problem description: 목표와 solution constraints 등을 설명한 것으로, 프롬프트 최적화의 경우 "더 높은 정확도를 낼 수 있는 새로운 instruction을 만들어줘"와 같은 텍스트를 말한다. 이런 instruction을 meta-instructions라고 부른다. 또한  “지침은 간결하고 일반적으로 적용 가능해야 합니다”와 같은 맞춤형 메타 지침을 제공할 수도 있다.

- Optimization trajectory: 과거의 solutions와 그 최적화 점수 오름차순 쌍으로 meta-prompt를 구성하여 context 내의 패턴을 파악할 수 있는 LLM의 특징을 이용하여 good solution들을 기반으로 solution을 구축할 수 있도록 한다.

2.3. Solution Generation

meta-prompt를 입력으로 하여 LLM은 새로운 solution을 만든다. 이 단계에서 주요 최적화 challenge는 다음과 같다.

- Optimization stability: 높은 점수를 얻는 솔루션들을 안정적으로 만들 수 있게 해야 한다. 안정성을 높이기 위해 LLM이 각 최적화 단계에서 여러 개의 solution을 만들어서 평가가 가능하도록 한다.

- Exploration-exploitation trade-off: LLM의 샘플링 temperature를 조정하여 exploration과 exploitation 간의 균형을 맞춘다. 낮은 온도는 exploit을, 높은 온도는 explore를 장려한다.

 

3. Motivating Example: Mathematical Optimization

수학적 최적화를 위해 LLM을 이용하는 예시를 실험해본다.

3.1. Linear Regression

선형 회귀 문제에서, 목적은 input 변수에 따라 가장 응답을 잘 예측하는 선형 계수를 찾는 것이다. 본 연구에서는, y = w_true*x + b_true + e(가우시안 노이즈)의 식에서 x가 1~50까지 증가할 때의 예측을 진행한다. 그 meta-prompt의 예시는 다음과 같다.

파란색 글씨가 solution-score 쌍이다. 모델별, w_true/b_true 별 결과는 다음과 같다.

 

4. Application: Prompt Optimization

4.1 Problem Setup

이 문제는 input과 output이 모두 text 형식인 자연어 문제를 위한 프롬프트 최적화에 집중한다. 이 task는 training, test 데이터셋으로 나타내어지고, training set은 training accuracy를 계산하는 데 이용되고 test set은 최적화 단계가 끝난 이후 test accuracy를 계산하는 데 이용된다. 옵티마이저 LLM의 output은 instruction으로, 모든 예시에 대한 질문 파트와 scorer LLM의 프롬프트로 구성된다. 각 instruction의 position을 구상하면 다음과 같다.

- Q_begin: 원본 질문 전에 추가되는 설명

- Q_end: 원본 질문 후에 추가되는 설명

- A_begin: scorer LLM output의 시작에 추가되는 설명. 프롬프트는 QA 쌍으로 저장되며, 명령어 튜닝 없이 적용된다.

이 모든 구조의 meta-prompt 전체 예시는 아래와 같다.

4.2  Meta-Prompt Design

- Optimization problem examples: 문제 설명에는 training set에서 task를 묘사하기 위해 가져온 몇 개의 예시가 포함된다. 랜덤으로 샘플링하거나 이전의 instruction에서 선택한다.

- Optimization trajectory: 최적화 경로에느 이전 최적화 step에서 만들어진 instruction과 그 점수가 포함된다. 이 이전 instruction과 점수는 오름차순으로 정렬된다. 이때의 점수는 prompt optimization의 training accuracy이다. 가장 점수가 높은 instruction만 keep한다.

- Meta-instructions: 최적화 목표를 설명하고 모델이 어떻게 위의 정보를 이용할 수 있는지를 설명하는 옵티마이저 LLM을 위한 설명인 meta-instructions를 추가한다. 이는 또한 generated instruction format을 더 쉽게 파싱하는 기능도 한다.

 

5. Prompt Optimization Experiments

5.1 Evaluation Setup

- Models: Optimizer LLM으로는 Pre-trained PaLM 2-L, text-bison, gpt-3.5-turbo, gpt-4 등을 이용했고, Scorer LLM으로는 Pre-trainied PaLM 2-L과 text-bison을 이용했다. Pre-trained PaLM 2-L이 scorer로 작용하면서, optimizer LLM은 A_begin instruction을 만들고, 또 다른 scorer text-bison은 instruction-tuned되어, optimizer LLM은 Q_begin과 Q_end instruction을 만든다.

- Benchmarks: GSM8K와 BBH를 사용한다. GSM8K는 7473개의 training sample과 1319개의 test sample을 가지고 있는 수학 단어 문제 평가 기준이고, CoT 프롬프트 기술과 zero-shot instruction으로 "Let's think step by step"이 적용된다. BBH는 23개의 BIG-Bench tasks의 군집으로, 넓은 범위의 주제를 포함한다. 각각의 task는 총 최대 250개의 예시를 포함한다.

- Implementation datails: scorer LLM이 평가할 때는 temperature을 0으로, optimizer LLM이 instruction을 생성할 때는 temperature를 1로 설정하여 다영하고 창의적인 instruction을 생성할 수 있게 했다. 각 최적화 step에서, optimizer LLM을 meta-prompt로 8번 적용시켜 8개의 instruction을 만들게 했고, 이 instruction과 score를 meta-prompt의 optimization trajectory에 넣었다. 또한 각 step의 meta-prompt는 최고의 20개의 instruction을 포함하고, 3개의 training set으로부터 랜덤하게 선정한 예시를 포함한다. (이런 개수 파라미터들도 연구했다고 한다)

 

5.2. Main Results

1. GSM8K

 

초기 점수는 initial instruction이 "Let's solve the problem"일 때 training 정확도가 60.5였고, Q_begin이 비어 있을 때 57.1이었다. 실험 결과 meta-prompt를 통한 optimization이 진행될수록 정확도가 전반적으로 증가했고, PaLM 2-L 등에서 A_begin으로 나타난 "Take a deep breath and work on this problem step-by-step."등을 사용했을 때 높은 정확도를 보였다. 그 결과를 표와 그래프로 나타내면 아래와 같다.

그 결과 최적화 LLM에 따라 발견되는 명령어 스타일은 매우 다양하다는 것(PaLM 2-L-IT와 텍스트-바이슨은 간결한 반면, GPT는 길고 상세함)과 일부 상위 명령어에는 “단계별”이라는 문구가 포함되어 있지만, 대부분의 다른 명령어는 다른 의미로 비슷하거나 더 나은 정확도를 달성한다는 것 등을 발견했다고 한다.

 

2. BBH

 

BBH에서는 initial instruction에서 optimization은 빈 문자열에서 시작하고, 기존 정확도는 64였다. OPRO를 적용한 결과 GSM8K와 마찬가지로 성능이 향상되었다고 한다. 예를 들어 "Consider the following when editing artist or movie names humorously:"와 같은 말을 사용했을 때 정확도가 72였다. 그 결과를 그래프로 나타내면 다음과 같다.

이외에도 결론으로 의미론적으로 유사한 명령어라도 매우 다른 정확도를 달성할 수 있다는 것 등을 발견했다고 한다. 더 많은 프롬프트에 따른 결론은 논문을 참고하자.