생물.컴퓨터.통계

RAG기반 LLM의 사용자 경험

프로페서 H 2025. 1. 13. 16:36

 

 

오늘은 RAG-LLM과 관련된 문헌이 있어 공유하고자 합니다. 

 

Developing Retrieval Augmented Generation (RAG) Based LLM Systems from PDFs: An Experience Report

https://arxiv.org/html/2410.15944v1#S4

 

Developing Retrieval Augmented Generation (RAG) based LLM Systems from PDFs: An Experience Report

Best Practice: Ask the Model to adopt a Persona  Provide specialized context-Rich instructions that guide the assistant on how to handle queries, what tone to use (e.g., formal, friendly), and which domains to prioritize. This ensures the assistant genera

arxiv.org

 

배경 및 문제점

  • 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 출력을 강화하며, 다음과 같은 주요 단계를 포함합니다:

  1. 데이터 수집
    • 외부 소스(PDF, 구조화된 문서, 텍스트 파일 등)에서 관련성 높은 도메인 특화 텍스트 데이터를 수집합니다.
    • 수집된 문서는 시스템이 검색할 지식 기반으로 활용됩니다.
  2. 데이터 전처리
    • 수집된 데이터를 정리 및 분할하여 의미 있는 작은 단위(토큰, 단어 그룹 등)로 나눕니다.
    • 전처리는 텍스트 정리(예: 노이즈 제거, 포맷 수정), 정규화  세그먼트화를 포함하며, 검색 정확성과 효율성을 높이는 데 필수적입니다.
  3. 벡터 임베딩 생성
    • 전처리된 데이터는 BERT, Sentence Transformers와 같은 임베딩 모델을 사용하여 벡터 표현으로 변환됩니다.
    • 이 벡터는 텍스트의 의미론적 정보를 캡처하며, 유사도 검색에 활용됩니다.
    • 생성된 벡터는 검색 속도가 최적화된 데이터베이스(Vector Store)에 저장됩니다.
  4. 관련 콘텐츠 검색
    • 사용자가 쿼리를 입력하면, 해당 쿼리도 벡터 임베딩으로 변환됩니다.
    • **검색기(Retriever)**가 벡터 스토어에서 가장 관련성 높은 데이터 청크를 검색합니다.
    • 이를 통해 최신 정보와 가장 관련된 데이터를 응답 생성 과정에서 활용할 수 있습니다.
  5. 맥락 보강
    • 고정된 LLM 지식 유연한 도메인 특화 정보를 결합하여, LLM의 출력을 최신 정보와 정합되도록 조정합니다.
  6. LLM 응답 생성
    • 사용자 쿼리와 검색된 관련 콘텐츠를 포함한 맥락 기반 프롬프트를 LLM(GPT, T5, Llama 등)에 전달합니다.
    • LLM은 이를 처리하여 유창하면서도 사실적으로 기반이 되는 응답을 생성합니다.
  7. 최종 출력
    • RAG 시스템의 출력은 다음과 같은 이점을 제공합니다:
      • 환각(hallucination)이나 오래된 정보 생성 위험 최소화.
      • 응답을 현실 세계의 데이터 소스와 연결하여 해석 가능성 강화.
      • 관련성과 정확성을 높인 정보로 풍부한 응답 제공.

 

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 처리의 어려움

  1. 복잡한 레이아웃
    • PDF 문서의 다단 구조, 헤더/푸터, 삽입된 이미지 등은 텍스트 추출 과정을 복잡하게 만듭니다.
    • 다단 형식 또는 많은 표와 그림이 포함된 문서에서는 텍스트 추출 정확도가 크게 떨어집니다.
  2. 표준화 부족
    • PDF 생성 과정에서의 비표준화(다양한 인코딩 방식, 내장 폰트 등)가 추출된 텍스트를 불완전하거나 왜곡되게 만듭니다.
  3. 스캔 문서와 OCR 문제
    • 스캔된 PDF는 텍스트 대신 이미지 형태로 저장되므로 **광학 문자 인식(OCR)**이 필요합니다.
    • OCR은 저화질 스캔, 필기체 텍스트 등에서 오류를 초래할 가능성이 높습니다.
  4. 비텍스트 요소 처리
    • 표, 차트, 이미지 등 비텍스트 요소는 선형 텍스트 흐름을 방해하여 RAG 모델의 처리에 어려움을 줍니다.
    • 이를 처리하려면 특화된 도구와 전처리 과정이 필요합니다.

 

함께 볼 만한 이전 게시글:

https://medtalk.tistory.com/entry/마크다운의-장점-RAG-LLM에서-텍스트-추출과-임베딩의-용이성


RAG-LLM 적용에 있어 PDF 문서 처리의 핵심 요소 

PDF 처리 시 고려사항

  1. 정확한 텍스트 추출
    • 복잡한 형식을 가진 PDF에서 정확히 텍스트를 추출하는 것이 필수적입니다.
    • 추천 도구:
      • Python용 라이브러리: pdfplumber, PyMuPDF(fitz)또는 LlamaParse등 상용화 툴 등.
    • 검증 및 정리:
      • 추출된 텍스트의 완전성과 정확성을 검증하여 오류를 최소화합니다.
  2. 효율적인 청킹(Chunking)
    • PDF는 대규모 텍스트 블록을 포함하므로, 이를 더 작은 단위로 나누는 것이 중요합니다.
    • 청킹 방법:
      • 의미 기반 청킹(Semantic Chunking): 문단 또는 섹션과 같은 논리적 구분에 따라 텍스트를 나눕니다.
      • 동적 청크 크기 조정: 문서 유형과 모델 입력 한도에 따라 청크 크기를 조정합니다.
  3. 전처리 및 정리
    • 텍스트의 노이즈를 제거하여 검색 및 생성 모델 성능을 향상시킵니다.
    • 주요 작업:
      • 불필요한 내용 제거: 헤더, 푸터, 페이지 번호 등 의미 없는 텍스트를 제거.
      • 텍스트 정규화: 소문자 변환, 특수 문자 제거, 공백 제거 등을 통해 일관된 형식 유지.
  4. PDF 메타데이터와 주석 활용
    • 메타데이터와 주석은 검색 작업에 추가적인 문맥을 제공할 수 있습니다.
    • 활용 방법:
      • 메타데이터 추출: PyMuPDF, pdfminer.six 등을 사용해 PDF의 내장 메타데이터를 추출.
      • 주석 분석: 중요 섹션이나 하이라이트된 부분을 우선 처리.
  5. 에러 처리 및 신뢰성 확보
    • PDF 처리의 안정성을 유지하기 위해 에러 처리 및 로깅을 구현합니다.
    • 에러 처리: try-except 블록을 사용해 처리 중 발생하는 오류를 관리.
    • 로깅: 처리 단계와 성공/실패 정보를 기록하여 디버깅 및 최적화에 활용.

 

 
 
 

마크다운의 장점: RAG-LLM에서 텍스트 추출과 임베딩의 용이성

마크다운, RAG-LLM 기반 인공지능 시대에 현대 문서 작성의 새로운 지평을 열 수 있을까? 문서 작성은 오늘날 정보의 전달과 공유에 있어 필수적인 부분이다. 그런데 기존의 파일 형식들, 예를 들

medtalk.tistory.com

 

함께 볼만한 이전글:
 

나만의 데이터로 GPT 활용-local LLM 구축 도전기 (2): Ollama-LLaMa

지난 번 글에서는 LangChain기반 AI 모델 구축의 일반적인 내용을 담았고 이번에는 실제 구축한 LLM 모델에 대해 설명하고자 한다. 이로서 인터넷 서버를 통하지 않고 local computer인 내 노트북, 내 데

medtalk.tistory.com