Recent Posts
Recent Comments
Link
Today
Total
03-11 05:08
관리 메뉴

Hippo's data

RAG 넌 누구냐 본문

Activity

RAG 넌 누구냐

Hippo's data 2025. 3. 4. 00:30
728x90

오늘은 RAG(Retrieval-Augmented Generation)에 대해 간단히 알아보겠습니다!!

최근에 "나는 데이터로 축구한다(LLM과 RAG 기술 활용편)"을 주제로 한동대학교 축구 빅데이터캠프에 갔다왔는데욥

RAG가 뭔지, 왜 핫한지 알아보고 해커톤을 통해 RAG를 이용하여 간단한 서비스도 구현해보았습니다

 

RAG는 간단하게 말해서 chat gpt와 같은 LLM(Large Language Models)의 이슈를 해결하기 위한 방법으로 핫하게 등장한 기술인데요 그렇다면 chat gpt와 같은 LLM(Large Language Models)에는 어떤 문제점들이 있는지 알아봅시다!

 

# LLM 문제점

1. Hallucination 할루시네이션(환각증상)

-> 실제로 존재하지 않는 정보를 사실인것 처럼 제시하는 현상 

 

2. Knowledge cutoff

-> Cutoff date 날짜까지만 LLM모델은 학습을 진행하고 이후 데이터는 학습을 하지 않음 

-> 학습하는 도중에도 새로운 지식이 실시간으로 계속 생성됨 

-> Cutoff date 이후의 최신의 정보는 담겨있지 않음

 

예) 

GPT-4o Cutoff date : 2023년 10월

GPT-4o Release date 출시 연도: 2024년 5월 13일

-> GPT-4o는 2023년 10월 이후의 정보는 학습하지 않음

 

직접 gpt-4o-mini 모델을 API를 이용하여 최신 정보인 2025년 2월 축구경기에 대해 질문을 해보았는데요

답변에서도 알 수 있듯이 정보를 제공할 수 없다고 나타납니다,,,,

 

 

### 근데 요즘 Chat gpt는 cut off date 기간 지나도 답변 해주는대요? 

→ bing 검색엔진 이용해서 최신 정보 답변 (MS와 협약)

 

 

# LLM 문제점 해결방법

1. pretraining
2. fine-tuning
3. RAG(Retrieval Augmented Generation)

 

1. pretraining

-> 인터넷 문서 모아 완전 처음부터 LLM 만들기

-> 메타, 아마존, 마이크로소프트 등 거대기업들이 지금 하고있음

 

2. fine-tuning

-> LLM이 기존에 학습한 내용에 새로운 내용을 추가해서 다시 학습시키기

-> 해당 시점 이후에 추가학습 시켜서 만듬

 

<한계점>

빅테크 아닌이상 학습에 필요한 컴퓨팅리소스 확보 불가능 → 심지어 한국 거대기업도 하기 힘든작업

비용 / 시간문제 / 추가 업데이트시 또 문제

 

3. RAG(Retrieval Augmented Generation)

 

# RAG(Retrieval Augmented Generation)

-> 추가적인 문서(외부 자료)를 바탕으로 더 정확하고 관련성 높은 응답을 생성

-> 정확하고 최신의 문서를 통해 할루시네이션, cutoff date 문제 해결

 

보통) 사용자 → 질문 → gpt → 답변

RAG) 사용자 → 질문 + 문맥(문서 기반) → gpt → 답변

→ 문맥(힌트)를 줘서 답변

 

Retrieval(검색) → 질문과 가장 유사한 문서 검색(질문 - 문서 유사도 검사)

Augmented(증강) → 유사한 문서 기반으로 증강

Generation(생성) → 답변 생성

 

## 질문과 문서간 유사도 검사는 어떻게 할까?

질문과 문서 숫자로 변환하기 위해 각 단 임베딩(embedding) → 각 숫자간 거리 계산(코사인 유사도 등) 

 

## 질문과 문서간 유사도 검사하여 가장 유사한 문서를 찾았음에도 불구하고 답변의 퀄리티가 떨어질 수 있음

-> 단지 해당 문서는 저장한 문서중에서 상대적으로 질문과 유사도가 높은 것일 뿐

-> 결국 데이터(문서)가 제일 중요!!!!!!!! 

 

## Framework for RAG  

-> RAG를 쉽게 구현할 수 있는 프레임워크들이 많이 존재

LlamaIndex 라마인덱스 - 메타
LangChain 랭체인 
등등

 

# Project with RAG

RAG에 대해 알아본 후, 하룻동안의 RAG를 이용한 해커톤 대회가 있었는데요

축구와 관련된 RAG 기반 서비스를 구현하는 것이 주제였습니다!

다양한 아이디어가 있었지만 결국 '축구 MBTI 챗봇' 을 주제로 서비스를 만들어 보았습니다!

 

특정 선수, 클럽 팀 팬 챗봇 -> 특정 선수나 클럽의 디테일한 정보 문서 바탕 

축구선수 이상형 찾아주는 챗봇 -> 여러 축구선수의 디테일한 정보 문서 바탕

전날 경기 정보 요약 -> 전날의 경기 정보 문서 바탕

축구 여행일정 챗봇 -> 특정 일자의 항공사, 숙박 문서 바탕 

경기 분석 챗봇 -> 디테일한 축구 경기 문서 바탕

축구 MBTI 챗봇 -> 직접 정의한 축구MBTI 지표 + EPL 축구선수 기록 문서 바탕

 

대락적인 파이프라인은 요로코롬입니다! 

 

간단한 스트림릿 데모도 만들어 보았습니다!

 

구체적인 내용 - 깃헙

 https://github.com/Hipposdata/Soccer_MBTI_Chatbot_RAG?tab=readme-ov-file

 

GitHub - Hipposdata/Soccer_MBTI_Chatbot_RAG: 축구 MBTI 챗봇 With RAG

축구 MBTI 챗봇 With RAG. Contribute to Hipposdata/Soccer_MBTI_Chatbot_RAG development by creating an account on GitHub.

github.com

 

## 후기

뭔가 엄청난 기술인 것 같은데 LangChain을 이용해서 쉽게 구현한다는 것이 디게 신기하면서 무서웠따,,,

새롭게 정의한 축구 MBTI 문서를 기반으로 답변을 진행하였는데 정의한 MBTI 내용이 부실한 경우 답변 또한 부실했었는데욥

문서기반으로 답변 결국 데이터(문서)가 진짜진짜 중요하다....

728x90