RAG(Retrieval-Augmented Generation)란?
- RAG란 미리 학습된 모델에 외부 데이터를 추가로 알려주어 성능 향상을 이루는 기술입니다. 언어 모델을 따로 학습시키거나 수정하지 않아도 성능을 향상시킬 수 있는 아주 적절한 기술입니다.
- 보통 대규모 언어 모델(LLM)의 성능을 향상시키기 위해 별도의 학습을 진행합니다. 하지만 일정 성능을 넘어서기 위해서는 엄청난 양의 노력을 필요로 합니다. 혹은 더이상의 성능 향상이 이루어지지 않을 수도 있죠. RAG는 이러한 LLM의 한계를 극복하기 위해 고안된 외부 데이터를 이용한 새로운 자연어 처리 기술입니다.
- 아래 링크를 참고하시면 더욱 정확한 개념을 확인할 수 있습니다.
https://aws.amazon.com/ko/what-is/retrieval-augmented-generation/
- 가장 큰 장점은 별도의 학습이 필요 없다는 점입니다.
간단하게 말하자면 LLM에게 책을 한 권 쥐어주는 겁니다. 그럼 어떠한 질문을 받았을 때 LLM은 책을 찾아보고 책에 있는 내용이라면 책 내용에 맞춰 답변을 생성하는 것입니다. 간단하게 생각하면 이런식입니다(물론 정확한 표현은 아님..!).
RAG의 쓰임
RAG는 대표적으로 특정한 목적을 가지고 있는 LLM에 큰 이점을 보입니다. 예를 들어, 햄버거 매장에서 언어 모델을 사용한다고 가정해봅시다.
햄버거 매장에서 할 수 있는 질문은 굉장히 제한적입니다.
"사이즈 업을 하면 얼마가 추가되나요?", "세트로 주문하면 얼마가 할인되나요?" 와 같은 질문이 있을 수 있습니다.
이럴 때 꽤나 괜찮은 기본 모델에 RAG 기술을 추가하면 LLM을 추가 학습하지 않아도 준수한 성능을 보일 수 있습니다. 또한 신메뉴가 나오거나 특정 메뉴가 단종되는 등 빈번히 업데이트가 필요할 때 간단히 RAG에 사용될 외부 데이터를 수정하면 되기 때문에 유용합니다.
하지만 기본 모델에 따라 성능 차이가 있고, 어떤 질문을 받는지에 따라 제대로 된 답변을 생성하지 못할 수도 있습니다. 그러므로 언어모델의 파인튜닝과 RAG를 적절히 사용해야겠죠.
RAG의 단점 및 한계
- 외부 데이터에 의존하기 때문에 부정확한 답변을 생성할 수 있습니다.
- RAG는 제공 받은 데이터를 기반으로 하기 때문에 창의적인 답변 생성이 어렵다.
현재 RAG 기술은 PDF, CSV 파일을 기반으로 답변하는 것을 넘어서 웹 문서를 검색하거나 특정 사이트에 연결하여 사용하는 등 다양한 방식으로 발전하고 있습니다.
해당 포스팅은 RAG에 대한 전반적인 개념과 어떠한 기술인지 감을 잡을 수 있게 설명한 것으로 논리적인 오류가 있을 수 있음을 미리 밝힙니다..!
'기타' 카테고리의 다른 글
라즈베리파이[Raspberry Pi] 기본 세팅 및 한글 설정 (0) | 2024.07.20 |
---|---|
YOLOv5 커스텀 데이터로 학습하기 (0) | 2024.07.01 |
[SQLite] 기본키 자동증가(AUTOINCREMENT) 초기화 (0) | 2024.02.20 |
[SQLite] 기본키(Primary Key), 외래키 (Foreign Key) (1) | 2024.02.20 |
[스프링부트/SpringBoot] 게시판 만들기 프로젝트(1) - 계획 수립, 환경 세팅 및 설정 (0) | 2023.09.25 |