업무 파일럿(업무 전문가)를 위한 프롬프트 엔지니어링: 실전 가이드 – 1. 프롬프트 엔지니어링 06. 고급 기법 1. 프롬프트 생성
1. 프롬프트 생성
-
최근 등장하는 탑 클라스 대규모 언어 모델(Large Language Models, LLMs)들은 놀랄만큼 뛰어납니다. 특히 정교한 프롬프트 엔지니어링을 통해 이러한 모델들의 잠재력을 최대한 끌어낼 수 있는데, 이렇게 해 보면 더 깜짝 놀랍니다. 결국 LLM과 협업하면서 생기는 놀람의 크기는 은 프롬프트를 잘 작성하는 것과 비례합니다.
하지만 이러한 전문성 요구는 일반 사용자들에게 진입장벽으로 작용할 수 있습니다. 이러한 문제를 해결하기 위해 자동화된 프롬프트 생성 기술이 주목받고 있으며, Automatic Prompt Engineer (APE)는 이러한 요구에 부응하는 혁신적인 접근 방식입니다.
APE가 있다고 프롬프트를 잘 작성하는 방법(프롬프트 엔지니어링)을 배우지 않거나 대충 배워도 된다는 것은 아닙니다. 업무전문가가 업무 생산성을 높이고 기존과는 다른 방법으로 업무를 수행하려면, 자동 생성된 프롬프트로 안 되는 경우를 만나게 될 수 있기 때문입니다.
- Automatic Prompt Engineer (APE)
- LLM을 활용하여 LLM을 위한 최적의 프롬프트를 생성하는 기법입니다.
- LLM은 뛰어난 성능을 보이지만, 원하는 결과를 얻기 위한 제어가 어렵다는 문제가 있습니다. 명령어(프롬프트)와 모델의 작동 방식 사이의 불일치 때문에 사용자가 원하는 결과를 얻기 위해 다양한 프롬프트를 실험해야 합니다.
- APE는 LLM을 세 가지 방식으로 활용합니다.
- 입력-출력 쌍으로 이루어진 소수의 데모를 기반으로 후보 프롬프트를 생성합니다.
- 생성된 명령어를 제어 대상 LLM에서 실행하여 점수를 매깁니다.
- 반복적인 몬테카를로 탐색을 통해 의미적으로 유사한 프롬프트 변형을 제안하여 최적의 프롬프트를 찾습니다. 즉, LLM에게 명령어 후보를 생성하도록 요청하고, 어떤 명령어가 더 유망한지 평가하도록 합니다.
- 퓨샷 학습 개선, zero-shot Chain-of-Thought 프롬프트 개선, 진실성 및 정보성과 같은 원하는 행동 유도 등에 APE를 적용할 수 있습니다.
- 예시
- 다음 과제를 가장 잘 수행하는 프롬프트를 생성해 주세요. 과제는 “[특정 과제 설명]”입니다.
다양한 프롬프트 변형을 최소 5개 이상 생성하고, 각 프롬프트에 대해 예상되는 출력과 그 이유를 설명해 주세요. 또한, 각 프롬프트의 장점과 단점을 비교 분석해 주세요. 마지막으로, 가장 효과적이라고 생각하는 프롬프트를 추천하고 그 이유를 설명해 주세요.- “[특정 과제 설명]”이 “주어진 문장을 요약해 주세요.”인 경우:
- 다음 과제를 가장 잘 수행하는 프롬프트를 생성해 주세요. 과제는 “주어진 문장을 요약해 주세요.”입니다.다양한 프롬프트 변형을 최소 5개 이상 생성하고, 각 프롬프트에 대해 예상되는 출력과 그 이유를 설명해 주세요. 또한, 각 프롬프트의 장점과 단점을 비교 분석해 주세요. 마지막으로, 가장 효과적이라고 생각하는 프롬프트를 추천하고 그 이유를 설명해 주세요.
- “[특정 과제 설명]”이 “주어진 문장을 요약해 주세요.”인 경우:
- 다음 과제를 가장 잘 수행하는 프롬프트를 생성해 주세요. 과제는 “[특정 과제 설명]”입니다.
- Automatic Prompt Engineer 핵심 아이디어를 활용해 달라고 하고, Automatic Prompt Engineer 적용할 때 지켜야 할 내용을 작성합니다. CDPE가 적용될 수 있도록, “사용자와 대화 방식으로”를 작성합니다.
- 예시
- 음식 종류를 자동 분류하는 프롬프트를 생성해 주세요. “김치찌개” 입력하면 “찌개”라고 출력하고, “미역국” 입력하면 “국” 출력하는 식이 되면 됩니다.
Automatic Prompt Engineer 핵심 아이디어를 활용해주세요.
Automatic Prompt Engineer는 LLM을 활용하여 최적의 프롬프트를 자동 생성하는 기법입니다. LLM 제어의 어려움을 해결하기 위해, APE는 다음 세 단계로 작동합니다. 1. 소수의 입출력 데모 기반 프롬프트 후보 생성, 2. 제어 대상 LLM에서 후보 프롬프트를 실행 및 점수 측정, 3. 반복적인 몬테카를로 탐색을 통해 의미적으로 유사한 프롬프트 변형을 제안하여 최적의 프롬프트 찾기다양한 프롬프트 변형을 최소 3개 이상 생성하고, 각 프롬프트에 대해 예상되는 출력과 그 이유를 설명해 주세요. 또한, 각 프롬프트의 장점과 단점을 비교 분석해 주세요. 마지막으로, 가장 효과적이라고 생각하는 프롬프트를 추천하고 그 이유를 설명해 주세요.APE 세 단계에서 사용자와의 협업이 필요할 경우 대화방식을 사용합니다.
- 음식 종류를 자동 분류하는 프롬프트를 생성해 주세요. “김치찌개” 입력하면 “찌개”라고 출력하고, “미역국” 입력하면 “국” 출력하는 식이 되면 됩니다.
- 예시
- 한계점
- 자동화 수준: APE처럼 완전 자동화된 최적화는 어려움. 사용자가 최종적으로 프롬프트를 선택하고 평가해야
- 평가 기준: LLM이 생성한 평가는 주관적일 수 있으며, 객관적인 평가 지표를 사용하기 어려움
- 사용자가 평가 기준을 제시할 수도 있어야 합니다.
- 확장성: 복잡한 작업이나 특정 도메인에 대한 프롬프트 최적화는 어려울 수 있음.