1 of 32

캡스톤디자인 최종발표

RAG 기술을 활용한 부동산 챗봇 구현 및 성능 개선 연구

이화여자대학교 데이터사이언스대학원 ODDS팀

2024.6

2 of 32

INDEX

2

  1. 팀소개
  2. 프로젝트 개요
  3. 데이터

part1

4. RAG

5. Advanced RAG

6. 검색 알고리즘

part2

7. 데이터 핸들링

8. 데이터 파이프라인

9. 결론

part3

3 of 32

part1 Intro

3

  1. 팀소개
  2. 프로젝트 개요
  3. 데이터

4 of 32

4

팀 소개

안수현

이은미

임유경

데이터 핸들링/알고리즘연구

어플리케이션 개발

Opportunity Determination Drive and Success

모두 다르고 특이하다는 뜻의 "Odd " 가 모여 의지와 몰입을 통해 성공적인 프로젝트를 수행하고자 한다는 의미

데이터 핸들링/알고리즘연구

어플리케이션 기획

데이터 핸들링/알고리즘연구

어플리케이션 개발

1

오즈(ODDS)

5 of 32

내 집 마련의 꿈, 부동산에 대한 관심

5

2

프로젝트 소개

기획의도/문제정의

다양한 플랫폼, 많은 데이터와 산재되어있는 정보

한눈에 볼 수는 없을까?

6 of 32

부동산 전문 챗봇을 만들자!

6

주제 선정

[상용화된 부동산 챗봇 답변 예시]

프로젝트 소개

2

1) 정확한 최신 정보

2) 자연스럽게 알려주는 부동산 전문 챗봇

1) 최신 정보에 대한 답변을 받을 수 없다.

2) 답변이 부자연스럽다.

AS IS

TO BE

7 of 32

7

Web

APP

(Streamlit)

Vector DB

데이터 핸들링

검색 알고리즘

오즈챗봇 동작 구조

Web App Dev. tool

Streamlit

Library

Langchain, openai

Large Language Model

gpt4o

Embedding Model

text-embedding-3-small (by OpenAI)

VectorDB

Pinecone

Advanced

RAG

프롬프트

컴플리션

프로젝트 소개

2

사용자

Web App

LLM

8 of 32

수집 데이터

KB 부동산)

KB Think, KB경영연구소) 네이버 포스트, 부동산 전문가 사설, 정부자료, 부동산 뉴스, 부동산 관련 연구 보고서,

부동산 기본 정보 등 컨텐츠 2300개 크롤링

부동산 관련 정보

호갱노노) 아파트별 위치, 학군, 주변 상권, 교통, 평수정보 등

서울시 아파트 정보

청약 홈) 아파트 분양일정 및 청약 경쟁률 데이터 전체 크롤링

한국부동산원) 월별 지역별 청약 경쟁률 데이터를 Pandas로 전처리 하여 년도별 지역별 통계를 낸 후 데이터 저장

청약 정보

2300개

41개  

3

데이터

국가법령정보센터) 부동산 관련 법령 41개 본칙/부칙 구분하여 수집

부동산 관련 법령

281개

353개

9 of 32

9

EDA

3

데이터

수집 데이터 워드클라우드 시각화

데이터 특징

  • 다양한 고유명사를 포함: 1001종의 일반명사, 740종의 고유명사

단어

빈도수

아파트

2378

전세

2296

부동산

2188

서울

2163

고등학교

1731

단어

빈도수

경기도

637

파크

321

롯데

283

송파구

237

강남구

224

[일반명사]

[고유명사]

[Top5 words]

[Top5 words]

10 of 32

10

VectorDB 구축

- 유사성 검색을위한 데이터 embedding

복잡한 데이터를 간단한 형태로 바꾸는 것

- embedding model: OpenAI model

  • Pinecone DB

(클라우드 기반의 간단한 API, 빠른 검색 성능)

- Metadata 저장

3

데이터

hybried 서치를 위한 2track vector화 내용 추가

Sparse (bm25모델을 활용하여 학습 시킴)-> img(lexical)

Dense -> img(sementic)

빠른 검생 성능을 가진 Cloud 기반 Pinecone DB

Cloud VectorDB 구축

1) Dense vector (for Semantic Search)

2) Sparse vector (for Lexical Search)

Hybrid Search 지원을 위한 Vector DB 이원화

Sparse Vector

Dense Vector

Document별 metadata 적재

metadata

11 of 32

part2 연구방법론_검색 알고리즘

11

4. RAG

5. Advanced RAG

6. 검색 알고리즘

12 of 32

12

LLM의 문제점: Hallucination

실제로는 없거나 사실이 아닌 정보를 사실인 것처럼 말하는 현상 (ex. 세종대왕이 맥북 던진 사건)

RAG(Retrieval-Augmented Generation)

RAG

대규모 언어 모델의 출력을 최적화하여 응답 생성 전 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를

참조하도록 하는 프로세스

4

RAG

인코딩 된 쿼리

VectorDB 검색

LLM 답변 생성

해결방안

Retrieve(검색) 하여 정확한 답변을 제시

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks., P. Lewis et al., 2020.

13 of 32

13

Hallucination 의 해결

4

오즈봇, 오직 아래의 context 만을 보고 답변해.

모르면 모른다고 말해. 절대 아무거나 답하지마!

RAG

14 of 32

14

Naive RAG 문제점

4

데이터가 있지만 상위 검색 결과로 찾지 못해서 “모른다” 고 답하는 것

RAG

“몰라요”

“몰라요”

🡺 검색을 잘하는 것

🡺 정답 문서를 상위랭크로 올려주는 것

해결 과제

15 of 32

15

Advanced RAG

5

Naive RAG의 부족한 점을 개선하기 위해 개발된 패러다임으로

주로 검색 및 생성의 질을 향상시키기 위한 사전 및 사후 검색 방법을 포함

Advanced RAG

Retrieval-Augmented Generation for Large Language Models: A Survey., Yunfan Gao et al., 2023.

16 of 32

16

검색 결과 순위의 중요성 (Top-K Rank)

Lost in the Middle

LLM 모델에 Retrieved Documents를 주었을 때,

정확도 결과로 앞부분(primacy bias)과 뒷부분(recency bias)을

더 잘 참조하는 U curve가 나타남

Advanced RAG

반환 받고자 하는 가장 유사한 문서 수

원하는 검색 결과가 최대한 상위에 Rank 되도록 해야함!

해결방안

검색 최적화 + 데이터 최적화

검색알고리즘

넣어준 데이터셋에 가장 적합한 검색 알고리즘으로 최적화

데이링 핸들링

- LLM이 답을 잘 줄 수 있는 형태의 데이터로 변환

- 정보 손실 최소화

5

Lost in the Middle: How Language Models Use Long Contexts, F.Liu et al., 2023

17 of 32

17

Sparse Vector

Dense Vector

Lexical Search

Semantic Search

Indexing

Querying

Embedding

6

검색알고리즘

질문

Hybrid Search

가장 많이 �사용 되는 방법

<고유명사>

옥수삼성

장미1차

롯데캐슬 ...

키워드 정보

문맥 정보

18 of 32

18

6

검색알고리즘

예시1

예시2

Semantic Search 적용 결과

Lexical Search 적용 결과

“몰라요”

“몰라요”

19 of 32

19

Sparse Vector

Dense Vector

Lexical Search

Semantic Search

Indexing

Querying

Embedding

6

검색알고리즘

Hybrid Search

질문

<고유명사>

옥수삼성

장미1차

롯데캐슬 ...

Hybrid Search

키워드 정보

문맥 정보

20 of 32

20

검색알고리즘

6

BM25

TF-IDF를 보정한 모델로 보정파라미터를 추가하여 성능을 개선한 알고리즘

Q: 사용자가 입력한 쿼리

D: 대조해보려는 문서

HNSW (Hierarchical Navigable Small World)

raph Index 중 하나.

가장 밀도가 낮은 계층에서 랜덤한 노드로 시작하여 해당 계층에서 가장 가까운 노드를 찾은 후 다음 계층으로 이동.�최종적으로 원래 쿼리 벡터와 가장 가까운 이웃을 찾을 때까지 계층 탐색

Lexical Search

Semantic Search

21 of 32

21

검색알고리즘

6

질문과 문서 사이의 유사도를 측정. �질문과 문서를 하나의 input 으로 활용하는 Cross-encoder 형태.

따라서 질문과 답변에 대한 더욱 정확한 유사도 측정이 가능.

Ranker 사용 후 ”정답 문서”가 <1순위>로 재배치

Reranker 적용 결과

🡺 유사도 99% 로 재계산 됨

Reranker (검색 후 재정렬)

https://www.pinecone.io/learn/series/rag/rerankers/

22 of 32

22

검색알고리즘

6

검색 알고리즘 적용 결과 비교

질문 카테고리

정확도

Naive RAG

Advanced RAG (Hybrid Search)

Reranker (X)

Reranker (O)

부동산 일반

0.72

0.88

0.88

서울시 아파트

0.48

1.00

1.00

청약

0.92

0.96

0.96

법령

0.88

0.96

1.00

전체 평균

0.75

0.95

0.96

각 카테고리별 25개씩의 질문을 하여 정확도 측정.

Reranker 를 적용한 Hybrid Search 에서 가장 높은 정확도 96% 를 보임

특징 - 특히 고유명사가 많이 등장하는 특정 아파트 정보에 대해서 가장 많은 차이가 나타남

23 of 32

Part3 연구방법론_데이터

23

7. 데이터 핸들링

8. 데이터 파이프라인

9. 결론

24 of 32

24

① Document 구성

Embedded Data

Keyword Search를 진행할 데이터의 정보 부분

Metadata를 통해 원하는 카테고리로 범위를 좁혀

Hybrid Search를 진행할 수 있도록 함.

(Hybrid Search 결과의 정확도 향상)

Hybrid Search를 진행할 핵심 문서 부분

(Main Data)

7

데이터 핸들링

Metadata

25 of 32

25

Data Chunking

  • Data Chunk 길이에 따른 정확도와 Context(RAG의 참조가 되는 답변) 간의 Trade-off 발생
  • Chunk가 너무 길어지면 🡪 답을 찾기가 어려워져 정확도가 떨어짐
  • Chunk가 너무 짧으면 🡪 참조할 Context가 없어, LLM의 답변이 부실해짐

데이터 핸들링

7

길이에 따른 Trade-off

데이터를 자른 것, 인덱싱 문서의 단위가 됨. (1 chunk = 1 document)

적정 길이의 Chunk를 찾는 것이 LLM output의 Quality를 크게 좌우함을 시사

https://towardsdatascience.com/advanced-retriever-techniques-to-improve-your-rags-1fac2b86dd61

26 of 32

26

Chunk 길이 전략 연구

전략 1) 하나의 Document를 최대한 보존하는 전략

전략 2) Max Token Limit 을 넘어가는 Document는 해당 main content의 토큰을 일정량을 중첩하여 Chunk하고

Metadata 는 그대로 보존

7

② Data Chunking

데이터 핸들링

[각 Document 별 Token 수 시각화]

아파트 청약 일정 _ 청약홈

부동산 법령정보 _ 국가법령정보센터

2024 부동산보고서_KB경영연구소

부동산 관련 칼럼, 일반정보_KB Think

부동산 기본정보_KB POST

27 of 32

27

데이터 chunking 방식

7

② Data Chunking

1) 1 Document 🡪 2 Documents

2) 메타데이터 각각 보존

3) 연결 되는 부분을 중첩하여 정보 손실 최소화

document1

document2

document1

데이터 핸들링

28 of 32

28

질문 쿼리 분류 🡪 카테고리별 데이터셋 파이프라인 구축

8

질문 카테고리 Classification

질문 쿼리를 Calssification 하여 대분류 카테고리에 접근 �🡪 해당 카테고리 데이터셋 안에서만 Vector Search를 진행함으로써 정답 문서 찾을 확률 UP

데이터 파이프라인

질문

부동산 일반

서울시 아파트

청약

법령

분류

부동산 데이터셋

서울시 아파트 데이터셋

청약 데이터셋

법령 데이터셋

카테고리별 파이프라인

29 of 32

29

KoBERT 모델을 활용한 Classification Modeling

8

Classification Modeling

  • 모델 : KoBERT
  • 학습 방법 : Fine-Tuning
  • 데이터셋 : 각 카테고리별 질문 25개 🡪 GPT-4o, Claude-sonnet 을 활용한 데이터 증강� 총 300개 질문 데이터셋 (각 카테고리별 75개)
  • 데이터셋 분리 : Train : Test = 8 : 2, stratify 설정을 통한 Class 별 균형 맞춘 데이터셋 분할�

  • 정확도 : 88.3%

데이터 파이프라인

30 of 32

오즈봇 시연 영상

30

31 of 32

31

9

결론

데이터셋 내 다양한 고유명사로 인한 Naive RAG 한계 발생

  • 데이터셋 특성에 적합한 검색 알고리즘 적용
  • Hybrid Search + Reranker 적용을 통한 검색 알고리즘 최적화로 답변 정확도 21% 향상시킴

문서 길이에 따른 Precision-Context 간 Trade-off 문제 발생

  • 문서별 토큰 수 시각화를 통한 Threshold 설정 및 Data Chunking
  • 데이터 메타데이터(key-value) 구축을 통한 구조화
  • 메타데이터 적용을 통한 Chunking 으로 정보손실 최소화

검색 알고리즘 최적화를 통한 정확도 21% 향상

다양한 데이터 처리 전략으로 정보손실 최소화

정확도

Naive RAG

Advanced RAG

0.75

0.96

21%

부동산 데이터셋 특성상 다양한 카테고리가 존재

  • 카테고리별 질문 쿼리 Classification Modeling
  • 한국어 토큰 모델에 대한 높은 정확도 달성 (88% 정확도)
  • 대분류 카테고리에 접근하여 해당 클래스별 데이터셋에서만 Vector Search 진행하여 정확도/속도 높임

질문

분류

부동산 데이터셋

서울시 아파트 데이터셋

청약 데이터셋

법령 데이터셋

카테고리별 파이프라인

데이터파이프라인 구축을 통한 검색 최적화

설정한 문제 해결방안에 대한 솔루션 도출로 연구 목적 달성 !

전략1

전략2

전략3

문제 해결방안

검색 최적화 + 데이터 최적화

32 of 32

♥ 감사합니다 ♥

32