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 갱신 가능


Read more

2주택이라 양도세 폭탄인 줄 알았는데… 신고하고 보니 0원이었다

양도소득세 0원… 그날 나는 홈택스 앞에서 심장이 쪼그라들었다 부동산을 팔아본 사람은 안다. 집은 팔아도 마음은 못 판다. 특히 ‘양도소득세’라는 네 글자를 보는 순간, 심장이 먼저 반응한다. 모든 불안의 시작 2020년 3월 20일. 나는 용인 상하동의 한 아파트를 1억 8천9백만 원에 샀다. 그리고 2020년 9월 25일, 드디어 입주. “여긴 우리

By ilikeafrica
마지막 비닐하우스 설치

마지막 비닐하우스 설치

양평집이 팔리면 언제 또 쳐볼지 모르는 비닐하우스를 설치했다. 하지만 몇가지 어설픈 곳이 있다. 그 어설픈게 아주 큰 실수로 곧 다가올지도 모르겠다. 비닐하우스를 치다보니 박스에 적혀있다. "외부용으로는 0.06mm 이상 두께를 사용하세요!" 하지만 내가 구입한 비닐의 두께는 0.05mm ㅋㅋㅋㅋㅋ 이것의 결과가 어떻게 다가올지는 이미 비닐하우스 만드는 과정에 발생하는

By ilikeafrica
일본 삿포로 오타루 여행

일본 삿포로 오타루 여행

삿포로 여행중 오후 느즈막히 오타루행 JR 열차를 발권을 하고 정보 없는 곳으로 출발했다. 가면서 창밖으로 보이는 풍경은 아무래도 베를린의 동독 지역이었다. 일본과 독일이 그 옛날 왕래가 잦았다더니 이런 하나 하나 까지 서로가 맞았나부다. 트램도 그렇고 집짓는것도 그렇고 돌아보면 볼수록 동독 냄새가 너무 난단 말이지…. 우야튼 가는 도중 북해도의 파도를 본다.

By ilikeafrica