AI

전처리

hyunai 2026. 5. 20. 14:45

원본 파일을 그냥 쓰면 안되는 이유?

  • AI(LLM)한테 문서를 줄 때 그냥 원본 파일을 바로 던져주면 안된다.
  • PDF 파일에 표, 머리글/바닥글, 페이지 번호, 이미지 캡션, 특수문자, 줄바꿈 깨짐 같은게 다 섞여있다.
  • AI한테 이걸 그대로 주면 쓸데 없는 노이즈가 너무 많아서 검색 품질이 엄청 떨어지게 된다.
  • 전처리는 한마디로 AI가 읽기 좋은 깨끗한 텍스트로 만드는 과정

전처리 전체 흐름

전처리 단계 1 - 텍스트 추출(Text Extraction)

  • 파일 포맷에서 순수 텍스트만 꺼내는 것
  • PDF, HWP, Word 같은 파일은 텍스트가 아닌 바이너리 형식이기 때문에 먼저 이 파일을 열어서 텍스트만 뽑아내야된다.
  • 텍스트를 뽑아내면 쓸데없는 것들이 잔뜩 섞여 나오기 때문에 다음 단계가 필요하다.

전처리 단계 2 - 정제(Cleaning)

  • AI한테 의미 없는 노이즈를 제거하는 것

전처리 단계 3 - 정규화(Normalization)

  • 같은 의미인데 다르게 표현된 것들을 하나로 통일하는 것
  • 만약 임베딩 모델이 RAG와 rag를 다른 단어로 인식할 수 있다.
  • 통일을 하지 않으면 검색 품질이 떨어진다.
문제 정규화 전 정규화 후
전각/반각 혼재 AI서비스, AI서비스 AI서비스
유니코드 공백 행정 안전부 (공백이 이상함) 행정안전부
영문 대소문자 RAG, rag, Rag RAG (통일)
줄바꿈 방식 차이 \r\n, \n, \r 혼재 \n 통일
날짜 표현 '25년, 2025년, 2025.01 2025년
숫자 단위 18,313백만원, 183억원 그대로 or 통일

전처리 단계 4 - 메타데이터 태그 부착

  • 나중에 검색 필터로 쓸 정보를 미리 붙여두는 것
  • 청크에 메타데이터를 붙여두면 나중에 AI가 검색할 때 "이 기관 문서만", "2025년 이후 문서만" 같은 필터링이 가능하다.
  • 이 메타데이터 덕분에 나중에 "행안부 문서만 검색", "법령 유형만 검색" 같은 필터 검색이 가능해진다.

전처리 완료 후 - 청킹과 벡터화

  • 전처리가 끝난 텍스트는 이제 청킹(분할) -> 임베딩(벡터화) -> 저장 순서로 진행된다.

전체 흐름을 한 줄로 요약

단계 이름 하는 일 예시
1 텍스트 추출 파일 → 순수 텍스트 PDF → 문자열
2 정제 노이즈 제거 페이지번호, 머리글 삭제
3 정규화 표현 통일 AI → AI
4 메타데이터 부착 필터 정보 태깅 기관명, 날짜, 문서유형
5 청킹 단락 단위 분할 500토큰 청크
6 임베딩 텍스트 → 벡터 [0.23, -0.87, ...]
7 저장 pgvector에 적재 검색 DB

'AI' 카테고리의 다른 글

파이프라인  (0) 2026.05.19
MCP(Model Context Protocol)  (0) 2026.05.19