LLM에 RAG 설정 도전기 (결론은 어려움)





PDF 기반 RAG 시스템 구축 기록


PDF 기반 RAG 시스템 구축 기록

1. 시작 단계: 목표와 초기 구성

  • 목표: 대량 PDF 과학 논문을 기반으로 LLM이 질의응답, 요약, 통계 기능 수행
  • 초기 환경:
    • OS: Mac Studio M1 Max 64GB (테스트), 이후 Ubuntu 24.04 서버
    • CPU/GPU: Mac Studio M1 Max 10코어 CPU + 32코어 GPU, 서버: Threadripper 2920X + RTX 3090 24GB
    • 저장소: 수만~십만 PDF 파일, 경로: /8TB/arxiv_papers
  • 기본 전략:
    1. PDF 텍스트 추출
    2. 이미지 및 도표 OCR 처리
    3. 임베딩 후 벡터 DB(ChromaDB)에 저장
    4. LLM 연동하여 RAG 구성

2. 초기 시도와 문제점

  • PDF 텍스트 추출: PyMuPDF, pdfplumber 사용 → 도표, 수식, 캡션 누락
  • 이미지/표 OCR: PaddleOCR, EasyOCR → GPU 활용률 낮음, CPU 의존도 높음
  • 임베딩: OpenAI, HuggingFace → 깨진 문자, 임베딩 품질 낮음 → 검색 정확도 저하
  • 병목: 멀티프로세싱 시 CUDA 초기화 문제, 대량 PDF 처리 시 메모리 과부하

3. Mac Studio 64GB 기반 테스트

  • Mac Studio M1 Max 64GB 모델에서 초기 OCR, PDF 텍스트 추출, 임베딩 테스트
  • LLaVA-Next 모델 로컬 실행 가능 여부 검증
  • PDF 샘플 임베딩 후 ChromaDB 연동, 자동화 스크립트(ai_pipeline.py) 초기 버전 테스트
  • 성공적인 기능 검증 후, 대규모 처리와 GPU 최적화를 위해 Ubuntu + RTX 3090 서버 환경으로 확장
  • 교훈: Mac Studio는 소규모 테스트 및 모델 검증에 적합, 대규모 운영은 RTX 3090 서버 필수

4. 개선과 성공 사례

4-1. OCR + 이미지 분석 개선

  • 멀티프로세싱 구조를 spawn 방식으로 변경하여 GPU 활용률 개선
  • LLaVA-Next 모델로 이미지 캡셔닝 + 도표 해석 → 텍스트와 함께 저장
  • EasyOCR로 표와 수식 추출 보완

4-2. PDF 텍스트 처리

  • 텍스트 추출 시 구조적 정보 유지: 섹션, 캡션, 표 헤더 포함
  • 깨진 문자 처리: 정규식 + 문장 단위 클린징

4-3. 임베딩 및 RAG

  • 임베딩 모델: LLaMA 계열 + HuggingFace 모델
  • 벡터 DB: ChromaDB
  • RAG 성공 사례:
    • 논문 질의응답 정확도 80% 이상
    • 도표, 수식 질의 가능
    • 연속 학습 없이도 최신 PDF 추가 가능

5. 사용 장비 및 환경

항목 상세
OS Mac Studio M1 Max 64GB (테스트), Ubuntu 24.04 서버
CPU Mac Studio 10코어 CPU, Threadripper 2920X
GPU Mac Studio 32코어 GPU, RTX 3090 24GB, RTX 2060 8GB (보조)
저장소 8TB 이상 PDF 파일
DB ChromaDB
모델 LLaVA-Next 7B, LLaMA 계열, HuggingFace 임베딩 모델
OCR EasyOCR, PaddleOCR
기타 멀티프로세싱, spawn 초기화 구조, Docker 기반 서비스

6. 최근 진행 상황

  • PDF + 이미지 + 도표 + 수식 통합 분석 가능
  • 자동화 스크립트: PDF → OCR → 임베딩 → ChromaDB → LLM 연동
  • WordPress 업로드 자동화 테스트 진행 중
  • GPU 최적화 완료 → RTX 3090 100% 활용 가능

7. 실패와 교훈

  • CPU 중심 OCR → 처리 속도 느림
  • 멀티프로세싱 시 CUDA 충돌 → spawn 구조로 해결
  • PDF 구조 다양성 → 구조 유지 전처리 필요
  • 교훈: GPU 활용 최적화 없이는 대규모 PDF 분석 불가, OCR+LLM 조합 시 데이터 정합성 중요

8. 결론

  • PDF 기반 RAG는 텍스트 + 이미지 + 도표 통합 처리 필수
  • 멀티프로세싱 + GPU 최적화 필수
  • ChromaDB + LLaVA 연동으로 질의응답, 요약, 자동 통계 가능
  • 현재 시스템은 수십만 논문 처리 가능하며, 새로운 PDF 추가 시 자동 RAG 갱신 가능