프롬프트 엔지니어링
개요¶
프롬프트 엔지니어링(Prompt Engineering)은 대규모 언어 모델(LLM)을 특정 작업에 맞게 활용하기 위해 입력 프롬프트를 설계하고 최적화하는 기술입니다. Liu et al. (2021) 이 방법은 모델의 매개변수를 변경하지 않고, 사전 훈련된 모델의 성능을 다양한 작업에 활용할 수 있도록 합니다. 프롬프트 엔지니어링은 모델 훈련 비용을 크게 줄이며, 작업 간 전환을 빠르고 유연하게 만드는 데 기여합니다.
기본 개념¶
프롬프트는 모델에 제공되는 입력 형태를 의미합니다. 프롬프트 엔지니어링은 이 입력을 최적화하여 모델이 원하는 출력을 생성하도록 유도하는 과정입니다. 예를 들어, 텍스트 요약 작업에서 "다음 텍스트를 요약해 주세요:"라는 문구를 입력 데이터 앞에 추가하면 모델이 요약 작업에 맞는 출력을 생성하게 됩니다.
프롬프트 엔지니어링의 구성 요소¶
프롬프트 설계(prompt design)
작업의 요구에 맞게 텍스트를 구성하고, 맥락과 지침을 명확히 전달.
프롬프트 최적화(prompt optimization)
모델의 출력 품질을 개선하기 위해 입력 텍스트의 길이, 구조, 어휘 등을 조정.
프롬프트 엔지니어링의 주요 특징¶
모델 매개변수 고정
프롬프트 엔지니어링은 사전 학습된 모델의 매개변수를 변경하지 않습니다.
새로운 작업에 대해 추가 훈련이 필요하지 않아 비용과 시간이 절약됩니다.
유연성
동일한 모델에 대해 프롬프트를 조정하기만 하면 여러 작업에 적용 가능합니다.
예: 텍스트 요약, 감정 분석, 번역 등 다양한 작업.
빠른 작업 전환
작업별 모델을 새로 생성할 필요 없이 프롬프트만 설계하면 즉시 사용 가능.
프롬프트 엔지니어링의 장점¶
비용 효율성
모델을 추가 훈련하지 않으므로 하드웨어 및 계산 자원에 대한 요구가 낮음.
빠른 적용성
복잡한 작업이라도 프롬프트만 조정하면 즉시 모델 응용이 가능.
범용성
다양한 작업과 도메인에 활용 가능하며, 새로운 데이터셋에도 쉽게 적용.
저장 공간 절약
작업별로 새로운 모델을 저장할 필요가 없어 메모리 요구량이 적음.
프롬프트 엔지니어링 기법¶
프롬프트 엔지니어링의 다양한 기법들은 다음과 같습니다. Sahoo et al. (2024)
지시형 프롬프트(Instruction Prompting)
모델에 명확한 지시를 제공하여 작업 수행을 유도.
예: “아래 텍스트를 한국어로 번역하세요.”
샘플 기반 프롬프트(Example Prompting)
작업에 대한 예시를 포함하여 모델이 작업 방식을 학습.
예: “영어 문장을 한국어로 번역합니다. 예: Hello -> 안녕하세요.”
문맥 추가 프롬프트(Contextual Prompting)
입력 데이터의 문맥을 확장하여 모델이 보다 정확한 출력을 생성하도록 지원.
예: 긴 문장을 포함하거나 관련 정보를 첨부.
한계 및 고려 사항¶
복잡한 작업의 성능 한계
프롬프트만으로는 복잡한 작업에서 기존 Fine-Tuning 수준의 성능을 달성하기 어려울 수 있음.
고도로 특화된 작업에서는 미세조정이 필요할 수도 있음.
프롬프트 설계의 난이도
작업에 따라 효과적인 프롬프트를 설계하는 데 경험과 노하우가 요구됨.
출력의 불확실성
동일한 프롬프트라도 모델이 생성하는 출력이 일관되지 않을 수 있음.
결론¶
프롬프트 엔지니어링은 대규모 언어 모델의 잠재력을 효과적으로 활용할 수 있는 간단하고 유연한 방법을 제공합니다. 특히, 자원 제한 환경이나 다양한 작업을 빠르게 처리해야 하는 상황에서 매우 유용합니다. 그러나 복잡한 태스크에서 성능을 극대화하기 위해서는 프롬프트 설계의 노하우와 다른 기법과의 병합이 필요할 수 있습니다.
- Liu, P., Yuan, W., Fu, J., Jiang, Z., Hayashi, H., & Neubig, G. (2021). Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing. https://arxiv.org/abs/2107.13586
- Sahoo, P., Singh, A. K., Saha, S., Jain, V., Mondal, S., & Chadha, A. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. https://arxiv.org/abs/2402.07927