RAG 기본 개념

Retrieval Augumentation Generation : 기존의 언어 모델에 외부 지식을 결합하여 더욱 정확하고 최신의 정보를 제공하는 혁신적인 접근 방식

 

모델을 학습(fine-tuning)하는 것이 아니라 RAG를 쓰는 이유가 무엇인가?

 

RAG에서 Knowledge Base

 


RAG DB를 활용하기 위한 전처리 과정

 

Multi-Modal RAG


Extract Text

extract text(텍스트 추출) 단계는, 다양한 원시 데이터(문서, PDF, 이미지, 스캔본, 웹페이지 등)를 LLM이 이해할 수 있는 순수 텍스트로 바꾸는 과정이에요.

1. 왜 Extract Text가 중요한가?

  • LLM은 텍스트 기반 모델 → 숫자, 이미지, 표, 그래프 등을 직접 이해하지 못함.
  • 따라서 PDF, Word, 이미지에 담긴 자연어 정보를 뽑아내야 LLM이 학습/추론에 활용 가능.
  • 잘못 추출되면 정보 손실이나 오해가 생김 → 검색 품질, 답변 정확도에 직접 영향.

데이터 소스 함수/도구 기능 (한 줄 설명)

PDF PyPDF2.PdfReader() PDF 문서에서 페이지 단위 텍스트 추출
  pdfplumber.open() PDF에서 텍스트 + 표까지 정밀 추출
  PyPDFLoader PDF 파일을 문서 객체(Document)로 로드
Word docx.Document() Word(.docx) 문서에서 텍스트 읽기
이미지/스캔본 pytesseract.image_to_string() 이미지에서 OCR로 텍스트 추출
  easyocr.Reader().readtext() 다국어 OCR + 텍스트 위치 정보 제공
  Azure Computer Vision OCR API 클라우드 기반 OCR, 문장 단위 텍스트 추출
CSV/표 pandas.read_csv() CSV 파일을 DataFrame으로 로드
  pandas.read_excel() Excel 파일을 DataFrame으로 로드
  CSVLoader CSV 파일을 문서 객체로 로드
웹/HTML BeautifulSoup.get_text() HTML 태그 제거 후 본문 텍스트 추출
  trafilatura.extract() 뉴스/블로그 본문 중심 텍스트 추출
  UnstructuredHTMLLoader HTML 파일을 문서 객체로 로드
JSON JSONLoader JSON 파일을 문서 객체로 로드
텍스트 파일 TextLoader 단순 텍스트 파일을 문서 객체로 로드
디렉토리 DirectoryLoader 디렉토리 내 모든 파일을 문서 객체로 로드
문서 분할 load_and_split() 로더 + splitter를 이용해 문서를 청크 단위로 나누어 List[Document] 형태 반환

2. Extract Text의 대표적인 사례

  1. PDF/Text 문서
    • 단순 텍스트 문서 → 그대로 읽음
    • PDF → PyPDF2, pdfplumber 같은 도구로 텍스트 추출
  2. 이미지/스캔 문서
    • OCR(광학 문자 인식, Optical Character Recognition) → Tesseract, Azure Computer Vision OCR 사용
    • 예: 스캔한 계약서 → 텍스트 변환 후 DB 저장
  3. 표·엑셀 데이터
    • 셀별 데이터 추출 → 구조화된 텍스트(JSON, CSV)로 변환
  4. 웹 페이지
    • HTML 크롤링 → BeautifulSoup 같은 라이브러리로 텍스트만 정제

3. 요약

 

  • Extract Text = RAG의 첫 관문
  • 모든 비텍스트 데이터를 LLM이 이해할 수 있는 텍스트로 변환하는 과정.
  • OCR, PDF 파서, 웹 크롤링 등 다양한 기술이 쓰이며, 이 품질이 곧 RAG 성능의 기반이 됨.

4. 참고 (OCR이 정확히 뭘까?)

  • 정의: 이미지 안에 들어 있는 글자를 찾아서 컴퓨터가 읽을 수 있는 텍스트 데이터로 바꾸는 기술. ( Optical Character Recognition )
  • 예시 상황
    • 스캔한 계약서 PDF에서 글자 뽑기
    • 사진 찍은 영수증에서 금액, 품목 읽어내기
    • 교과서 페이지 사진 → 텍스트 변환

🔎 어떻게 동작할까?

  1. 이미지 전처리: 흑백 변환, 노이즈 제거, 기울어진 글자 보정
  2. 문자 영역 탐지: 이미지에서 글자가 있는 부분을 찾아냄 (예: 박스 쳐주기)
  3. 문자 분할: 글자를 하나하나 쪼개서 인식 준비
  4. 패턴/모델 인식: 학습된 딥러닝 모델이나 패턴 매칭으로 "이건 A다", "이건 3이다" 식으로 인식
  5. 텍스트 출력: 사람이 읽는 문장 그대로 문자열로 반환

✨ OCR의 특징

  • 장점: 문서 디지털화, 검색 가능하게 만들기, 데이터베이스 구축에 유용
  • 한계:
    • 글씨체가 특이하거나 흐리면 정확도↓
    • 표나 수식, 복잡한 레이아웃은 잘 못 읽음 (→ 고급 OCR 엔진은 보완)