본문 바로가기
최신 IT 정보

PixelRAG 총정리-스크린샷으로 텍스트 RAG를 이기는 버클리 오픈소스

by IYIT 2026. 7. 2.

PixelRAG 총정리 — 스크린샷으로 텍스트 RAG를 이기는 버클리 오픈소스

📌 이 글의 핵심 요약
  • PixelRAG = 텍스트 파싱 없이 스크린샷 타일로 직접 검색하는 멀티모달 RAG 프레임워크
  • UC 버클리 Sky Computing Lab · BAIR · 버클리 NLP 그룹 공동 개발, Apache-2.0 오픈소스
  • 6개 벤치마크 전체에서 텍스트 RAG 대비 최대 18.1% 정확도 향상
  • 위키피디아 828만 페이지 무료 호스팅 API 제공, 로컬 인덱스 자체 구축도 가능

PixelRAG란 무엇인가

RAG 시스템의 첫 단계는 항상 텍스트 파싱이었다. 웹 페이지를 가져와서 HTML 태그를 걷어내고 텍스트로 변환하는 과정이다. 그런데 이 과정에서 무엇이 사라지는지 진지하게 따져본 사람이 얼마나 될까. 표, 차트, 인포그래픽, 레이아웃 구조가 전부 평탄화된다. 최신 파서조차 페이지에서 복원 가능한 텍스트의 40% 이상을 잃어버린다는 연구 결과가 있다.

PixelRAG는 이 파싱 단계를 통째로 건너뛴다. 텍스트로 변환하는 대신 페이지를 브라우저에서 그대로 렌더링해 스크린샷 타일로 쪼개고, 비전-언어 임베딩 모델로 인덱싱한다. 사람이 화면을 보듯 AI가 픽셀을 직접 보는 방식이다. UC 버클리 Sky Computing Lab과 BAIR, 버클리 NLP 그룹이 공동 개발했으며, Apache-2.0 라이선스로 오픈소스 공개됐다. 논문 제목은 직설적이다. "웹 스크린샷이 RAG에서 텍스트를 이긴다."

🔬 개발팀 구성

주저자 Yichuan Wang · Zhifei Li (UC Berkeley) / 공동 지도 Matei Zaharia (Apache Spark · MLflow 창시자) · Joseph E. Gonzalez (UC Berkeley) · Sewon Min (버클리 NLP) / 협력: Princeton · EPFL · Databricks · Renmin University


탄생 배경: 파싱의 실패

기존 텍스트 기반 RAG의 한계는 파서의 취약성에서 시작한다. HTML 파서는 웹사이트마다 구조가 달라 사이트별 특수 처리가 필요하고, 이를 해결하는 건 사실상 끝이 없는 싸움이다. 파서를 개선해도 다른 사이트에서 무너지고, 표나 차트가 있는 페이지라면 어떤 파서를 써도 핵심 정보를 놓친다.

특히 파서 선택 하나로 SimpleQA 같은 표준 벤치마크에서 정확도가 최대 10포인트 달라진다는 수치가 충격적이다. 버클리 연구팀은 방향을 뒤집기로 했다. 파서를 더 잘 만드는 대신 파싱 자체를 없애는 접근이다. 최근 VLM 성능이 충분히 올라왔기 때문에, 픽셀을 직접 읽히면 파서의 불완전함 전체를 우회할 수 있다는 판단이었다.

💡 핵심 인사이트
"파서를 개선하는 건 끝없는 과정이다. 웹사이트마다 특수 처리가 필요하기 때문이다. 우리의 목표는 VLM의 발전을 활용해 그 파싱 문제 전체를 우회할 수 있는지 탐구하는 것이었다." — 주저자 Yichuan Wang

핵심 동작 원리: 4단계 파이프라인

PixelRAG는 렌더링 → 임베딩 → 인덱싱 → 서빙의 4단계로 구성된 모듈식 파이프라인이다. 각 단계를 독립적으로 설치하고 실행할 수 있다.

① 렌더링 (pixelshot)

Playwright + 헤드리스 크로미움으로 페이지를 875px 뷰포트에서 렌더링. 1024px 높이로 타일 슬라이싱. 웹 URL과 PDF 모두 지원.

② 임베딩

Qwen3-VL-Embedding-2B를 LoRA 파인튜닝한 모델로 각 타일을 2048차원 벡터로 변환. 표 하나가 하나의 검색 단위로 유지됨.

③ 인덱싱 (FAISS IVF)

FAISS IVF 인덱스로 고속 근사 최근접 이웃 검색. 전체 재빌드 없이 증분 업데이트 지원. fp16 기준 약 120GB.

④ 서빙 (FastAPI)

FastAPI 검색 엔드포인트 노출. 텍스트 쿼리 · 이미지 쿼리 · 하이브리드 쿼리 모두 수용. 로컬 또는 원격 서빙 가능.

스토리지 측면에서도 실용적 접근을 취한다. 위키피디아 전체 스크린샷 타일의 원본 용량은 5.6TB에 달하지만, 타일을 임베딩 후 삭제하고 쿼리 시점에 재렌더링하는 온디맨드 방식으로 벡터 인덱스를 약 120GB로 압축했다. 위키피디아 700만 페이지 기준 약 3천만 장 타일 전체를 이 구조로 처리한다.


성능 비교: 텍스트 RAG를 어디서 이겼나

벤치마크 PixelRAG 최강 텍스트 RAG 차이
SimpleQA (사실 QA) 78.8% 71.6% +7.2%p
테이블 기반 쿼리 48.8% 42.5% +6.3%p
전체 평균 최대 향상 +18.1%p
토큰 절감 효과 약 10배 절감 기준

6개 벤치마크 전체에서 텍스트 기반 RAG를 앞섰다. 텍스트만으로 답할 수 있는 문제에서도 마찬가지였다. 구조화된 데이터가 있는 영역일수록 격차가 더 크게 벌어졌다. 복잡한 표를 텍스트로 설명하면 2,000 토큰이 필요하지만 이미지 타일 하나로 처리하면 훨씬 적은 비용으로 같은 정보를 전달한다.

⚠️ 주의: 리더(reader) 모델로 Qwen3-VL-4B급 이상을 사용해야 혜택이 나온다. 더 작은 모델을 사용하면 텍스트 RAG보다 12.5포인트 이상 뒤처질 수 있다.

설치와 Claude Code 연동

가장 빠른 시작은 공개 호스팅 API 활용이다. 별도 인프라 없이 위키피디아 828만 페이지 인덱스를 무료로 사용할 수 있고, API 키도 필요 없다.

📦 설치 명령

pip install pixelrag — 기본 설치 (pixelshot 명령 포함)

pip install 'pixelrag[index]' — 로컬 인덱스 구축

pip install 'pixelrag[serve]' — 서빙 전용

로컬 인덱스 구축은 pixelrag.yaml 설정 파일 하나로 시작한다. Apple Silicon에서는 MPS, Linux에서는 CUDA를 자동으로 선택하며, Apple Silicon 기준 약 3분, GPU 환경은 1분 내외로 인덱스가 완성된다. HuggingFace에서 사전 빌드된 FAISS 인덱스(약 217GB)와 LoRA 어댑터 가중치를 다운로드해 바로 서빙하는 것도 가능하다.

Claude Code에는 pixelbrowse 플러그인으로 연동된다. 설치 후 에이전트가 URL을 받으면 HTML 대신 스크린샷을 찍어 읽는 방식으로 동작한다. 대시보드, 차트, 레이아웃이 복잡한 페이지에서 특히 효과적이다.


마무리

📌 핵심 정리

PixelRAG는 RAG 파이프라인의 가장 기초적인 전제를 뒤집는 연구다. 텍스트 파싱이 당연하다는 전제를 버리고, 픽셀을 그대로 검색 단위로 삼는다. 버클리 핵심 연구진이 위키피디아 전체 규모에서 검증했고, Apache-2.0으로 코드와 모델 가중치, 학습 데이터셋까지 모두 공개했다.

구조화된 데이터가 많은 문서를 다루는 RAG 시스템이라면, 기존 텍스트 파이프라인과 나란히 놓고 벤치마킹해볼 가치가 충분히 있다. 특히 표, 차트, 인포그래픽이 핵심 정보를 담고 있는 도메인에서라면 더욱 그렇다.