앞 편에서 본 세 기법 중 가장 단순하고 익숙한 것부터 본다. metadata filtering(메타데이터 필터링)이다. 사실 스프레드시트에서 표를 필터링해 본 적이 있다면, 이미 metadata 필터링을 해 본 셈이다.

 

1. metadata 필터링이란

metadata 필터링은 문서의 metadata를 기준으로, 엄격한 조건에 따라 retriever가 반환할 문서를 좁혀 나가는 방식이다. 여기서 metadata란 문서의 제목·작성자·생성일·접근 권한 같은 정보다.

신문사를 예로 들자. knowledge base에 수천 개의 기사가 있고, 각 기사는 제목·발행일·작성자·섹션·태그 같은 여러 metadata로 태그되어 있다. 기사 본문은 knowledge base 어딘가에 있지만, 시스템은 이 metadata만으로 기사를 검색한다. 이런 인덱스에 질의하는 건 SQL 쿼리를 쓰는 것과 매우 비슷하다.

그림 1. 각 기사는 제목·발행일·작성자·섹션·태그로 태그된다. 특정 날짜·작성자 같은 단일 조건은 물론, "2024년 6~7월 오피니언 섹션에 특정 기자가 쓴 기사"처럼 여러 조건을 결합할 수도 있다. 모든 조건을 만족하는 문서만 통과한다.

 

결국 metadata 필터링은 더 큰 데이터 모음에서 엄격한 기준으로 원하는 항목만 골라내는 것이다.

 

 

2. RAG 안에서의 metadata 필터링

일반적인 RAG 시스템에서 metadata 필터링은 검색(retrieval) 그 자체에 쓰이지 않는다. 대신 다른 검색 기법(키워드·시맨틱)이 반환한 결과를 좁히는 도구로 쓴다. 또 한 가지 중요한 점 — 필터 조건은 보통 사용자가 프롬프트에서 말한 내용이 아니라, 요청한 사용자의 속성으로 결정된다.

  • 구독 필터링 — 어떤 기사는 무료 공개, 어떤 기사는 유료 구독자 전용이다. 사용자가 유료 구독자로 로그인하지 않았다면, 필터가 유료 기사를 검색 결과에서 제외한다.
  • 지역 필터링 — 각 기사에 발행 지역 metadata가 있다면, 독자의 위치를 감지해 그 지역 기사만 반환한다.

그림 2. metadata 필터링은 검색을 수행하는 게 아니라, 사용자 속성(구독 상태·지역 등)에 따라 다른 기법의 결과를 좁힌다.

 

 

3. 장점과 한계

장점

  • 개념적으로 단순 — 시스템의 작동을 이해하고 문제를 디버깅하기 쉽다.
  • 빠르고 성숙·최적화됨 — 오래 검증된 방식이라 안정적이다.
  • 엄격한 기준을 강제하는 유일한 방법 — 어떤 종류의 문서를 포함/제외할지 엄격하게 정의하고 싶다면, 이 동작을 줄 수 있는 건 metadata 필터링뿐이다.

한계

  • 진짜 검색이 아니다 — 다른 두 기법의 결과를 정제하는 도구에 가깝다.
  • 지나치게 경직 — 문서의 내용을 무시하고, 필터를 통과한 문서를 순위화할 방법이 없다.
  • 단독으론 쓸모없다 — metadata 필터링에만 의존하는 retriever는 사실상 무용지물이다.

그림 3. 장점(단순·빠름·엄격한 규칙 강제) vs 한계(진짜 검색 아님·내용 무시·순위 없음·단독 사용 불가).

 

그래서 필요한 것이 문서의 내용이 실제로 프롬프트와 관련 있는지 판단하는 방법이다. 다음 글에서는 그 첫걸음인 키워드 검색(TF-IDF)을 살펴본다.

 

 

'AI > RAG' 카테고리의 다른 글

BM25 (키워드 검색)  (0) 2026.07.02
TF-IDF (키워드 검색)  (0) 2026.07.02
Retriever의 구조  (0) 2026.07.02
LLM의 동작 방식, 환각 발생 원인  (1) 2026.07.02
RAG 활용 사례  (0) 2026.07.01

+ Recent posts