codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
노트›ai

RAG 와 검색 — 청킹·임베딩·재정렬·하이브리드

2026-04-28 게시· 2026-05-18 갱신·0회 조회

RAG 와 검색 — 청킹·임베딩·재정렬·하이브리드

RAG (Retrieval-Augmented Generation) 는 LLM 의 한정된 학습 시점·메모리 한계를 외부 지식으로 보완하려는 방식입니다. 검색·생성을 분리하면 모델을 다시 학습시키지 않고도 새로운 자료를 다룰 수 있습니다.

1. RAG 에 대한 이야기

RAG 라는 용어는 Patrick Lewis 등 연구자가 2020 년 NeurIPS 에 발표한 논문 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" 에서 이름이 굳어졌습니다. 외부 코퍼스에서 관련 문서를 검색해 모델 입력에 함께 넣어 생성한다는 단순한 아이디어.

원본 → 전처리·청킹 → 임베딩 → 인덱스 저장
       ↓
사용자 쿼리 → 임베딩 → 후보 검색 → 재정렬 → 컨텍스트 → LLM → 응답

2. 청킹 전략

문서를 LLM 컨텍스트에 통째로 넣을 수 없을 때가 많아 작은 단위로 쪼갭니다. 청킹은 정답이 없고 데이터·도메인에 따라 다릅니다.

전략 설명 장단
고정 크기 토큰·문자 수 기준 (512 토큰) 단순 · 의미 경계 무시
슬라이딩 윈도 고정 + 오버랩 (50 토큰) 경계 손실 완화 · 저장량 증가
의미 기반 문장 임베딩 유사도로 경계 추정 의미 보존 · 비용 큼
계층적 문서 → 섹션 → 단락 → 청크 추상도별 검색 · 구현 복잡
구조 기반 마크다운 헤딩 · HTML · 코드 AST 구조가 명확한 자료

오버랩은 보통 청크 크기의 10~20%. 너무 크면 중복 검색·중복 비용이 늘고 너무 작으면 경계에 걸친 문장이 끊깁니다.

한국어·영어 혼합 문서에서는 256~768 토큰 범위가 자주 거론됩니다. 코드·기술 문서는 함수·헤딩 단위 구조 기반 청킹이 어울립니다.

3. 임베딩 → 검색

청크를 임베딩 모델에 통과시켜 고정 차원 벡터로 만듭니다. 쿼리도 같은 모델로 임베딩한 뒤 거리·유사도가 가까운 K 개를 가져옵니다. 거리 함수는 코사인이 가장 흔하지만 모델 권장 사항을 따릅니다.

4. pgvector

Postgres 에 pgvector extension 을 얹으면 벡터 검색이 같은 DB 안에서 가능. 거리 연산자 (<-> L2 · <=> 코사인 · <#> 음수 내적) 와 두 종류의 ANN 인덱스:

  • IVFFlat — 클러스터링 기반. 빠른 빌드 · 작은 메모리. 데이터가 어느 정도 쌓인 뒤 인덱스를 만들어야 클러스터 품질이 좋습니다.
  • HNSW — 다층 그래프 기반 (Malkov · Yashunin 2018). 검색 정확도·속도 우수, 빌드 시간·메모리 더 큼. 점진적 추가에 강함.

별도 벡터 DB (Pinecone · Qdrant · Weaviate · Milvus) 와의 선택은 데이터 규모 · 운영 표면 · 필터링 요구의 균형.

5. 재정렬 (Reranking)

벡터 검색은 빠르지만 의미 정확도에 한계가 있습니다. 1 차로 30100 개를 가져와 cross-encoder 또는 LLM 으로 다시 점수를 매겨 상위 510 개만 남기는 절차가 reranking.

모델 메모
Cohere Rerank 상용 API.
BGE-Reranker (BAAI) 오픈 가중치, 다국어 변형.
Cross-Encoder/ms-marco Sentence-Transformers 공개.
Jina Reranker 다국어 · 코드 변형.

Bi-encoder (임베딩) 는 두 텍스트를 따로 인코딩하지만 cross-encoder 는 쿼리·문서를 함께 입력해 더 깊은 상호작용을 봅니다. 정확하지만 비용이 크기 때문에 1 차 검색 뒤의 좁은 자리에서만.

6. 하이브리드 검색

키워드 검색 (BM25 · Postgres tsvector) + 벡터 검색을 결합. 약어·고유명사·숫자 같은 토큰은 임베딩이 약할 때가 있어 키워드가 보완.

결합의 단순한 예 — RRF (Reciprocal Rank Fusion):

score(d) = Σ 1 / (k + rank_i(d))   # k 는 보통 60

각 검색기에서의 순위만 쓰는 단순한 함수이지만 잘 동작합니다.

7. 평가 지표

검색 단:

지표 의미
Recall@K 정답 문서가 상위 K 안에 있는 비율
Precision@K 상위 K 중 관련 있는 비율
MRR 첫 정답의 역순위 평균
nDCG 순위 가중치를 반영한 누적 이득

생성 단 — RAGAS · TruLens 같은 프레임워크가 컨텍스트 충실성 (faithfulness) · 정확성 · 답변 관련성을 LLM 으로 평가. 자동 평가는 참고용이고 수작업 검수와 함께 봅니다.

8. 다른 길들

  • Long-context LLM — Gemini 1.5 Pro 의 1M 토큰, Claude 3 의 200k 토큰 같은 큰 컨텍스트로 RAG 없이 통째로 넣는 접근. 비용 · 지연 · "lost in the middle" 과 균형.
  • Fine-tuning — 도메인 데이터를 직접 학습. 자료가 거의 정적이고 양이 충분할 때.
  • 그래프 RAG — 문서를 엔티티·관계 그래프로. Microsoft 가 2024 년 GraphRAG 사례 공개.
  • 에이전트형 검색 — LLM 이 검색 쿼리를 반복 생성·정련.

9. 메타데이터 결합

청크에 작성일 · 출처 URL · 문서 종류 · 태그를 컬럼으로 함께. RDBMS 의 WHERE 와 결합되는 자리가 pgvector 의 강점.

SELECT id, content
FROM chunks
WHERE doc_type = 'manual' AND created_at > now() - interval '30 days'
ORDER BY embedding <=> $1
LIMIT 20;

필터가 너무 좁으면 인덱스가 거른 후보가 적어 정확도가 떨어집니다. prefilter · postfilter 위치 결정이 데이터 분포에 달려 있습니다.

10. 자주 걸리는 자리

임베딩 모델 변경 시 재임베딩 — 다른 모델의 벡터 공간은 호환되지 않습니다. 마이그레이션 계획을 처음부터.

차원 불일치 — vector(1536) 컬럼에 다른 차원을 넣지 못합니다. 모델별 분리 컬럼·테이블.

거리 연산자와 인덱스 일치 — 인덱스를 vector_cosine_ops 로 만들었으면 <=> 만 인덱스를 씁니다.

컨텍스트 윈도 초과 — 검색 결과를 모두 LLM 에 넣으면 한도 초과. reranking · 요약과 결합.

lost in the middle — 컨텍스트 중간에 놓인 정보가 양 끝보다 모델에 덜 반영된다는 관찰 (Liu et al. 2023). 핵심 자료를 앞·뒤로.

중복 문서 — 같은 내용이 여러 청크로 들어가면 검색 결과가 동일 정보로 채워집니다. dedup 또는 MMR (Maximum Marginal Relevance).

평가 데이터 부재 — 자기 도메인 질문·정답 쌍이 없으면 모든 튜닝이 추측. 작은 평가셋부터.

하고픈 말

RAG 는 단순한 아이디어지만 청킹 · 임베딩 모델 · 인덱스 · 재정렬 · 평가의 각 자리가 모두 도메인 의존적입니다. 작은 평가셋을 먼저 만들어 두지 않으면 모든 튜닝이 감각에 머무릅니다. pgvector + Postgres 의 메타데이터 필터 결합은 작은~중간 운영의 가장 단순한 답이 됩니다.

Next

  • prompt-design
  • gemini-api

Lewis et al. RAG (2020) · Lost in the Middle (2023) · HNSW (Malkov · Yashunin) · pgvector · Pinecone Learn RAG · Cohere Rerank · RAGAS · Microsoft GraphRAG 를 참고합니다.

ai 카테고리의 다른 글

카테고리 전체 보기 →
  • Google NotebookLM — 자료 기반 Gemini 노트북 (RAG 형 도구)
  • Google AI Studio — Gemini 기반 AI Web IDE + 앱 빌더
  • LLM 지형 — 폐쇄형·오픈·한국어 특화·평가·가격
  • AI 에이전트 — 정의·패턴·프레임워크·자율성
  • 임베딩 깊게 — 모델·차원·벤치마크·캐시
  • Gemini — Google 의 멀티모달 LLM 라인업