[Lobsters 요약] 브라우저 내 소형 언어 모델로 RAG 실행하기
0
설명
2026년 10월 12일, Bart de Goede는 브라우저 내에서 소형 언어 모델(SLM)을 사용하여 검색 증강 생성(RAG)을 실행하는 'ask my blog' 데모를 공개했습니다. 이 기술은 사용자의 GPU 또는 CPU를 활용하며, 서버나 API 키 없이 작동합니다. Qwen3-0.6B와 같은 모델은 579MB의 크기로 기본 로드되어 블로그 콘텐츠에 대한 질문에 답변합니다.
### 배경 설명
최근 MicroLLM lab이 Hacker Newsletter에 소개되면서, 2500만에서 3억 6천만 개의 매개변수를 가진 소형 언어 모델을 사용자의 브라우저 내에서 직접 실행하는 기술이 주목받고 있습니다. 이는 서버 인프라나 API 키 없이도 개인의 GPU 또는 CPU를 활용할 수 있다는 점에서 개인 정보 보호 및 비용 효율성 측면에서 큰 이점을 제공합니다. Bart de Goede는 자신의 블로그에 이미 구현된 클라이언트 측 시맨틱 검색 기능에 이 기술을 결합하여, 사용자의 질문에 대한 관련 구절을 검색한 후 소형 언어 모델이 이를 요약하여 답변하는 'ask my blog' 시스템을 구축했습니다. 이 시스템은 사용자의 입력이 기기를 벗어나지 않도록 설계되었습니다.
### 작동 방식: 클라이언트 측 RAG
이 시스템은 검색 증강 생성(RAG)의 모든 단계를 클라이언트 측에서 실행합니다. 사용자의 질문은 먼저 4MB 크기의 룩업 테이블을 사용하는 정적 임베딩 검색을 통해 블로그의 네 가지 가장 관련성 높은 구절을 검색합니다. 검색된 구절의 점수가 특정 임계값보다 낮으면 모델은 호출되지 않으며, '찾을 수 없음'으로 처리됩니다. 관련 구절이 발견되면, 번호가 매겨진 구절과 함께 '최대 두 문장으로 답변하고, 제공된 구절만 사용하며, 질문에 답할 수 없으면 명시하라'는 시스템 프롬프트가 모델에 전달됩니다. Web Worker 내에서 transformers.js를 사용하여 WebGPU 또는 CPU(WebAssembly)에서 모델이 실행되며, 두 문장이 완성되면 답변이 페이지에 스트리밍됩니다. 모델 로딩은 수백 메가바이트의 다운로드가 필요하므로 사용자의 명시적인 클릭을 통해 이루어집니다.
### 모델 선택 및 평가
브라우저에서 실행 가능한 모델 중 350MB 이하의 크기를 가진 SmolLM2(135M, 360M), Gemma 3 270M, LFM2.5-350M, Qwen2.5-0.5B, Qwen3-0.6B 등이 후보로 고려되었습니다. 비교를 위해 3.1GB의 Gemma 4 E2B와 API 기반의 Claude Haiku 5.5도 포함되었습니다. 30개의 답변 가능한 질문과 15개의 블로그에 없는 질문으로 구성된 평가 세트를 사용하여 모델의 충실도를 측정했습니다. 평가 결과, 350MB 이하의 모델들은 30개 질문 중 최대 3번만 충실한 답변을 제공했으며, 거의 모든 질문에 대해 그럴듯하지만 잘못된 답변을 생성하는 경향을 보였습니다. 예를 들어, SmolLM2-360M은 Llama 70B 실행을 위한 GPU 질문에 NVIDIA GTX 960/970을 추천하는 등 잘못된 정보를 제공했습니다. 반면, Gemma 4 E2B는 제공된 구절에 해당 정보가 없다고 정확히 판단했습니다. Qwen3-0.6B(579MB)는 50%의 충실도를 보였으나, 350MB 이하 모델보다는 나은 성능을 보여 기본 모델로 선택되었습니다.
### 소형 모델의 한계와 개선 방안
소형 모델들은 종종 반복적인 답변에 갇히는 현상을 보였습니다. 예를 들어, SmolLM2-135M은 'URL 바에서 검색'이라는 문구를 반복했고, Gemma 3 270M은 'I5555555555555555555555...'와 같은 문자열을 반복했습니다. 이러한 문제는 반복 페널티(1.15)를 적용하여 완화할 수 있지만, 근본적인 충실도나 품질을 향상시키지는 못했습니다. 또한, 관련성 게이트는 완전히 주제에서 벗어난 질문만 효과적으로 차단할 수 있었으며, 미묘하게 관련된 질문에 대해서는 모델의 판단에 의존해야 했습니다. 더 긴 답변을 허용하는 실험에서도 Qwen3-0.6B는 충실도가 감소하는 경향을 보였으며, 각 문장이 추가될 때마다 환각(hallucination)의 가능성이 높아졌습니다. 이는 짧은 답변이 더 안전하다는 것을 시사합니다.
### 가치와 인사이트
이 프로젝트는 소형 언어 모델을 브라우저 내에서 직접 실행하여 검색 증강 생성(RAG)을 구현하는 가능성을 보여줍니다. 이는 개인 정보 보호를 강화하고 서버 비용을 절감할 수 있는 잠재력을 가지며, 특히 사용자의 민감한 데이터를 다루거나 오프라인 환경에서 작동해야 하는 애플리케이션에 유용할 수 있습니다. 2026년 10월 12일에 공개된 이 데모는 350MB 이하의 모델로는 아직 만족스러운 수준의 정확도를 달성하기 어렵다는 점을 명확히 했으며, 이는 향후 소형 모델의 성능 개선 필요성을 시사합니다. 또한, API 기반의 Claude Haiku 5.5와 비교했을 때, 클라이언트 측 실행은 대규모 사용자 트래픽 발생 시 비용 효율성이 매우 높다는 것을 보여줍니다.
### 기술·메타
* **모델:** SmolLM2 (135M, 360M), Gemma 3 270M, LFM2.5-350M, Qwen2.5-0.5B, Qwen3-0.6B, Gemma 4 E2B, Claude Haiku 5.5
* **프레임워크/라이브러리:** transformers.js, WebGPU, WebAssembly
* **검색:** 정적 임베딩 검색, 4MB 룩업 테이블
* **기술:** 검색 증강 생성 (RAG), 클라이언트 측 실행
* **평가:** 2026년 10월 12일 기준, 30개 답변 가능 질문 + 15개 미답변 질문
### 향후 전망
향후 소형 언어 모델의 성능 개선, 특히 특정 작업(예: 문서 요약)에 대한 미세 조정(fine-tuning)이 중요해질 것입니다. 300MB 크기의 모델이 네 개의 구절을 읽고 요약하거나 관련 없음을 판단하는 데 특화되도록 만드는 것이 다음 단계가 될 수 있습니다. 또한, 'ask my blog' 데모에서 모델이 이미 로드된 경우, 블로그 홈페이지 검색 기능에 이를 활용하여 검색 정확도를 개선하는 방안도 고려될 수 있습니다. 현재로서는 브라우저 내에서 실행되는 모델의 성능 한계로 인해, 사용자는 요약된 내용을 항상 원본 구절과 비교하여 사실 여부를 확인하는 것이 권장됩니다. Gemma 4와 같은 모델 패밀리는 미세 조정에 좋은 옵션으로 언급되었습니다.
📝 원문 및 참고
- Source: Lobsters
- 토론(Lobsters): [lobste.rs](https://lobste.rs/s/nsjjo3/running_rag_with_small_language_model)
- 원문: [링크 열기](https://bart.degoe.de/rag-with-a-small-language-model-in-the-browser/)
---
출처: Lobsters · [원문 링크](https://bart.degoe.de/rag-with-a-small-language-model-in-the-browser/)
이 글에 대한 한 줄 의견
신고 · 불법·유해·아동 안전(CSAE) 관련 콘텐츠

댓글 0
아직 댓글이 없습니다. 로그인하면 바로 의견을 남길 수 있습니다.