0.1B 모델이 8B 임베딩 모델을 압살함... 직접 써본 후기
A 0.1B model just killed 8B embedding models... I tried it out.
핵심 요약
저사양 환경에서도 뛰어난 성능을 내는 SPLADE 기반 KURE-sparse-nano 모델의 로컬 RAG 활용 경험을 공유합니다.
- SPLADE 모델 — 희소 검색 방식을 통해 저사양 PC에서도 효율적인 의미론적 검색 가능
- 성능 우위 — 0.6B 밀집 임베딩 모델보다 적은 메모리로 더 빠른 검색 속도 제공
- 로컬 RAG 최적화 — Rust 기반의 LanceDB 인덱싱과 결합하여 로컬 환경에서 가볍고 빠르게 작동
- 오픈소스 공유 — AutoRAG Agent를 통해 누구나 쉽게 구현하고 사용할 수 있도록 최적화된 코드 제공
너네 Qwen3-Embedding이나 Gemini Embedding 같은 임베딩 모델들 다들 잘 알지? 대규모 코퍼스에서 텍스트 검색할 때 쓰는 덴스(dense) 임베딩 모델 말이야.
난 지금 RAG 에이전트를 개발 중인데, 제일 골치 아픈 게 로컬 컴퓨팅 파워였어. RAG는 검색 품질이 생명인데, 이게 모델 성능에 직결되거든. 게다가 외부 인터넷 연결이나 API 모델을 못 쓰는 상황도 많아서, 임베딩 모델을 무조건 로컬에서 돌려야 했단 말이지.
근데 0.6B 모델조차도 저사양 PC에선 꽤 무거워. 최신 맥 스튜디오나 DGX Spark 같은 괴물 장비 말고, 회사 사무실에 굴러다니는 8GB 램짜리 윈도우 PC나 5년 된 M1 맥북 에어 같은 거 말이야.
그래서 찾은 게 SPLADE라는 모델이야. 이게 BM25처럼 희소(sparse) 검색을 하는데, 의미론적(semantic)인 뜻까지 파악하는 놈이거든. SPLADE가 어떻게 돌아가는지는 LLM이 나보다 훨씬 잘 설명해 줄 테니까 패스할게.
어쨌든, 이 SPLADE 모델이 진짜 물건이더라. 덴스 임베딩 모델(Qwen3-Embedding-0.6B)을 아주 깔끔하게 대체해 버렸어.
직접 수백 개의 쿼리로 평가 데이터셋을 만들어서 실험해 봤거든. 코퍼스는 내 맥에 있는 문서들로 채웠고, 한국어랑 영어가 섞여 있는 환경이었어.
그래프 보면 알겠지만, SPLADE가 Qwen3-0.6B 덴스 임베딩 모델보다 성능도 좋고, 쿼리 속도는 비슷한데 메모리는 훨씬 적게 먹어. 모델이 작아서 추론할 때 VRAM을 1.5GB도 안 먹거든. 그래서 맥북 에어 같은 저사양 시스템에서도 잘 돌아가. 내 M1 맥북 에어 16GB에서 둘 다 돌려봤는데, 덴스 모델은 거의 사용 불가능 수준이었고 맥북이 발열 때문에 바로 재부팅되더라. 근데 SPLADE는 OOM 에러나 경고 하나 없이 끝까지 잘 버텼어.
난 원본 SPLADE 모델 대신 KURE-sparse-nano를 썼는데, 이게 영어랑 한국어 둘 다 성능이 기가 막혀.
웃긴 건 SPLADE랑 덴스 임베딩을 섞어서 하이브리드 검색을 해봤는데, 오히려 그냥 SPLADE만 쓰는 것보다 성능이 구리더라고.
혹시 저사양 로컬 환경에서 빠르고 가성비 좋은 로컬 RAG 시스템 돌리고 싶은 형들은 SPLADE 모델 한번 써봐. 작지만 진짜 강력해.
게다가 밑바닥부터 다시 구현할 필요도 없어. 내가 구현한 거 전부 오픈소스로 풀었으니까 그냥 가져다 쓰면 돼. AutoRAG Agent 한번 확인해 봐. KURE-sparse-nano 모델 추론 최적화랑 관련 코드, 그리고 검색 속도 높이려고 Rust로 짠 LanceDB 인덱싱이랑 역색인(inverted index) 구현까지 다 넣어놨어.

