이 문서는 GenAI 개념 섹션의 일부입니다.
고급 프롬프트 기법
ReAct Prompting
추론(Reasoning)과 행동(Acting)을 결합한 프롬프트 패턴입니다. Agent 시스템에서 핵심적으로 사용됩니다. 실제 사용 예시:Tree-of-Thought (ToT)
여러 추론 경로를 동시에 탐색하고, 가장 유망한 경로를 선택하여 진행합니다. 정답이 불명확한 복잡한 문제에 효과적입니다.Self-Consistency
동일 질문에 여러 번 추론하고, 가장 빈번한 답을 최종 결과로 채택 합니다.Structured Output (JSON Mode)
LLM 출력을 JSON 등 구조화된 형식으로 제한합니다.주의 JSON Mode를 사용할 때는 반드시 출력 스키마를 명시하세요. 스키마 없이 “JSON으로 응답해”라고만 하면 불안정한 출력이 발생할 수 있습니다.
Prompt Chaining (프롬프트 체이닝)
하나의 프롬프트로 처리하기 어려운 복잡한 작업을 여러 단계의 프롬프트로 분해 하여 순차적으로 실행하는 기법입니다. 각 프롬프트의 출력이 다음 프롬프트의 입력이 됩니다. 실제 사용 예시 (3단계 체이닝):참고 팁: 체이닝의 각 단계는 독립적으로 테스트하고 디버깅할 수 있습니다. 전체 파이프라인이 실패할 때 어느 단계가 문제인지 쉽게 파악할 수 있다는 것이 큰 장점입니다.
프롬프트 최적화 기법
기본기를 넘어서, 프로덕션 환경에서 비용, 성능, 품질 을 동시에 최적화하는 고급 기법들입니다.프롬프트 압축 (Prompt Compression)
긴 컨텍스트를 LLM에 전달할 때, 모든 텍스트가 동일하게 중요하지 않습니다. 프롬프트 압축 은 불필요한 토큰을 제거하여 비용을 절감하면서 정확도를 유지하는 기법입니다. 주요 방법론:
수동 압축 실전 예시:
참고 팁: 한국어는 영어 대비 토큰 효율이 낮습니다(같은 의미에 1.5~2배 토큰). 프롬프트의 지시 부분은 간결하게, 컨텍스트 부분은 충실하게 유지하는 것이 최적 전략입니다.
Dynamic Few-shot
고정된 예시 3개를 항상 사용하는 것이 아니라, 사용자 입력과 가장 유사한 예시를 동적으로 선택 하는 기법입니다. Databricks Vector Search와 결합하면 강력한 효과를 발휘합니다. 정적 Few-shot vs Dynamic Few-shot:- 예시 데이터셋(질문-답변 쌍 수백~수천 개)을 Delta 테이블에 저장
- Databricks Vector Search로 예시를 임베딩하여 인덱스 생성
- 런타임에 사용자 입력으로 유사 예시 Top-3 검색
- 검색된 예시를 프롬프트에 동적 삽입
성공 성능 차이: 정적 Few-shot 대비 Dynamic Few-shot은 평균 20~30% 정확도 향상을 보입니다. 특히 도메인이 넓고 질문 유형이 다양한 서비스에서 효과가 큽니다.
Meta-Prompting
LLM에게 “이 작업에 최적인 프롬프트를 생성해줘” 라고 요청하는 기법입니다. 사람이 처음부터 프롬프트를 설계하는 것보다 효율적일 수 있습니다. 3단계 Meta-Prompting 프로세스:주의 주의: Meta-Prompting으로 생성된 프롬프트도 반드시 실제 데이터로 테스트하세요. LLM이 “좋은 프롬프트”라고 판단하는 것과 실제로 좋은 결과를 내는 것은 다를 수 있습니다.
Prompt Caching
동일한 System Prompt를 반복 호출할 때, 캐싱을 활용하면 비용을 50% 이상 절감 할 수 있습니다. Prompt Caching 원리:참고 Databricks에서: Foundation Model API를 통해 Anthropic Claude, OpenAI GPT 모델 호출 시 Prompt Caching이 자동 적용됩니다. System Prompt를 변경하지 않고 User Message만 바꾸는 패턴으로 설계하면 자동으로 비용이 절감됩니다.