How we index images for RAG
개요
Kapa는 기술 문서 기반의 AI 어시스턴트를 구축하며, RAG(Retrieval-Augmented Generation) 파이프라인에서 수백만 개의 이미지(스크린샷, 다이어그램 등)를 효과적으로 활용하기 위해 쿼리 시점에 이미지를 모델에 직접 전달하는 대신, 인덱싱 시점에 저비용 비전 모델로 이미지를 설명하고 이 설명을 텍스트로 저장하여 검색하는 방식을 채택했습니다.
주요 내용
- 기술 문서에서의 이미지 역할: 이미지는 크게 두 가지로 나뉩니다. 첫째, 텍스트 내용을 명확하게 보조하는 '설명적' 이미지(예: 설정 아이콘 스크린샷). 둘째, 이미지 자체에 핵심 정보가 담겨 있는 '핵심적' 이미지(예: 배선 다이어그램, 사양 표).
- 쿼리 시점 멀티모달 방식의 한계: 관련 청크와 이미지를 검색하여 비전 모델에 전달하는 방식은 ▲높은 쿼리당 비용(GPT 27%, Claude 51% 증가) ▲대규모 페이로드 처리의 물리적 제약(이미지 수 제한) ▲CLIP 스타일 임베딩의 미세 정보 손실 및 짧은 쿼리로는 이미지 벡터 매칭의 어려움 때문에 확장성에 문제가 있습니다.
- 인덱싱 시점 설명, 텍스트 검색 방식: 각 이미지를 인덱싱 시점에 비전 언어 모델이 텍스트 설명(캡션)으로 변환하여 저장하고, 쿼리 시에는 이 텍스트 설명을 일반 텍스트 청크와 함께 검색합니다. 이를 통해 이미지 처리가 쿼리마다 발생하는 대신 한 번의 인덱싱 비용으로 해결됩니다.
- 인덱싱 시 이미지 필터링: 로고, 아바타 등 불필요한 이미지를 제거하기 위해 휴리스틱(형식, 크기, 종횡비)과 제로샷 분류기를 사용하며, 분류 정확도는 명확한 이미지에서 96.8%, 모호한 이미지에서는 59.8%입니다.
- 콘텐츠 기반 캡셔닝: 이미지 캡션의 품질은 주변 텍스트(이미지 전후 문단)의 영향을 크게 받으며, 저비용 소형 모델(GPT 5.4 mini)로도 충분히 높은 품질의 캡션을 생성할 수 있습니다.
- 분리된 캡션 청크 저장 방식: 이미지를 문서 내 텍스트에 인라인으로 통합하는 방식보다 각 캡션을 별도의 청크로 저장하는 방식이 ▲비용 효율성(관련 이미지 검색 시에만 비용 발생) ▲이미지 재사용성 면에서 우수합니다.
- 결과: 이미지 캡션 도입 후 ▲답변 품질이 통계적으로 유의미하게 향상(p < 0.05) ▲쿼리당 비용은 1~6% 증가 ▲이미지 삽입이 필요한 답변의 비율이 10%~64%로 증가했습니다.
시사점
이 방식은 쿼리 시점의 비전 처리 비용 부담 없이 RAG 파이프라인에서 이미지의 가치를 효과적으로 활용할 수 있게 하여, 사용자 경험을 개선하고 지원 티켓 발생률을 낮추는 등 실무에 적용 가능한 실질적인 성능 향상을 제공합니다.
원문을 불러오는 중...
댓글
GitHub Discussions