가벼운 정적 리트리버로 RAG 검색을 다시 생각하기: Lattice 사례

8MB짜리 모델이 위키피디아 전체를 7분 만에 임베딩하는 원리

RAG 파이프라인을 구축하다 보면 문서가 많아질수록 임베딩 생성 자체가 병목이 되는 경험을 하게 된다. 트랜스포머 기반 임베딩 모델은 정확도는 높지만 문서 수백만 건을 처리하려면 GPU와 상당한 시간이 필요하다. 최근 공개된 Lattice라는 프로젝트는 이 문제를 정반대 방향에서 접근한다 — 모델을 더 크고 정교하게 만드는 대신, 극단적으로 단순하고 가볍게 만드는 쪽을 택했다.

Lattice는 무엇이 다른가

어텐션 없이 룩업 테이블만으로

공개된 자료에 따르면 Lattice는 학습된 토큰 임베딩 테이블 하나에서 값을 찾아 평균을 낸 뒤 정규화하는 방식으로 문장을 벡터로 바꾼다. 문맥을 반영하는 어텐션 연산이나 여러 층으로 쌓인 트랜스포머 구조가 아예 없다. 이 단순한 구조 덕분에 전체 가중치가 3만 개 남짓한 토큰과 천 개 남짓한 차원으로 이뤄진 행렬 하나에 불과해, 모델 자체가 8메가바이트 수준으로 줄어든다.

양자화가 유독 잘 먹히는 구조

여기에 정수 4비트 수준의 극단적인 양자화까지 적용해도 성능 손실이 거의 없다는 점이 흥미롭다. 저자는 정적 모델일수록 양자화에 유리하다고 설명하는데, 여러 층을 거치며 오차가 누적되는 일반적인 신경망과 달리 룩업 테이블 하나만 양자화하면 되므로 오차가 딱 한 번만 발생하기 때문이라고 한다. 결과적으로 정밀도를 크게 낮춰도 검색 품질은 거의 그대로 유지된다.

속도로 확인되는 차이

공개된 실측 결과에 따르면 위키피디아 전체(600만 건이 넘는 문서)를 노트북급 하드웨어에서 7분 남짓 만에 임베딩할 수 있었다고 한다. 일반적인 대규모 트랜스포머 임베딩이라면 전용 GPU 서버에서 훨씬 오랜 시간이 걸릴 작업을, 특별한 인프라 없이 개인 장비로 끝낼 수 있다는 뜻이다. 실험에는 일반 소비자용 노트북이 쓰였다고 알려져 있어, 별도의 클라우드 예산 없이도 비슷한 규모의 실험을 재현해볼 수 있다는 점도 눈여겨볼 만하다.

실제 적용 팁

정확도 높은 모델을 대체하는 용도가 아니다

가장 먼저 짚어야 할 점은 이 방식이 정교한 트랜스포머 기반 검색 모델을 완전히 대신할 목적이 아니라는 것이다. 저자 스스로도 강한 트랜스포머 리트리버의 대체재가 아니라고 명시한다. 실전에서는 먼저 이런 가벼운 모델로 대량의 후보를 빠르게 걸러낸 뒤, 그중 상위 후보만 더 정교한 재순위 모델에 넘기는 2단계 구조로 쓰는 편이 현실적이다.

대규모 처리와 온디바이스 환경에 적합

수십억 건 단위의 문서를 중복 제거하거나 클러스터링해야 하는 작업, 또는 GPU 없이 노트북이나 브라우저 안에서 검색 기능을 돌려야 하는 환경이라면 이런 경량 모델이 특히 유용하다. 위키피디아 전체를 노트북 한 대로 몇 분 안에 임베딩할 수 있다는 것은, 인프라 비용을 아예 없애야 하는 프로토타입이나 오프라인 도구를 만들 때 실질적인 선택지가 된다는 뜻이다.

토큰화 비용을 함께 고려하기

흥미롭게도 공개된 벤치마크에서는 전체 처리 시간의 대부분이 모델 연산이 아니라 텍스트를 토큰으로 나누는 과정에서 소모됐다고 한다. 즉 경량 임베딩 모델을 도입해도 실제 체감 속도를 끌어올리려면 토큰화 단계까지 함께 최적화해야 진짜 효과를 볼 수 있다는 뜻이다. 이 부분을 놓치면 모델은 가벼워졌는데 전체 파이프라인 속도는 크게 달라지지 않는 상황이 생길 수 있다.

주의할 점

모델이 가볍다고 해서 모든 검색 상황에 적합한 것은 아니다. 문맥에 따라 같은 단어가 다른 의미로 쓰이는 경우를 구분해야 하는 검색이나, 미묘한 의미 차이가 결과 품질에 큰 영향을 주는 도메인이라면 여전히 트랜스포머 기반 모델이 더 안정적이다. 경량 모델은 어디까지나 첫 단계 필터링이나 리소스가 제한된 환경을 위한 선택지로 접근하는 것이 안전하며, 서비스의 핵심 검색 품질을 좌우하는 자리에 단독으로 배치하는 것은 권장하기 어렵다.

정리

Lattice는 "더 크고 똑똑한 모델"이 아니라 "충분히 단순하고 가벼운 모델"로도 실용적인 검색이 가능하다는 것을 보여주는 사례다. 대규모 데이터를 빠르게 걸러내는 1단계 필터, 리소스가 제한된 온디바이스 환경, 비용에 민감한 프로토타입처럼 상황에 맞게 골라 쓰면, 무겁고 비싼 트랜스포머 모델 없이도 실질적인 검색 파이프라인을 구성할 수 있다.

핵심 요약

  • Lattice는 어텐션 없이 토큰 임베딩 테이블과 평균 풀링만으로 문장을 벡터화하는 정적 임베딩 모델이다.
  • 정적 모델은 양자화 오차가 한 번만 발생해 정밀도를 크게 낮춰도 성능 손실이 적다.
  • 강한 트랜스포머 리트리버의 대체재가 아니라 1단계 후보 생성이나 온디바이스 환경에 적합하다.
  • 토큰화 비용이 전체 처리 시간의 대부분을 차지할 수 있어 모델뿐 아니라 토큰화 단계도 함께 최적화해야 한다.

초보자가 자주 실수하는 포인트

  • 경량 정적 모델을 정교한 트랜스포머 검색 모델의 완전한 대체재로 오해하는 경우
  • 모델 크기만 줄이고 토큰화 단계 최적화는 신경 쓰지 않아 체감 속도 개선을 못 느끼는 경우
  • 문맥 의존적인 검색이 중요한 도메인에 경량 모델만 단독으로 적용하는 경우

체크리스트

  • 경량 모델을 1단계 필터링용으로 쓰고 재순위 모델과 조합했는가
  • 온디바이스/브라우저 등 리소스 제약 환경에 맞는 선택인지 검토했는가
  • 토큰화 단계까지 포함한 전체 파이프라인 속도를 측정했는가
  • 문맥 의존적 검색이 중요한 도메인인지 미리 판단했는가

자주 묻는 질문

경량 정적 리트리버를 도입하면 기존 트랜스포머 임베딩 모델을 완전히 없애도 되나요?

권장하지 않는다. 경량 모델은 대량의 후보를 빠르게 걸러내는 1단계 필터나 리소스가 제한된 환경에 적합하다. 미묘한 의미 차이가 중요한 검색에서는 여전히 트랜스포머 기반 모델과 조합해서 쓰는 것이 안전하다.

이 글은 초보자 기준으로 이해하기 쉽게 정리되었으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다.