본문으로 이동

프롬프트 엔지니어링

Conaonda Wiki
Admina7ec671ac513 (토론 | 기여)님의 2026년 8월 20일 (목) 13:19 판 (migrate: import legacy Wiki content to Vultr)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

프롬프트 엔지니어링(prompt engineering)은 대규모 언어 모델에 입력하는 프롬프트(지시문)를 설계하고 개선하여 원하는 출력을 얻는 실무이다. 모델의 파라미터를 변경하지 않고 텍스트 입력만으로 모델의 동작을 제어한다는 점에서, LLM 애플리케이션 개발의 가장 기본적인 계층에 해당한다.

개요

프롬프트는 모델에게 주어지는 역할, 지시, 문맥, 예시, 출력 형식을 담은 텍스트이다. 프롬프트 엔지니어링은 이 텍스트를 작성하고, 평가하고, 수정하는 반복 과정이다. 모델 출력은 확률적이므로, 프롬프트의 효과는 개별 체감이 아니라 평가 데이터셋을 통한 측정으로 판단해야 한다.

프롬프트만으로 해결할 수 있는 문제에는 한계가 있다. 모델이 알지 못하는 정보, 실시간 정보, 외부 시스템과의 상호작용, 여러 단계의 검증이 필요한 작업은 프롬프트만으로는 부족하며, 하네스 엔지니어링이나 루프 엔지니어링의 영역으로 넘어간다.

핵심 개념

프롬프트의 구성 요소

  • 지시(instruction): 모델이 수행할 작업을 명확하게 설명한다.
  • 문맥(context): 작업에 필요한 배경 정보를 제공한다.
  • 예시(few-shot): 입력-출력 쌍을 제시해 원하는 패턴을 보여준다.
  • 출력 형식: JSON, 표, 목록 등 출력의 구조를 지정한다.
  • 제약 조건: 길이, 언어, 금지 사항 등 출력의 경계를 정한다.

주요 기법

  • 역할 부여(role prompting): 전문가 역할을 부여해 관점과 표현을 조정한다.
  • 사고 사슬(Chain-of-Thought): 중간 추론 단계를 유도해 복잡한 문제의 정확도를 높인다.
  • 자기 일관성(Self-Consistency): 여러 번 추론하게 한 뒤 다수결로 최종 답을 고른다.
  • 출력 구조화: JSON 스키마나 마크다운 형식을 지정해 후처리와 연동을 쉽게 한다.
  • 단계적 분해: 작업을 작은 단계로 나누어 각 단계를 별도로 지시한다.

프롬프트 평가와 버전 관리

프롬프트는 코드처럼 버전 관리하고 평가해야 한다. 입력-기대 출력 쌍을 모은 평가 세트를 만들어 프롬프트 변경 전후의 성능을 비교하고, 회귀(regression)를 막는다. LLM 애플리케이션에서 프롬프트의 관리와 평가는 LLMOps의 일부로 다루어진다.

한계와 고려사항

  • 프롬프트는 모델의 지식과 능력 범위를 넘어설 수 없다.
  • 프롬프트에 민감한 모델은 문구의 작은 변화에도 출력이 크게 달라질 수 있다.
  • 긴 프롬프트는 토큰 비용과 지연 시간을 늘린다.
  • 프롬프트만으로 외부 데이터를 넣고 도구를 호출하는 것은 어려우며, 하네스 엔지니어링의 영역이다.

함께 보기

출처