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

토토와 단둘이 여수 여행

토토와 단둘이 여수 여행

이번엔 여수 여행이다. 단둘이 말이다. 토토맘은 제주로...나는 여수로....ㅋㅋㅋㅋ 아주 좋다. 편하다. 토토는 장시간 운전이 피곤한 모양새이다. 언제나 그렇듯이 녀석은 차로 이동하는건 별로인것 같다. 하지만 할수 없다. 대신 좋아라 하는 간식 북어체를 한봉지 사서 미안한 맘을 좀 표현해보고 최대한 산책도 많이 시켜주려 한다.

By ilikeafrica

일본 삿포로 오타루 여행

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

By ilikeafrica
일본 삿포로 나까시마 공원

일본 삿포로 나까시마 공원

추석 기나긴 연휴 기간 다녀온 첫 일본 여행. 삿포로 시내에 호텔 잡고 5일밤을 주구장창 지낸다. 이젠 여행 스타일이 돌아다니기 보단 한곳에 오랫동안 머무르는게 일상이 되었다. 매일 짐 싸고 풀고 하는게 뭔 소용인가도 싶고, 그렇게 편히 즐기다 오는데 여행일듯하다. 처음 가본 일본. 그중에 삿포로. 눈 쌓인 겨울도 아니고, 단풍 빨간 가을도

By ilikeafrica