캡스톤디자인 최종발표
RAG 기술을 활용한 부동산 챗봇 구현 및 성능 개선 연구
이화여자대학교 데이터사이언스대학원 ODDS팀
2024.6
INDEX
2
part1
4. RAG
5. Advanced RAG
6. 검색 알고리즘
part2
7. 데이터 핸들링
8. 데이터 파이프라인
9. 결론
part3
part1 Intro
3
4
팀 소개
안수현
이은미
임유경
데이터 핸들링/알고리즘연구
어플리케이션 개발
Opportunity Determination Drive and Success
모두 다르고 특이하다는 뜻의 "Odd " 가 모여 의지와 몰입을 통해 성공적인 프로젝트를 수행하고자 한다는 의미
데이터 핸들링/알고리즘연구
어플리케이션 기획
데이터 핸들링/알고리즘연구
어플리케이션 개발
1
오즈(ODDS)
내 집 마련의 꿈, 부동산에 대한 관심
5
2
프로젝트 소개
기획의도/문제정의
다양한 플랫폼, 많은 데이터와 산재되어있는 정보
한눈에 볼 수는 없을까?
부동산 전문 챗봇을 만들자!
6
주제 선정
[상용화된 부동산 챗봇 답변 예시]
프로젝트 소개
2
1) 정확한 최신 정보를
2) 자연스럽게 알려주는 부동산 전문 챗봇
1) 최신 정보에 대한 답변을 받을 수 없다.
2) 답변이 부자연스럽다.
AS IS
TO BE
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
수집 데이터
KB 부동산)
KB Think, KB경영연구소) 네이버 포스트, 부동산 전문가 사설, 정부자료, 부동산 뉴스, 부동산 관련 연구 보고서,
부동산 기본 정보 등 컨텐츠 2300개 크롤링
부동산 관련 정보
호갱노노) 아파트별 위치, 학군, 주변 상권, 교통, 평수정보 등
서울시 아파트 정보
청약 홈) 아파트 분양일정 및 청약 경쟁률 데이터 전체 크롤링
한국부동산원) 월별 지역별 청약 경쟁률 데이터를 Pandas로 전처리 하여 년도별 지역별 통계를 낸 후 데이터 저장
청약 정보
2300개
41개
3
데이터
국가법령정보센터) 부동산 관련 법령 41개 본칙/부칙 구분하여 수집
부동산 관련 법령
281개
353개
9
EDA
3
데이터
수집 데이터 워드클라우드 시각화
데이터 특징
단어 | 빈도수 |
아파트 | 2378 |
전세 | 2296 |
부동산 | 2188 |
서울 | 2163 |
고등학교 | 1731 |
단어 | 빈도수 |
경기도 | 637 |
파크 | 321 |
롯데 | 283 |
송파구 | 237 |
강남구 | 224 |
[일반명사]
[고유명사]
[Top5 words]
[Top5 words]
10
VectorDB 구축
- 유사성 검색을위한 데이터 embedding
복잡한 데이터를 간단한 형태로 바꾸는 것
- embedding model: OpenAI model
(클라우드 기반의 간단한 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
part2 연구방법론_검색 알고리즘
11
4. RAG
5. Advanced RAG
6. 검색 알고리즘
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
Hallucination 의 해결
4
오즈봇, 오직 아래의 context 만을 보고 답변해.
모르면 모른다고 말해. 절대 아무거나 답하지마!
RAG
14
Naive RAG 문제점
4
데이터가 있지만 상위 검색 결과로 찾지 못해서 “모른다” 고 답하는 것
RAG
“몰라요”
“몰라요”
🡺 검색을 잘하는 것
🡺 정답 문서를 상위랭크로 올려주는 것
해결 과제
15
Advanced RAG
5
Naive RAG의 부족한 점을 개선하기 위해 개발된 패러다임으로
주로 검색 및 생성의 질을 향상시키기 위한 사전 및 사후 검색 방법을 포함
Advanced RAG
Retrieval-Augmented Generation for Large Language Models: A Survey., Yunfan Gao et al., 2023.
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
Sparse Vector
Dense Vector
Lexical Search
Semantic Search
Indexing
Querying
Embedding
6
검색알고리즘
질문
Hybrid Search
가장 많이 �사용 되는 방법
<고유명사>
옥수삼성
장미1차
롯데캐슬 ...
키워드 정보
문맥 정보
18
6
검색알고리즘
예시1
예시2
Semantic Search 적용 결과
Lexical Search 적용 결과
“몰라요”
“몰라요”
19
Sparse Vector
Dense Vector
Lexical Search
Semantic Search
Indexing
Querying
Embedding
6
검색알고리즘
Hybrid Search
질문
<고유명사>
옥수삼성
장미1차
롯데캐슬 ...
Hybrid Search
키워드 정보
문맥 정보
20
검색알고리즘
6
BM25
TF-IDF를 보정한 모델로 보정파라미터를 추가하여 성능을 개선한 알고리즘
Q: 사용자가 입력한 쿼리
D: 대조해보려는 문서
HNSW (Hierarchical Navigable Small World)
raph Index 중 하나.
가장 밀도가 낮은 계층에서 랜덤한 노드로 시작하여 해당 계층에서 가장 가까운 노드를 찾은 후 다음 계층으로 이동.�최종적으로 원래 쿼리 벡터와 가장 가까운 이웃을 찾을 때까지 계층 탐색
Lexical Search
Semantic Search
21
검색알고리즘
6
질문과 문서 사이의 유사도를 측정. �질문과 문서를 하나의 input 으로 활용하는 Cross-encoder 형태.
따라서 질문과 답변에 대한 더욱 정확한 유사도 측정이 가능.
Ranker 사용 후 ”정답 문서”가 <1순위>로 재배치
Reranker 적용 결과
🡺 유사도 99% 로 재계산 됨
Reranker (검색 후 재정렬)
https://www.pinecone.io/learn/series/rag/rerankers/
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% 를 보임
특징 - 특히 고유명사가 많이 등장하는 특정 아파트 정보에 대해서 가장 많은 차이가 나타남
Part3 연구방법론_데이터
23
7. 데이터 핸들링
8. 데이터 파이프라인
9. 결론
24
① Document 구성
Embedded Data
Keyword Search를 진행할 데이터의 정보 부분
Metadata를 통해 원하는 카테고리로 범위를 좁혀
Hybrid Search를 진행할 수 있도록 함.
(Hybrid Search 결과의 정확도 향상)
Hybrid Search를 진행할 핵심 문서 부분
(Main Data)
7
데이터 핸들링
Metadata
25
② Data Chunking
데이터 핸들링
7
길이에 따른 Trade-off
데이터를 자른 것, 인덱싱 문서의 단위가 됨. (1 chunk = 1 document)
적정 길이의 Chunk를 찾는 것이 LLM output의 Quality를 크게 좌우함을 시사
https://towardsdatascience.com/advanced-retriever-techniques-to-improve-your-rags-1fac2b86dd61
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
데이터 chunking 방식
7
② Data Chunking
1) 1 Document 🡪 2 Documents
2) 메타데이터 각각 보존
3) 연결 되는 부분을 중첩하여 정보 손실 최소화
document1
document2
document1
데이터 핸들링
28
질문 쿼리 분류 🡪 카테고리별 데이터셋 파이프라인 구축
8
질문 카테고리 Classification
질문 쿼리를 Calssification 하여 대분류 카테고리에 접근 �🡪 해당 카테고리 데이터셋 안에서만 Vector Search를 진행함으로써 정답 문서 찾을 확률 UP
데이터 파이프라인
질문
부동산 일반
서울시 아파트
청약
법령
분류
부동산 데이터셋
서울시 아파트 데이터셋
청약 데이터셋
법령 데이터셋
카테고리별 파이프라인
29
KoBERT 모델을 활용한 Classification Modeling
8
Classification Modeling
데이터 파이프라인
⋮
오즈봇 시연 영상
30
31
9
결론
데이터셋 내 다양한 고유명사로 인한 Naive RAG 한계 발생
문서 길이에 따른 Precision-Context 간 Trade-off 문제 발생
검색 알고리즘 최적화를 통한 정확도 21% 향상
다양한 데이터 처리 전략으로 정보손실 최소화
정확도 | |
Naive RAG | Advanced RAG |
0.75 | 0.96 |
21% ↑
부동산 데이터셋 특성상 다양한 카테고리가 존재
질문
분류
부동산 데이터셋
서울시 아파트 데이터셋
청약 데이터셋
법령 데이터셋
카테고리별 파이프라인
데이터파이프라인 구축을 통한 검색 최적화
설정한 문제 해결방안에 대한 솔루션 도출로 연구 목적 달성 !
전략1
전략2
전략3
문제 해결방안
검색 최적화 + 데이터 최적화
♥ 감사합니다 ♥
32