본문 바로가기
AI/RAG 이론

RAG 구현시 고려사항 : (4) 프롬프트 설계 및 Generator 고려사항

by 데이터 쿡북 2025. 7. 11.

4. 프롬프트 설계 및 Generator 고려사항

RAG 시스템에서 Retriever가 문서를 잘 가져오더라도, LLM이 그 문서를 정확히 이해하고 활용할 수 있도록 프롬프트를 잘 구성하는 것이 매우 중요합니다.
이 섹션에서는 프롬프트 템플릿 구성, 문서 삽입 전략, 그리고 Generator 선택 시 고려해야 할 점을 자세히 설명합니다.


✅ 1. 프롬프트 설계의 중요성

프롬프트 설계는 단순한 질문 전달이 아닌, 다음 역할을 수행합니다:

역할설명
문맥 주입 검색된 문서를 LLM이 이해할 수 있게 연결
정보 정제 중복 제거, 길이 조절 등
행동 유도 응답 형식/목표를 명확히 지시 (Instruction Prompting)
 

✅ 2. 프롬프트 구성 전략

📌 기본 구조 예시:

[사용자 질문]
- 대한민국 대통령은 누구입니까?

[문서 컨텍스트]
- 문서1: 윤석열은 2022년 대한민국 대통령으로 선출되었습니다.
- 문서2: 대한민국의 대통령은 국가원수이자 행정부 수반입니다.

[지시사항]
- 위 문서를 기반으로 정확하고 간결하게 답하세요.

📋 설계 고려사항:

항목전략
문서 순서 유사도 기준 정렬 or 최신순
구분자 삽입 각 문서를 명확히 나눠서 GPT가 혼동하지 않도록
컨텍스트 길이 제한 LLM의 최대 context window 고려 (예: GPT-4 = 128K)
질문 분리 검색용 쿼리 vs 생성용 질문 분리도 고려
 

✅ 3. Generator (LLM) 선택 시 고려사항

📌 주요 평가 기준:

항목설명
컨텍스트 수용량 얼마나 많은 문서를 넣을 수 있는가 (8K~128K)
정확도 검색된 문서를 기반으로 사실적 응답 생성 능력
추론 속도 응답 대기시간 (latency)
비용 토큰 단가, 호출 수 등에 따른 비용 구조
 

📊 주요 모델 비교:

모델특징
GPT-4o 고정밀 + 긴 컨텍스트 + 빠른 응답
Claude 3 최대 200K context 지원, 긴 문서에 적합
LLaMA 3 오픈소스 활용 가능, 경량 추론에 유리
Gemini 1.5 멀티모달 + 긴 context 지원 (텍스트+이미지)
 

✅ 4. 프롬프트 최적화 기법

기법설명
Instruction Prompting "다음 문서에 기반해 정확히 응답하세요" 같은 지시어 사용
Few-shot Prompting 예시 응답을 함께 제시
Chain-of-Thought (CoT) 단계적 추론 유도: “먼저 문맥을 요약하고, 그 후 정답을 도출하라” 등
Context Compression 문서 요약 모델을 사전 적용해 token 수 절감
 

📦 실전 적용 예시

query = "삼성전자 창립일은 언제인가요?"
docs = ["삼성전자는 1969년에 설립되었으며...", "삼성은 1969년 수원에서..."]

prompt = f"""
질문: {query}

참고 문서:
1. {docs[0]}
2. {docs[1]}

위 문서를 바탕으로 질문에 정확히 응답해주세요.
"""

response = openai.ChatCompletion.create(
  model="gpt-4o",
  messages=[{"role": "user", "content": prompt}]
)

 


🧠 팁: 프롬프트 테스트 자동화

  • 다양한 문장 구조, 문서 조합, 프롬프트 템플릿을 A/B 테스트해보는 것이 중요합니다.
  • LangChain PromptTemplate, LlamaIndex PromptHelper 같은 유틸 도구를 활용해 템플릿 자동화를 추천합니다.

📌 요약

항목핵심 요점
Prompt 구성 문서와 질문을 자연스럽게 연결하는 템플릿 구성
문서 제한 context 길이 내에서 요약 또는 선택 적용 필요
LLM 선택 context 길이, 정확도, 비용 균형 고려
전략 기법 Instruction, CoT, Compression 등 응답 품질 개선법 존재

[AI를 활용해 작성되었습니다]

댓글