파인튜닝, 검색 증강 생성(RAG), 그리고 일반적인 프롬프팅은 대규모 언어 모델(LLM)의 서로 다른 문제 유형을 해결합니다. 잘못된 방법을 선택하면 GPU 자원을 낭비하고, 클라우드 비용을 불필요하게 높이며, 여전히 사용자에게 잘못된 답변을 제공하게 됩니다. 아래는 개발자가 자신의 사용 사례에 어떤 도구가 적합한지 결정하고, 필요할 때 이들을 어떻게 조합할 수 있는지 안내하는 단계별 프레임워크입니다.
세 가지 레버
| 무엇이 변하는가 | 작동 방식 | 일반적인 용도 |
|---|---|---|
| RAG | 추론 시점에 모델의 컨텍스트에 외부 사실을 추가 | 가격 업데이트, 최신 정책 문서 추출, 비공개 데이터 인용 |
| Fine-tuning | 스타일, 형식 또는 반복적인 동작을 변경하기 위해 모델의 내부 가중치를 조정 | 일관된 어조, 복잡한 출력 구조, 고처리량 분류 |
| Prompting | 명확한 지침과 예시를 통해 모델의 즉각적인 응답을 형성 | 일반적인 추론, 빠른 프로토타입 제작, 며칠 내 기능 출시 |
프로젝트를 시작할 때 던져야 할 핵심 질문은 다음과 같습니다: 격차가 지식의 문제인가, 아니면 행동의 문제인가? 지식 격차는 모델이 단순히 올바른 사실을 가지고 있지 않음을 의미하며, 행동 격차는 모델이 사실은 알고 있지만 사용자가 원하는 방식으로 표현하지 못함을 의미합니다.
문제가 지식 격차일 때 – RAG를 활용하세요
모델이 환각 현상을 보이거나, 오래된 수치를 반환하거나, 출처를 제시하지 못한다면 정보가 누락되었거나 최신 상태가 아니라는 문제입니다. RAG는 실행 시점에 적절한 문서나 데이터 포인트를 프롬프트로 가져옴으로써 이 문제를 해결합니다.
- 재고 수준, 시장 가격 또는 규제 표와 같이 사실이 자주 바뀌는 경우 RAG를 사용하세요.
- 규정 준수 또는 감사 목적으로 인용이나 추적 가능성을 제공해야 하는 경우 사용하세요.
- 공개 모델에 노출할 수 없는 비공개 코퍼스(corpora)의 경우 사용하세요. 검색 계층이 방화벽 뒤에서 데이터를 보호합니다.
문서를 업데이트하는 것은 쉽습니다. 모델을 재학습시키는 것은 어렵습니다.
문제가 행동 격차일 때 – 파인튜닝을 하세요
모델이 이미 올바른 사실을 알고 있지만 잘못된 형식, 어조 또는 일관성 없는 구조로 전달한다면, 모델의 내부 행동을 형성해야 합니다. 파인튜닝은 원하는 스타일이 기본값이 되도록 모델의 가중치를 다시 작성합니다.
- 브랜드 특유의 목소리, 법률 용어 또는 엄격한 템플릿을 따라야 하는 모든 출력에 이상적입니다.
- 호출당 적은 프롬프트 비용이 누적되는 대량 분류와 같은 대규모의 반복적인 작업에 효과적입니다.
- 프롬프트 길이를 줄여 토큰 사용량을 줄이고, 결과적으로 추론 비용을 절감할 수 있습니다.
흔한 실수는 단순히 사실을 가르치기 위해 모델을 파인튜닝하는 것입니다. 이는 컴퓨팅 자원을 낭비할 뿐만 아니라 향후 데이터 드리프트(data drift)에 모델을 취약하게 만듭니다. 사실은 검색 계층에 있어야 하며, 파인튜닝은 행동 계층에 있어야 합니다.
문제가 지시 격차일 때 – 프롬프팅부터 시작하세요
프롬프트 엔지니어링은 모델이 작업을 수행할 수 있는지 테스트하는 가장 저렴하고 빠른 방법입니다. 명확한 지침, 퓨샷(few-shot) 예시, 그리고 생각의 사슬(chain-of-thought) 프롬프팅은 모델 변경 없이도 격차를 메워주는 경우가 많습니다.
- 더 비용이 많이 드는 솔루션을 결정하기 전에 "좋은" 답변이 어떤 모습인지 탐색하는 데 사용하세요.
- 추론 중심의 작업, 브레인스토밍 또는 빠른 결과물이 필요한 모든 시나리오에 적용하세요.
- 잘 짜인 프롬프트로 만족스러운 결과를 얻을 수 있다면, 데이터 수집, 모델 학습 또는 검색 파이프라인 구축에 드는 오버헤드를 피할 수 있습니다.
명확한 프롬프팅과 몇 가지 예시를 충분히 시도해보지 않았다면, 아직 파인튜닝이나 RAG 인프라에 투자할 준비가 되지 않은 것입니다.
의사 결정 흐름
사용 사례를 아래 체크리스트에 대입해 보세요. 첫 번째 "예"가 나오면 멈추고 해당 기술을 적용하세요. 두 가지 이상의 조건이 해당된다면 솔루션을 중첩하여 사용하세요.
- 명확한 지침과 퓨샷 예시를 포함한 프롬프팅을 시도해 보았습니까? 아니요 → 프롬프팅부터 시작하세요.
- 실패 원인이 누락되거나 오래된 사실 때문인가요, 아니면 출처 인용이 필요한가요? 예 → RAG 계층을 추가하세요.
- 실패 원인이 일관성 없는 스타일, 형식 또는 고처리량의 반복적인 출력이 필요한 것 때문인가요? 예 → 모델을 파인튜닝하세요.
지식 격차와 행동 격차가 모두 존재하는 경우, RAG와 파인튜닝을 결합하세요. 먼저 올바른 사실을 검색한 다음, 파인튜닝된 모델이 이를 원하는 스타일로 렌더링하도록 합니다.
성공 측정
단순한 '느낌(vibes)'에 의존하지 마세요. 핵심 입력값과 예상 출력값을 포괄하는 작지만 대표성 있는 평가 세트를 구축하십시오. 동일한 세트를 각 후보 솔루션—프롬프트만 사용, 프롬프트 + RAG, 프롬프트 + 파인튜닝, 또는 전체 스택—에 적용해 보십시오. 정확도, 인용 품질, 토큰 비용 및 지연 시간(latency)을 비교하십시오. 데이터를 통해 어떤 레이어가 실질적인 가치를 더하는지, 어떤 것이 불필요한 오버헤드인지 알 수 있습니다.
초기에 적절한 레버를 선택하면 시간과 비용, 그리고 시행착오를 줄일 수 있습니다. 먼저 프롬프트를 사용하고, 사실 관계가 병목 현상이 될 때 검색(retrieval)을 추가하며, 모델의 동작 방식이 문제일 때 파인튜닝을 수행하십시오. 측정하고 반복하십시오. 그러면 잘못된 문제에 GPU 자원을 쏟아붓는 흔한 실수를 피할 수 있습니다.
