검증 범위Ollama 공식 Embeddings 문서와 일반적인 검색 증강 생성 구조를 기준으로 작성, 특정 벤치마크 수치는 사용하지 않음

먼저 읽는 30초 요약

이 글에서 가져갈 것

  • RAG 품질은 생성 모델보다 문서 추출과 검색 단계에서 먼저 무너질 수 있습니다.
  • 문서와 질문은 같은 임베딩 모델로 벡터화하고 검색 결과 원문을 함께 보여줍니다.
  • 정답 위치를 아는 질문 세트로 검색 적중과 답변 근거를 분리 평가합니다.
RAG PIPELINE 01

문서가 근거 있는 답이 되는 과정

답이 틀렸다면 검색과 생성을 나누어 확인합니다.

  1. 01
    SPLIT

    문서를 의미 단위로

  2. 02
    EMBED

    같은 모델로 벡터화

  3. 03
    SEARCH

    관련 청크 검색

  4. 04
    ANSWER

    근거·출처와 답변

활용 기준 각 청크에 파일명과 페이지를 보존하고 정답 청크가 검색되었는지부터 평가합니다.
SECTION 01

RAG가 하는 일

사용자 질문을 벡터로 바꾸고, 미리 벡터화한 문서 조각 중 가까운 항목을 찾은 뒤, 그 원문을 생성 모델의 입력에 포함합니다. 모델 가중치를 바꾸지 않으므로 문서 추가·삭제가 비교적 쉽습니다.

모델이 문서를 실제로 이해했다기보다 검색된 문맥을 참고해 답하는 구조입니다. 검색 결과에 정답이 없으면 더 큰 생성 모델을 써도 없는 근거를 만들 수 있습니다.

SECTION 02

문서 수집과 텍스트 추출이 첫 관문입니다

PDF의 읽기 순서, 표, 머리말, 스캔 이미지가 잘못 추출되면 이후 단계는 모두 오염됩니다. 원문 일부와 추출 텍스트를 나란히 비교하고 페이지 번호나 파일 경로 같은 출처 메타데이터를 보존하세요.

암호화 파일, 중복 버전, 오래된 규정 문서를 섞기 전에 범위와 최신성부터 정리합니다. 접근 권한이 다른 문서를 하나의 인덱스에 합치지 않는 것이 중요합니다.

  • 지원 파일 형식 정의
  • OCR 필요 문서 분리
  • 중복·구버전 제거
  • 페이지·제목·경로 메타데이터 보존
  • 문서 권한별 인덱스 분리
SECTION 03

청크는 의미 단위로 나눕니다

너무 짧으면 문맥이 끊기고 너무 길면 관련 없는 내용이 함께 들어갑니다. 고정 글자 수만 사용하기보다 제목과 문단 경계를 우선하고, 겹침은 앞뒤 문맥이 꼭 필요할 때만 추가합니다.

하나의 정답 문장이 어느 청크에 들어갔는지 사람이 확인할 수 있어야 합니다. 청크 ID와 원문 위치를 저장하면 검색 실패를 재현하기 쉽습니다.

SECTION 04

임베딩과 검색

Ollama의 `/api/embed`는 텍스트를 검색용 벡터로 바꿉니다. 공식 문서는 embeddinggemma, qwen3-embedding, all-minilm 등을 예로 들며 인덱싱과 질문에 같은 임베딩 모델을 사용하라고 안내합니다.

코사인 유사도로 가까운 청크를 찾되 상위 몇 개를 무조건 정답으로 보지 않습니다. 필터, 키워드 검색, 재순위화를 더하기 전 작은 데이터셋에서 기본 검색 결과를 눈으로 확인하세요.

curl http://localhost:11434/api/embed -d '{
  "model": "embeddinggemma",
  "input": ["환불 규정은 구매 후 7일입니다."]
}'
SECTION 05

답변에는 근거와 한계를 함께 요구합니다

검색된 청크만 근거로 답하고, 근거가 부족하면 모른다고 말하며, 파일명과 페이지를 표시하도록 프롬프트를 설계합니다. 인용 표시는 원문 위치와 실제로 연결되어야 합니다.

생성 답변만 저장하지 말고 사용한 청크 ID와 검색 점수도 기록하면 오류를 검색 문제와 생성 문제로 나눌 수 있습니다.

  • 제공된 문맥 밖의 추측 금지
  • 답마다 출처 파일·페이지 표시
  • 근거 부족 상태 정의
  • 검색 청크와 답변 함께 저장
  • 사용자가 원문을 열 수 있게 연결
SECTION 06

10개의 질문으로 먼저 평가합니다

정답 위치를 아는 사실 질문, 여러 청크를 조합해야 하는 질문, 문서에 답이 없는 질문을 섞습니다. 먼저 정답 청크가 검색 상위에 있는지 보고, 다음으로 답변이 그 근거를 정확히 사용했는지 평가합니다.

검색 실패와 생성 실패를 하나의 점수로 합치면 개선 지점을 찾기 어렵습니다. 문서를 갱신할 때 같은 질문 세트를 다시 실행해 회귀를 확인하세요.

시험 유형확인 항목
단일 사실정답 청크 검색 여부
다중 근거필요한 청크가 함께 검색되는지
답 없음추측하지 않고 부족함을 알리는지
유사 문서최신·정확한 버전을 고르는지
권한 문서허용된 사용자만 검색 가능한지
SECTION 07

삭제도 전체 경로에서 처리합니다

원본 파일만 지워도 청크, 임베딩, 캐시, 대화 로그에 내용이 남을 수 있습니다. 문서 ID를 기준으로 모든 파생 데이터를 찾아 삭제하고 재검색으로 제거 여부를 확인합니다.

업무 문서라면 보존 기간, 접근 통제, 백업 복구 시 재등장하는 데이터까지 운영 절차에 포함하세요.

FAQ

자주 묻는 질문

RAG는 모델 학습인가요?

일반적인 RAG는 모델 가중치를 바꾸지 않고 관련 문서 조각을 요청 시점에 찾아 입력으로 제공합니다.

임베딩 모델과 답변 모델이 같아야 하나요?

같을 필요는 없습니다. 다만 문서 인덱싱과 질문 벡터화에는 같은 임베딩 모델을 사용해야 합니다.

문서를 많이 넣으면 더 좋아지나요?

중복·구버전·권한이 다른 문서가 늘면 검색 품질과 보안이 나빠질 수 있습니다. 작은 검증 데이터부터 시작하세요.

공식 출처

세부 동작과 최신 버전은 아래 원문을 함께 확인하세요.

Ollama Embeddings Ollama API Introduction

이어서 읽기

로컬 AI로 PDF 안전하게 요약하기로컬 음성인식 Whisper 입문