오늘은 RAG-LLM과 관련된 문헌이 있어 공유하고자 합니다.
Developing Retrieval Augmented Generation (RAG) Based LLM Systems from PDFs: An Experience Report
https://arxiv.org/html/2410.15944v1#S4
배경 및 문제점
- LLM은 정적 학습 데이터에 의존하기 때문에 최신 정보가 부족하거나 응답이 불완전할 수 있으며, 이는 중요한 의사 결정에서 투명성과 정확성을 저해할 수 있습니다. 또한 환각 (hallucination)현상 또한 정확한 정보를 원하는 상황에 LLM을 사용하는 것이 꺼려지는 주요한 이유이기도 합니다.
- 이러한 문제점 해결에 도움이 되는 대표적인 방법이 RAG-LLM입니다.
RAG(Retrieval Augmented Generation)의 역할
- RAG 시스템은 외부 데이터 소스(PDF, 데이터베이스, 웹사이트 등)를 활용하여 생성된 콘텐츠를 정확하고 최신 데이터에 기반하도록 합니다.
- 이를 통해 정보 중심의 작업에서 높은 신뢰성을 보장하며, 지식 집약적인 작업에 적합한 솔루션을 제공합니다.
연구 목적 및 내용
- 본 연구 보고서는 PDF 문서를 주요 지식 기반으로 통합한 RAG 시스템 구축 경험을 단계별 가이드 형태로 문서화하고 있습니다.
- 주요 논의 내용:
- 시스템 설계 선택
- 시스템 개발 과정
- 평가와 개선 방법
RAG란 무엇인가?
개념
- RAG(Retrieval Augmented Generation)는 정보 검색(IR)과 자연어 생성(NLG)의 두 가지 핵심 NLP 구성 요소를 통합한 모델입니다.
- Lewis 등이 처음 제안한 RAG 프레임워크는 밀집 검색(dense retrieval) 기법을 대규모 생성 모델과 결합하여 맥락적으로 적합하고 사실적으로 정확한 응답을 생성합니다(https://proceedings.neurips.cc/paper/2020/file/6b493230205f780e1bc26945df7481e5-Paper.pdf)in Neural Information Processing Systems (NeurIPS 2020), 2020
- RAG 모델은 대규모 코퍼스에서 관련 구절을 검색한 후 이를 생성 과정에 통합함으로써, 최신 정보를 활용하여 응답의 사실적 기반을 강화합니다.
RAG 시스템의 워크플로우
RAG 시스템은 실시간으로 관련 정보를 바탕으로 LLM 출력을 강화하며, 다음과 같은 주요 단계를 포함합니다:
- 데이터 수집
- 외부 소스(PDF, 구조화된 문서, 텍스트 파일 등)에서 관련성 높은 도메인 특화 텍스트 데이터를 수집합니다.
- 수집된 문서는 시스템이 검색할 지식 기반으로 활용됩니다.
- 데이터 전처리
- 수집된 데이터를 정리 및 분할하여 의미 있는 작은 단위(토큰, 단어 그룹 등)로 나눕니다.
- 전처리는 텍스트 정리(예: 노이즈 제거, 포맷 수정), 정규화 및 세그먼트화를 포함하며, 검색 정확성과 효율성을 높이는 데 필수적입니다.
- 벡터 임베딩 생성
- 전처리된 데이터는 BERT, Sentence Transformers와 같은 임베딩 모델을 사용하여 벡터 표현으로 변환됩니다.
- 이 벡터는 텍스트의 의미론적 정보를 캡처하며, 유사도 검색에 활용됩니다.
- 생성된 벡터는 검색 속도가 최적화된 데이터베이스(Vector Store)에 저장됩니다.
- 관련 콘텐츠 검색
- 사용자가 쿼리를 입력하면, 해당 쿼리도 벡터 임베딩으로 변환됩니다.
- **검색기(Retriever)**가 벡터 스토어에서 가장 관련성 높은 데이터 청크를 검색합니다.
- 이를 통해 최신 정보와 가장 관련된 데이터를 응답 생성 과정에서 활용할 수 있습니다.
- 맥락 보강
- 고정된 LLM 지식과 유연한 도메인 특화 정보를 결합하여, LLM의 출력을 최신 정보와 정합되도록 조정합니다.
- LLM 응답 생성
- 사용자 쿼리와 검색된 관련 콘텐츠를 포함한 맥락 기반 프롬프트를 LLM(GPT, T5, Llama 등)에 전달합니다.
- LLM은 이를 처리하여 유창하면서도 사실적으로 기반이 되는 응답을 생성합니다.
- 최종 출력
- RAG 시스템의 출력은 다음과 같은 이점을 제공합니다:
- 환각(hallucination)이나 오래된 정보 생성 위험 최소화.
- 응답을 현실 세계의 데이터 소스와 연결하여 해석 가능성 강화.
- 관련성과 정확성을 높인 정보로 풍부한 응답 제공.
- RAG 시스템의 출력은 다음과 같은 이점을 제공합니다:
RAG의 의의
- RAG 모델은 기존 생성형 AI의 블랙박스 한계를 넘어, 글라스박스(glass-box) 모델을 구현합니다.
- 이를 통해 지식 집약적 도메인에서 정보의 정확성과 투명성을 크게 향상하며,
챗봇, 가상 비서, 자동화된 고객 서비스 시스템과 같은 고급 NLP 응용의 핵심으로 자리 잡고 있습니다. - 본 연구는 이러한 RAG 통합 접근법이 제공하는 새로운 가능성을 제시하고 있습니다.
결정 요소 : Fine-Tuning vs. RAG vs. Base Models
요소 | Fine-Tuning | RAG | Base Models |
작업의 특성 | 도메인 특화, 전문 용어 처리 | 실시간 정보 검색이 필요한 동적 작업 | 범용 작업, 프로토타이핑, 폭넓은 적용성 |
데이터 요구사항 | 안정적이고 변경이 드문 정적 또는 독점 데이터 | 최신 또는 대규모 외부 지식베이스 접근 | 특화된 정보나 최신 정보 불필요 |
자원 제약 | 학습에 높은 계산 자원 필요 | 높은 추론 비용 및 복잡한 인프라 요구 | 자원 소모 적고, 빠르게 배포 가능 |
성과 목표 | 정밀성과 특정 언어 적응성 극대화 | 동적 소스 기반의 정확하고 맥락적인 응답 제공 | 정밀도보다 속도와 비용 효율성 최적화 |
요약
- Fine-Tuning은 안정적 데이터와 고정밀 작업에 적합.
- RAG는 동적이고 대규모 데이터를 활용해야 하는 경우 최적.
- Base Models는 자원 소모를 줄이고 일반적인 작업을 처리하는 데 효과적.
- Table 에서 제시된 프레임워크는 프로젝트의 요구사항에 맞는 최적의 접근법을 선택하는 가이드라인을 제공합니다.
RAG 시스템에서 PDF 문서 형식의 이해
PDF의 중요성
- PDF 문서는 RAG 애플리케이션에 매우 중요한 데이터 소스입니다.
- 연구 논문, 법률 문서, 기술 매뉴얼, 금융 보고서 등 고가치 콘텐츠가 주로 PDF 형식으로 배포됩니다.
- 과학 데이터, 기술 다이어그램, 법률 용어, 금융 수치 등 다양한 데이터 유형에 접근할 수 있어 풍부하고 맥락적으로 적합한 정보를 제공합니다.
- 일관된 형식 덕분에 텍스트 추출 정확성이 높고, 문맥 보존이 용이하여 정확한 응답 생성이 가능합니다.
- PDF의 메타데이터(저자, 키워드, 생성 날짜)와 주석(하이라이트, 코멘트)도 추가적인 문맥을 제공하여 검색 및 생성 정확도를 향상시킵니다.
PDF 문서 형식의 문제점
PDF 처리의 어려움
- 복잡한 레이아웃
- PDF 문서의 다단 구조, 헤더/푸터, 삽입된 이미지 등은 텍스트 추출 과정을 복잡하게 만듭니다.
- 다단 형식 또는 많은 표와 그림이 포함된 문서에서는 텍스트 추출 정확도가 크게 떨어집니다.
- 표준화 부족
- PDF 생성 과정에서의 비표준화(다양한 인코딩 방식, 내장 폰트 등)가 추출된 텍스트를 불완전하거나 왜곡되게 만듭니다.
- 스캔 문서와 OCR 문제
- 스캔된 PDF는 텍스트 대신 이미지 형태로 저장되므로 **광학 문자 인식(OCR)**이 필요합니다.
- OCR은 저화질 스캔, 필기체 텍스트 등에서 오류를 초래할 가능성이 높습니다.
- 비텍스트 요소 처리
- 표, 차트, 이미지 등 비텍스트 요소는 선형 텍스트 흐름을 방해하여 RAG 모델의 처리에 어려움을 줍니다.
- 이를 처리하려면 특화된 도구와 전처리 과정이 필요합니다.
함께 볼 만한 이전 게시글:
https://medtalk.tistory.com/entry/마크다운의-장점-RAG-LLM에서-텍스트-추출과-임베딩의-용이성
RAG-LLM 적용에 있어 PDF 문서 처리의 핵심 요소
PDF 처리 시 고려사항
- 정확한 텍스트 추출
- 복잡한 형식을 가진 PDF에서 정확히 텍스트를 추출하는 것이 필수적입니다.
- 추천 도구:
- Python용 라이브러리: pdfplumber, PyMuPDF(fitz)또는 LlamaParse등 상용화 툴 등.
- 검증 및 정리:
- 추출된 텍스트의 완전성과 정확성을 검증하여 오류를 최소화합니다.
- 효율적인 청킹(Chunking)
- PDF는 대규모 텍스트 블록을 포함하므로, 이를 더 작은 단위로 나누는 것이 중요합니다.
- 청킹 방법:
- 의미 기반 청킹(Semantic Chunking): 문단 또는 섹션과 같은 논리적 구분에 따라 텍스트를 나눕니다.
- 동적 청크 크기 조정: 문서 유형과 모델 입력 한도에 따라 청크 크기를 조정합니다.
- 전처리 및 정리
- 텍스트의 노이즈를 제거하여 검색 및 생성 모델 성능을 향상시킵니다.
- 주요 작업:
- 불필요한 내용 제거: 헤더, 푸터, 페이지 번호 등 의미 없는 텍스트를 제거.
- 텍스트 정규화: 소문자 변환, 특수 문자 제거, 공백 제거 등을 통해 일관된 형식 유지.
- PDF 메타데이터와 주석 활용
- 메타데이터와 주석은 검색 작업에 추가적인 문맥을 제공할 수 있습니다.
- 활용 방법:
- 메타데이터 추출: PyMuPDF, pdfminer.six 등을 사용해 PDF의 내장 메타데이터를 추출.
- 주석 분석: 중요 섹션이나 하이라이트된 부분을 우선 처리.
- 에러 처리 및 신뢰성 확보
- PDF 처리의 안정성을 유지하기 위해 에러 처리 및 로깅을 구현합니다.
- 에러 처리: try-except 블록을 사용해 처리 중 발생하는 오류를 관리.
- 로깅: 처리 단계와 성공/실패 정보를 기록하여 디버깅 및 최적화에 활용.
함께 볼만한 이전글:
'생물.컴퓨터.통계' 카테고리의 다른 글
AI의 의학도전 (20)-데이터의 연금술: AI는 어떻게 고품질 합성데이터를 만들어내는가 (0) | 2025.01.06 |
---|---|
눈에 띄는 AI 에이전트 시리즈: BabyAGI, PrivateGPT, GPT Researcher (0) | 2025.01.04 |
웹기반 시각화의 트리오: HTML, CSS, JavaScript로 데이터에 생명 불어넣기 (2) | 2024.12.10 |
Claude 아티팩트의 모든 것: 10가지 형식으로 만드는 풍부한 시각화와 분석 (1) | 2024.12.10 |
Claude Project 활용 가이드 (1) : 연구, 교육, 투자 분석까지 (7) | 2024.12.08 |