메뉴 닫기

[Tech] 프롬프트 엔지니어링 / RAG / 파인튜닝 비교

안녕하세요

최근 AI가 발전함에 따라 LLM(대형 언어 모델)을 더 효율적이고 효과적으로 활용하기 위한 여러 방법들이 제시되고 있는 상황입니다.

오늘은 그중에서 대표적인 프롬프트 엔지니어링/RAG/파인튜닝에 대해서 알아보고 어떤 상황에 사용하면 좋을지 비교하여 살펴보려 합니다.

1. 프롬프트 엔지니어링 (Prompt Engineering)

✅ 개념

  • LLM(Large Language Model)이 원하는 답변을 생성하도록 입력 프롬프트(질문 또는 지시문)를 최적화하는 기술.
  • 단순한 텍스트 입력을 넘어 Few-shot prompting, Chain-of-thought prompting, Instruction tuning 등을 활용하여 모델의 출력을 제어함.

🔹 장점

  • 빠른 적용 가능: 모델 자체를 수정하지 않고도 다양한 작업을 수행할 수 있음.
  • 비용 절감: 추가적인 모델 학습 없이도 성능을 최적화할 수 있음.
  • 유연성: 같은 모델을 다양한 상황에 맞게 사용할 수 있음.

🔻 단점

  • 한계점 존재: 모델의 근본적인 성능 개선이 아니라, 특정 프롬프트에 최적화된 결과를 얻는 방식.
  • 복잡성 증가: 적절한 프롬프트를 찾기 위해 많은 실험이 필요함.

 

2. RAG (Retrieval-Augmented Generation)

✅ 개념

  • LLM이 사전에 학습된 정보만 사용하는 것이 아니라, 외부 데이터베이스(예: 벡터DB)에서 관련 정보를 검색(Retrieval)하여 답변을 생성(Generation)하는 방식.
  • LLM + 검색 엔진의 조합이라고 볼 수 있음.
  • AWS에서는 Amazon KendraOpenSearch + Bedrock을 활용하여 RAG 시스템을 구축 가능.

🔹 장점

  • 최신 정보 반영: LLM이 학습되지 않은 최신 데이터도 활용 가능.
  • 작은 모델로도 강력한 성능 제공: 대형 모델을 직접 학습하지 않고도 성능을 개선할 수 있음.
  • 사실적 응답 증가: 모델이 환각(hallucination)을 줄이고, 정확한 답변을 제공할 가능성이 높아짐.

🔻 단점

  • 검색 속도 이슈: 벡터 검색과 LLM 생성 과정이 추가되면서 응답 속도가 느려질 수 있음.
  • 인프라 운영 비용: 벡터DB, 검색 엔진 등의 추가 비용이 발생할 수 있음.
  • 문맥 관리의 한계: 검색된 문서가 항상 최적의 정답을 포함하지 않을 수도 있음.

 

3. 파인튜닝 (Fine-tuning)

✅ 개념

  • 기본적으로 훈련된 LLM에 특정 도메인의 데이터를 추가로 학습시켜 모델의 성능을 향상시키는 기법.
  • Supervised Fine-tuning(지도학습)과 RLHF(Reinforcement Learning with Human Feedback) 등의 방식이 있음.
  • AWS에서는 Amazon Bedrock Custom Model, SageMaker JumpStart, SageMaker Neuron 등을 활용하여 LLM을 파인튜닝할 수 있음.

🔹 장점

  • 특정 도메인에 최적화 가능: 예를 들어, 의료, 법률, 금융 등 특정 산업 데이터를 학습시켜 더 정교한 답변을 제공할 수 있음.
  • 성능 향상: 단순 프롬프트 엔지니어링보다 더 강력한 성능 개선이 가능.
  • 사내 데이터 활용 가능: 기업 내부 문서나 고객 데이터를 반영하여 맞춤형 LLM을 구축할 수 있음.

🔻 단점

  • 비용과 시간 부담: GPU 인프라 및 대량의 데이터를 학습해야 하므로 비용이 많이 듦.
  • 데이터 준비 필요: 고품질의 학습 데이터를 준비해야 하며, 데이터 라벨링이 필요할 수도 있음.
  • 업데이트 어려움: 한 번 파인튜닝한 모델을 다시 업데이트하려면 추가적인 학습 과정이 필요함.

4. 어떤 방식이 적절할까?

🚀 프롬프트 엔지니어링 vs. RAG vs. 파인튜닝

기법 핵심 요소 사용 예시
프롬프트 엔지니어링 프롬프트 최적화 일반적인 텍스트 생성(LLM 응답 개선), 고객 응대
RAG 검색 + 생성 최신 데이터 반영, 기술 문서 QA
파인튜닝 모델 자체 훈련 특정 도메인 특화 LLM 구축

✅ 언제 프롬프트 엔지니어링을 선택할까?

  • 모델을 추가 학습(Fine-tuning)하지 않고 빠르게 성능을 개선하고 싶을 때.
  • 비용을 최소화하면서 성능을 최적화하고 싶을 때.

✅ 언제 RAG를 선택할까?

  • LLM이 학습하지 않은 최신 정보를 반영해야 할 때.
  • 특정 도메인의 방대한 문서를 참조하여 답변해야 할 때.
  • 프롬프트 엔지니어링만으로는 원하는 응답 품질을 얻기 어려울 때.

✅ 언제 파인튜닝을 선택할까?

  • 특정 도메인(법률, 의료, 금융 등)에 최적화된 답변이 필요할 때.
  • RAG만으로 원하는 답변 품질을 얻기 어려울 때.
  • 반복적인 작업을 자동화하고, 모델의 스타일을 맞추고 싶을 때.

이와 같은 방식으로 필요에 따라 원하시는 방법을 선택해서 사용하시면 됩니다.

또한 여러 방법을 조합해서 사용할 수도 있습니다. 예를 들어, RAG + 프롬프트 엔지니어링을 함께 활용하면 최신 데이터 반영과 응답 최적화가 가능합니다.

다음 시간에는 각각의 방법들에 대해서 조금 더 자세히 알아보도록 하겠습니다.

감사합니다.