헬창 개발자

RAG, 랭체인 그게 뭔데?? 본문

공부방

RAG, 랭체인 그게 뭔데??

찬배 2024. 1. 22. 21:28

LLM(Large Language Models, 대규모 언어 모델)을 기반으로한 대화형 챗봇 시스템이 우리의 일상 생활에서 더욱 중요한 역할을 하고 있다.

 

그러나, 많은 챗봇 시스템은 사용자의 요구에 부합하는 정보를 제공하는데 한계가 있고, 더 나아가 사용자 맞춤형 질의응답을 제공하는데 거짓정보, 최신정보 처리의 어려움을 겪고 있다.

 

또한 AI의 학습 및 생성 과정에서 생겨나는 할루시네이션(Hallucination)은 중요한 문제 중 하나다. 할루시네이션은 AI 모델이 특정 주제에 대해 현실과 무관한, 가끔은 사실과 다른 정보를 생성하는 현상을 지칭한다.

 

이는 모델이 학습한 데이터의 부족, 모순된 정보, 혹은 문맥 파악의 어려움에 기인할 수 있다. 이런 문제점을 해결하기 위해서는 왜 그런 결과물이 생성됐는지 ‘설명 가능한 AI’가 뒷받침 돼야 한다.

 

언급한 문제점을 해결하기 위해 Fine Tuning, RAG(Retrieval Augmented Generation, 검색 증강 생성)방법이 있다.

 

할루시네이션 제어 방법

Fine Tuning

Fine Tuning은 사전 학습된 대규모 언어 모델이 특정 작업에 맞게 조정하거나 성능을 향상시키기 위해 작은 특정 데이터셋에 대해 추가적인 학습을 거치는 반복적인 과정을 의미한다.

 

그러나 Fine Tuning의 문제점은 추가적인 학습 비용이 발생, 특정 작업 또는 도메인에 대한 라벨링된 학습 데이터의 필요성, 동적 데이터 환경에서의 재훈련 빈도 증가, 그리고 학습된 모델이 블랙박스처럼 작동하여 모델의 응답을 이해하기 어렵다는 측면이 있다.

 

RAG

RAG는 Retrieval-Augmented Generation의 약자로 검색 기반 모델을 생성형 언어 모델에 결합하여 생성된 텍스트의 질과 정확성을 향상시키는 기술이다.

 

외부 소스에서 가져온 정보를 활용하여 더 맥락에 맞는, 정확한 응답을 생성한다. RAG 기술은 외부 데이터 소스를 활용하여 생성된 결과물의 품질과 다양성을 높일 뿐만 아니라, 라벨링된 데이터에 의존하지 않으면서도 모델의 작동 방식이나 데이터의 특징을 크게 변경하지 않고 유연성을 제공한다.

https://qdrant.tech/articles/what-is-rag-in-ai/

 

위 그림을 보면 모델이 단순히 학습된 데이터에 의존하는 것이 아니라, 외부 데이터베이스나 문서에서 직접 관련 정보를 검색하여 응답을 생성할 수 있게 한다.

 

RAG는 프롬프트를 통해 검색된 정보를 활용하는 초기 형태로 시작했으며, 고급 RAG로 발전하면서 하이브리드 검색, 재귀적 검색, 서브쿼리 등의 기술을 도입해 정보의 정확성과 관련성을 높였다.

 

랭체인

그림 1. 랭체인 프레임워크를 이용한 RAG 흐름

 

랭체인이란 개발자가 언어 모델을 기반으로 한 애플리케이션 개발 작업을 수월하게 진행할 수 있도록 설계된 오픈 소스 프레임워크로, 개발자가 LLM을 외부 계산 및 데이터 소스와 결합할 수 있도록 지원한다.

 

이를 통해 확장성과 성능을 모두 갖춘 AI 애플리케이션을 쉽게 구축하고 배포할 수 있다. 또한 API를 통해 언어 모델을 불러오는 것은 물론이고, 데이터를 인식하거나 외부 시스템과 상호 작용하는 애플리케이션을 개발하는 것을 도우며, 랭체인은 모듈식 추상화 및 추상화 구현의 모음으로 구성되어 있으며, 해당 구성요소를 사용해 기존 체인을 맞춤 설정하고 새 체인을 만들 수 있다는 특징이 있다.

 

그림 1은 랭체인 프레임워크에서 어떻게 LLM에서 원하는 결과를 얻기 위한 흐름을 나타낸다.

 

① Data Sources(데이터 소스)는 애플리케이션이 LLM을 사용하여 텍스트를 생성, 번역, 요약하거나 질문에 답하는 등의 작업을 수행하려면 먼저 LLM이 해당 작업을 수행하는 데 필요한 정보를 가져야 한다. 이러한 정보는 PDF, 웹 페이지, CSV, 관계형 데이터베이스와 같은 외부 소스에서 제공될 수 있다. 랭체인은 이러한 외부 소스에서 데이터를 검색하고 LLM에 제공할 수 있도록 지원한다.

 

② Word Embeddings(단어 임베딩)은 랭체인은 외부 소스에서 검색된 데이터를 벡터로 변환한다. 벡터는 텍스트의 의미를 표현하는 수치다. LLM은 텍스트를 이해하고 처리하는 데 벡터를 사용한다. 랭체인은 다양한 단어 임베딩 모델을 지원하므로 개발자는 필요에 맞는 모델을 선택할 수 있다.

 

③ Vector Database(벡터 데이터베이스)는 생성된 임베딩은 유사성 검색을 위해 벡터 데이터베이스에 저장된다. 벡터 데이터베이스는 벡터를 빠르게 검색할 수 있도록 지원한다.

 

④ Large Language Models(언어 모델)은 랭체인에서 오픈AI LLM과 허깅페이스에서 제공되는 오픈소스 LLM을 지원한다. 랭체인은 이러한 LLM을 사용하여 다양한 텍스트 기반 애플리케이션을 개발할 수 있다.

Comments