본문 바로가기
Coding/TIL & 배운것들

prompt engineering vs RAG vs Fine-tuning

by 코딩짜는 머글 2024. 11. 13.

prompt engineering 

모든 대규모 언어 모델과 상호 작용하는 가장 기본적인 방법. 마치 지시를 내리는 것과 같다. 모델에 어떤 종류의 정보를 제공하고 싶은지 알려주는 것이다. 가장 좋은 답변을 얻기 위해 올바른 질문을 하는 방법을 배우는 것과 비슷하다. 하지만 모델이 이미 학습을 통해 알고 있는 것만 제공할 수 있다는 한계가 있다. 장점은 매우 간단하다는 것. 하지만 모델의 원래 학습에 크게 의존하기 때문에 항상 필요한 최신 또는 가장 구체적인 정보를 제공하지 못할 수도 있다. 일반적인 주제를 다루거나 너무 많은 세부 사항을 다루지 않고도 빠른 답변이 필요할 때 가장 좋다. 

 

▼ 장점 

사용 편의성 : 사용자 친화적이며 고급 기술 능력이 필요하지 않아 광범위한 대상에게 접근 가능하다

비용 효율성 : 사전 훈련된 모델을 활용하므로 미세 조정에 비해 계산 비용이 최소화된다.

유연성 : 모델을 다시 학습하지 않고도 다양한 출력을 탐색하기 위해 프롬프트를 빠르게 조정할 수 있다. 

 

▼ 단점 

불일치 : 모델의 응답 품질과 관련성은 프롬프트의 표현에 따라 상당히 달라질 수 있다. 

제한된 사용자 정의 : 모델의 응답을 맞춤화하는 능력은 효과적인 프롬프트를 만드는 창의성과 기술에 따라 제한된다. 

모델의 지식에 대한 의존성 : 출력은 모델이 초기 훈련 과정에서 학습한 내용으로 제한되므로, 고도로 전문화되거나 최신 정보에는 효과가 떨어진다. 

 

 

fine-tuning 

언어 모델을 가져와서 새로운 것 또는 특별한 것을 학습시키는 것이다. 더 나은 기능을 얻기 위해 휴대폰의 앱을 업데이트하는 것과 같다고 보면 된다. 하지만 이 경우 앱(모델)은 모든 것을 제대로 학습하기 위해 많은 새로운 정보와 시간이 필요하다. 모델을 위해 학교로 돌아가는 것과 비슷하다. 미세조정에는 많은 컴퓨터 성능과 시간이 필요하기 때문에 비용이 많이 들 수 있다. 하지만 언어 모델이 특정 주제를 아주 잘 이해해야 한다면 미세 조정이 가치가 있다. 마치 모델에게 관심 있는 분야의 전문가가 되도록 가르치는 것과 같다. 미세 조정 후 모델은 더 정확하고 원하는 것에 더 가까운 답변을 제공할 수 있다. 

 

▼ 장점 

사용자 정의 : 광범위한 사용자 정의가 가능하여 모델이 특정 도메인이나 스타일에 맞는 응답을 생성할 수 있다.

정확도 향상 : 전문화된 데이터 세트를 사용하여 학습함으로써 모델은 더욱 정확하고 관련성 있는 응답을 생성할 수 있다. 

적응성 : 미세 조정된 모델은 원래 교육에서 다루지 않은 틈새 주제나 최신 정보를 더 잘 처리할 수 있다. 

 

▼ 단점 

비용 : 미세 조정에는 상당한 컴퓨팅 리소스가 필요하므로 프롬프트하는 것 보다 비용이 더 많이 든다. 

기술적 기술 : 이 접근 방식에는 머신 러닝과 언어 모델 아키텍처에 대한 보다 깊은 이해가 필요하다. 

데이터 요구 사항 : 효과적인 미세 조정을 위해서는 방대하고 잘 정리된 데이터 세트가 필요한데, 이를 수집하는 것은 어려울 수 있다. 

 

 

 

RAG

모델이 질문에 답해야 할 때, 먼저 지식 기반에서 관련 정보를 찾아 수집한 다음, 해당 정보를 기반으로 질문에 답한다. 모델이 정보 라이브러리를 빠르게 확인하여 최상의 답변을 제공하는지 확인하는 것과 같다. 모델이 원래 학습한 것보다 더 광범위한 주제를 포함하는 최신 정보나 답변이 필요한 상황에서 특히 유용하다. 설정하기 어렵고 비용이 많이 든다는 측면에서는 중간 정도이다. 언어 모델이 새롭고 더 자세한 답변을 제공하는데 도움이 되기 때문에 좋다. 하지만 미세 조정과 마찬가지로 잘 작동하려면 추가 도구와 정보가 필요하다. RAG 시스템의 비용, 속도, 응답 품질은 벡터 데이터베이스에 크게 의존하므로 RAG세스템의 매우 중요한 부분이다. 

 

 

▼ 장점 

동적 정보 : 외부 데이터 소스를 활용하여 최신의 매우 관련성 있는 정보를 제공할 수 있다. 

균형 : 프롬프트의 용이성과 미세 조정의 사용자 정의 사이의 중간 지점을 제공한다. 

문맥적 연관성 : 추가적인 맥락을 통해 모델의 응답을 강화하여 더욱 정보에 입각하고 섬세한 출력을 제공한다. 

 

▼ 단점 

복잡성 : RAG를 구현하는 것은 복잡할 수 있으며 언어 모델과 검색 시스템을 통합해야 한다. 

리소스 집약적 : 전체 미세 조정보다 리소스 집약적은 아니지만 여전히 상당한 컴퓨팅 성능을 요구한다. 

데이터 종속성 : 출력 품질은 검색된 정보의 관련성과 정확성에 크게 좌우된다 .

 

 

 

▼ prompt engineering vs RAG vs Fine-tuning 간단한 표 요약  

특징  prompt engineering fine-tuning RAG
필요한 기술 수준 낮음: 프롬프트를 구성하는 방법에 대한 기본적인 이해가 필요합니다. 중간~높음: 머신 러닝 원리와 모델 아키텍처에 대한 지식이 필요합니다. 중간: 머신 러닝과 정보 검색 시스템에 대한 이해가 필요합니다.
가격 및 리소스 낮음: 기존 모델을 사용하여 계산 비용이 최소화됩니다. 높음: 훈련에 상당한 컴퓨팅 리소스가 필요합니다. 중간: 검색 시스템과 모델 상호작용에 리소스가 필요하지만, 미세 조정에는 필요하지 않습니다.
사용자 정의 낮음: 모델의 사전 훈련된 지식과 효과적인 프롬프트를 작성하는 사용자의 능력에 따라 제한을 받습니다. 높음: 특정 도메인이나 스타일을 광범위하게 사용자 정의할 수 있습니다. 매체: 외부 데이터 소스를 통해 사용자 정의가 가능하지만, 해당 소스의 품질과 관련성에 따라 달라집니다.
데이터 요구 사항 없음: 추가 데이터 없이 사전 훈련된 모델을 활용합니다. 높음: 효과적인 미세 조정을 위해 대규모의 관련 데이터 세트가 필요합니다. 매체: 관련 외부 데이터베이스나 정보 소스에 접근해야합니다.
업데이트 빈도 낮음: 기본 모델의 재교육에 따라 다름. 변수: 모델이 새로운 데이터로 재교육되는 시기에 따라 달라집니다. 높음: 최신 정보를 통합할 수 있습니다.
품질 변수: 프롬프트를 만드는 기술에 크게 좌우됩니다.  높음: 특정 데이터 세트에 맞춰져 있어 더욱 관련성 있고 정확한 응답을 얻을 수 있습니다. 높음: 상황에 맞는 외부 정보로 응답을 강화합니다.
사용 사례 일반적인 문의, 광범위한 주제, 교육 목적. 전문화된 애플리케이션, 업계별 요구 사항, 맞춤형 작업. 최신 정보가 필요한 상황이나, 맥락을 포함하는 복잡한 질의.
구현의 용이성 높음: 기존 도구와 인터페이스로 구현하기 쉽습니다. 낮음: 심층적인 설정 및 교육 프로세스가 필요합니다. 매체: 언어 모델을 검색 시스템과 통합하는 것을 포함합니다.

 

 

요약 정리 
일반적으로 많이 사용하는 것은 prompt engineering
특정 주제를 원할때는 fine-tuning 
검증된 지식에 근거한 정확하고 정밀한 답변을 원할때는 RAG

'Coding > TIL & 배운것들' 카테고리의 다른 글

Prompt 실습  (0) 2024.11.15
Prompt Engineering 기초  (1) 2024.11.14
파이썬 코딩 컨벤션  (0) 2024.11.13
OpenAI Playground  (0) 2024.11.13
RAG, Vector DB, LangChain  (1) 2024.11.13