고급 프롬프트 기법
ReAct Prompting
추론(Reasoning)과 행동(Acting)을 결합한 프롬프트 패턴입니다. Agent 시스템에서 핵심적으로 사용됩니다. 실제 사용 예시:Tree-of-Thought (ToT)
여러 추론 경로를 동시에 탐색하고, 가장 유망한 경로를 선택하여 진행합니다. 정답이 불명확한 복잡한 문제에 효과적입니다.| 단계 | 설명 | 예시 |
|---|---|---|
| 확장 | 여러 가능한 추론 경로 생성 | 경로A: 매출 기준 분석, 경로B: 고객 수 기준, 경로C: 이익률 기준 |
| 평가 | 각 경로의 유망성 점수 부여 | A: 7/10, B: 5/10, C: 8/10 |
| 선택 | 최적 경로 선택하여 계속 진행 | 경로C 선택 → 다음 단계 탐색 |
Self-Consistency
동일 질문에 여러 번 추론하고, 가장 빈번한 답을 최종 결과로 채택 합니다.Structured Output (JSON Mode)
LLM 출력을 JSON 등 구조화된 형식으로 제한합니다.주의 JSON Mode를 사용할 때는 반드시 출력 스키마를 명시하세요. 스키마 없이 “JSON으로 응답해”라고만 하면 불안정한 출력이 발생할 수 있습니다.
Prompt Chaining (프롬프트 체이닝)
하나의 프롬프트로 처리하기 어려운 복잡한 작업을 여러 단계의 프롬프트로 분해 하여 순차적으로 실행하는 기법입니다. 각 프롬프트의 출력이 다음 프롬프트의 입력이 됩니다. 실제 사용 예시 (3단계 체이닝):| 상황 | 단일 프롬프트 | 체이닝 |
|---|---|---|
| 단순 분류/추출 | O | X (과잉) |
| 복합 분석+보고서 | X (품질 저하) | O |
| 다단계 검증 필요 | X | O |
| 비용 민감 | O (토큰 절약) | X (총 토큰 증가) |
참고 팁: 체이닝의 각 단계는 독립적으로 테스트하고 디버깅할 수 있습니다. 전체 파이프라인이 실패할 때 어느 단계가 문제인지 쉽게 파악할 수 있다는 것이 큰 장점입니다.
프롬프트 최적화 기법
기본기를 넘어서, 프로덕션 환경에서 비용, 성능, 품질 을 동시에 최적화하는 고급 기법들입니다.프롬프트 압축 (Prompt Compression)
긴 컨텍스트를 LLM에 전달할 때, 모든 텍스트가 동일하게 중요하지 않습니다. 프롬프트 압축 은 불필요한 토큰을 제거하여 비용을 절감하면서 정확도를 유지하는 기법입니다. 주요 방법론:| 기법 | 원리 | 토큰 절감률 | 정확도 유지율 |
|---|---|---|---|
| LLMLingua | 작은 LM으로 각 토큰의 중요도를 측정, 낮은 중요도 토큰 제거 | 40~60% | 95%+ |
| Selective Context | 정보 엔트로피 기반으로 중복/저가치 문장 제거 | 30~50% | 90%+ |
| 수동 압축 | 프롬프트에서 조사, 접속사, 반복 표현을 직접 제거 | 20~30% | 98%+ |
참고 팁: 한국어는 영어 대비 토큰 효율이 낮습니다(같은 의미에 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 원리:| 조건 | 설명 |
|---|---|
| System Prompt가 길다 | 1,000토큰 이상일 때 효과가 큼 |
| 반복 호출이 많다 | 챗봇, 배치 처리 등 동일 System Prompt 반복 사용 |
| System Prompt가 변경되지 않는다 | 캐시 히트를 위해 prefix가 동일해야 함 |
참고 Databricks에서: Foundation Model API를 통해 Anthropic Claude, OpenAI GPT 모델 호출 시 Prompt Caching이 자동 적용됩니다. System Prompt를 변경하지 않고 User Message만 바꾸는 패턴으로 설계하면 자동으로 비용이 절감됩니다.