728x90
ESG 관련 내용은 제하고, 졸업 프로젝트에 필요한 RAG 기술 관련 내용을 중심으로 정리했다.
Technology Overview (only about RAG)
1. RAG 작동 과정
- Data Gathering(데이터 수집): 다양한 원천 데이터(PDF, TXT, CSV, 웹 URL 등)를 사용해 LLM에 최신 지식이나 심층 지식 전달
- Data Loading: 수집한 데이터를 시스템으로 불러오는 단계 (데이터 구조 파악, 불필요한 텍스트 제거 등)
- Data Splitting: 데이터를 Chunk 단위의 작은 조각으로 나누는 단계. LLM에 불필요한 정보가 제공되는 것을 최소화. (다만 청크 사이즈가 너무 작으면 핵심 정보 누락, 텍스트 맥락의 모호성 발생)
- Data Embedding: 청크 단위로 분할된 텍스트를 숫자 벡터로 전환하는 단계. 의미론적 특성 보존을 위해 원천 데이터세 사용된 언어로 충분히 학습한 임베딩 모델 선정 필요
- Data Storing(데이터 저장): 벡터 데이터베이스에 임베딩된 청크와 메타 정보 저장. (벡터 데이터베이스는 Approximate Nearest Neighbor) 알고리즘을 사용하여 고차원 벡터를 효율적으로 인덱싱 하고 검색)
- Retrieval(문서 검색): 사용자의 질문과 관련된 정보 검색 (코사인 유사도, 앙상블 기법 등 적용)
- Generation(답변 생성): Few-shot learning이나 기타 특화된 프롬프트 템플릿 등을 사용하면 답변 품질 향상 가능. 프롬프트 엔지니어링을 통해 오픈소스 LLM을 최적화.
2. RAG 시스템 구축에 활용되는 오케스트레이션 프레임워크
(1) LangChain
- 모듈화된 구조와 풍부한 통합 기능 제공으로 복잡한 LLM 애플리케이션 개발에 용이
- 다양한 LLM, 임베딩 모델, 벡터 저장소에 높은 호환성 제공
- Chain과 Agent라는 개념을 토대로 복잡한 작업을 효율적으로 구현 가능
(2) LlamaIndex
- 대규모 데이터셋에 효율적인 인덱싱과 쿼리 기능
- 다양한 데이터 소스에 대한 커넥터 제공
- 고급 쿼리 엔진 옵션을 통해 정확하고 신속한 정보 검색 지원
3. Limitation of RAG Systems
(1) RAG 시스템의 성능이 구성 요소의 개별 성능에 크게 의존
- 데이터 분할 시 청크 사이즈 => 필요한 정보 누락 가능성 => retriever와 LLM 등 RAG 시스템 전반에 악영향
- 임베딩 모델의 품질 => 의미적 유사성 포착에 영향 => 연관 정보 검색에 영향
- 검색기의 성능 => LLM에 전달되는 정보의 품질 => 답변의 정확도
(2) 중간 정보 소실
- 컨텍스트가 길어지면 LLM 정보처리 작업에 오류 발생 가능 (전체 정보를 균형 있게 처리하지 못하고 시작과 끝부분에 위치한 정보에 집중)
- 복잡하고 긴 컨텍스트를 다룰 때는 정보 소시 문제를 완화하기 위한 별도의 알고리즘 적용 필요
(3) 환각 현상 발생 가능성
- 외부 지식 베이스를 사용한다고 하더라도 검색 정보를 잘못 해석하거나 누락하여 환각 현상 발생 가능
- LLM의 응답에 대한 추가적인 검증 과정 도입 필요
연구 내용
1. Proposed method for RAG System (한계점 극복 및 모델 개선을 위한 제안)
(1) 원본 문서의 레이아웃 분석을 위한 알고리즘 개발
- 문서에서 텍스트 추출 시 레이아웃에 대한 고려가 없으면 데이터 무결성 훼손
- 결과적으로는 검색기 성능을 저하시켜 LLM이 부적절한 답변일 생성할 확률을 높인다
- 문서의 레이아웃을 분석하는 알고리즘을 개발하고, 텍스트 추출에 앞서 적용
- 원본 문서의 의미론적 구조 보존
- RAG 시스템의 정보 검색 및 답변 생성 성능 향상
(2) ensemble retriever(앙상블 검색기) 구현
- 다양한 검색 모델을 결합하여 정보 검색의 정확성과 신뢰성을 향상하는 기법
- hybrid search (sparse retriever + dense retriever)
- sparse retriever: 키워드 기반 문서 탐색
- 장점: 임베딩 과정 불필요, 검색 속도 빠름
- 단점: 동의어나 유사어 인식에 취약
- dense retriever: 의미적 유사성을 기반으로 관련 정보 검색
- 장점: 동의어나 유사어 등을 감안하여 검색 결과 제공 가능
- 단점: 고성능 임베딩 모델이 전제되지 않으면 연관 문서 검색 성능 크게 저하 가능. 핵심 키워드가 누락된 청크를 가장 관련성 높은 정보로 선별하는 오류를 일으키기도 함.
- sparse retriever: 키워드 기반 문서 탐색
- BM25(sparse retriever) + FAISS(dense retriever) => ensemble retrivever 구현
(3) Re-ranking 알고리즘 적용
- 검색된 정보의 정확성을 높이고, 일부 주요 정보 누락 가능성 개선 목적
- 문서 검색 다녜 이후에 재정렬 알고리즘을 적용하여, 검색된 연관 정보의 순서를 효과적으로 재구성
(4) 다층적 Fact-cheking 메커니즘 도입
- 선행 검증: 최종 결론 도출에 앞서, 앙상블 기법이나 프롬프트 엔지니어링 등을 활용하여 LLM 답변을 내부적으로 검증
- Multi-model Ensemble 기법을 활용하여 여러 모델에서 얻은 출력을 비교
- Self-consistency Check을 통해 동일 모델의 다양한 출력 평가
- 후행 검증
- LLM이 산출한 최종 결론에 대해 인간 전문가가 직접 답변의 정확성 평가
- 답변의 사실적 정확성, 맥락적 적절성, 일관성, 윤리적 측면까지 종합적으로 평가
3. 회사 내규 검토 과정 (6단계)
(1) 레이아웃 분석
- 다단구조 여부 파악
- 헤더, 푸터 텍스트 확인 (헤더, 푸터 텍스트를 딕셔너리 형태로 저장)
(2) 데이터 로드&전처리
- 원본 문서의 구조적 특성을 감안하여 텍스트 추출
- 헤더/푸터 딕셔너리를 바탕으로 불필요한 텍스트 삭제
(3) 데이터 분할
- 2단계에 걸쳐 전처리된 텍스트가 여러 개의 작은 청크로 분할
- [1차 분할] 조항번호 등을 구분 값으로 하여 비교적 큰 사이즈의 청크 생성
- [2차 분할] 1차청크가 더 작은 단위의 청크로 분할되면서, 연관정보 검색에 최적화된 소형 청크 생성
(4) 임베딩
- 허깅페이스에 공개된 'ko-sroberta' 모델 기반
- 2차 분할된 청크를 고차원 숫자 벡터로 변환 (벡터 검색을 위한 데이터로 활용)
(5) 연관정보 검색
- Ensemble retriever 활용
- 사용자 질의와 연관된 정보 검색 -> re-ranking으로 재정렬 -> LLM에 전달
(6) 답변 생성
- LLM 프롬프트와 재정렬된 연관 정보 참고하여 최종 답변 생성
- 답변에 참고한 정보를 함께 제공
Eun-Sil Choi. (2024). Development of an Automated ESG Document Review System using Ensemble-Based OCR and RAG Technologies. Journal of The Korea Society of Computer and Information, 29(9), 25-37.
728x90
'학교 공부 > 졸업 프로젝트 (RAG)' 카테고리의 다른 글
[논문 Review] 복지 정책 정보 제공을 위한 RAG 기반 대화형 시스템 개발 (2) | 2025.04.09 |
---|