Lobsters에서 화제 · bart.degoe.de · 2026-10-13 · ▲2
Running RAG with a (small) language model in the browser
OIYO 한국어 요약
원문을 바탕으로 요약했어요.
본문 번역
원문 일부를 옮겼어요. 전체 내용은 원문에서 확인해 주세요. · Grok Bot · 2026-10-14
Bart de Goede의 글을 '관련성 게이트' 절 앞까지 읽고 옮겼어요. 그 뒤 내용은 다루지 못했어요.
무엇을 만들었나
브라우저에서 사용자 GPU(또는 CPU)로 25M–360M 파라미터 소형 모델을 돌리는 MicroLLM lab을 보고, 이미 4MB 조회 테이블로 브라우저 안에서 시맨틱 검색(RAG의 'R')을 하던 블로그에 소형 모델로 답변까지 붙였어요. 이름은 "ask my blog"예요. 입력한 내용은 기기 밖으로 나가지 않아요.
동작 방식(전부 클라이언트)
- 검색: 홈페이지와 같은 정적 임베딩 검색으로 상위 패시지 4개를 골라요.
- 게이트: 최고 점수가 임계값보다 낮으면 모델을 부르지 않고 "블로그에서 못 찾았다"고 해요.
- 프롬프트: 번호 붙인 패시지와 "최대 두 문장, 이 패시지만 사용, 답이 없으면 그렇다고 말할 것"이라는 시스템 프롬프트.
- 생성: Web Worker에서 transformers.js로 WebGPU(없으면 WebAssembly CPU)를 써서 스트리밍하고, 완전한 문장 두 개가 나오면 멈춰요.
모델 로딩은 수백 MB를 받아야 해서 명시적으로 클릭해야 해요. 흥미로운 점으로, 여러 모델에서 'q4' 빌드가 임베딩 테이블을 32비트로 둬서 q4f16보다 커요. SmolLM2-360M은 q4 390MB, q4f16 275MB이고 출력은 같아서 모두 q4f16을 썼어요.
평가
답이 있는 30문항과, 블로그에 답이 없는 15문항(대부분 그럴듯한 오답을 유도하는 근접 질문)을 썼어요. Opus 5.5가 패시지 대비 '충실/근거 없음/무응답'을 채점했고, 글쓴이가 20개를 직접 라벨링해 16개가 일치했어요.
| 모델 | 다운로드 | 충실(30 중) | 지어냄(15 중) | |---|---|---|---| | SmolLM2-135M | 120MB | 0 | 14 | | LFM2.5-350M | 258MB | 2 | 14 | | SmolLM2-360M | 275MB | 3 | 15 | | Gemma 3 270M | 293MB | 3 | 13 | | Qwen3-0.6B(기본값) | 579MB | 15 | 5 | | Gemma 4 E2B | 3.1GB | 28 | 0 | | Haiku 5.5(API) | — | 27 | 1 |
결론은 350MB 이하 기성 모델은 이 용도로 쓸 수 없다는 거예요. 30번 중 최대 3번만 충실했고, 거의 모든 질문에 신나게 답해요. Llama 70B용 GPU를 묻자 GTX 960을 추천하는 식이었고, Gemma 4 E2B만 "패시지에 정보가 없다"고 제대로 답했어요. 블룸 필터 질문에서는 LFM2.5가 빠르고 유창하게 틀렸는데, 검색이 원리 설명 부분을 건네지 않은 탓도 있어 "요약은 읽은 패시지만큼만 좋다"고 정리해요.
Qwen3-0.6B는 예산을 넘지만 절반은 맞히는 '동전 던지기' 수준의 가장 작은 모델이라 기본값으로 정했어요.
소형 모델의 반복 루프
처음엔 답이 틀렸다기보다 같은 구절을 반복하거나 5555…를 토큰이 끝날 때까지 내놨어요. 항상 가장 확률 높은 토큰을 고르면 작은 모델이 홈에 빠지기 때문이에요. 반복 페널티 1.15로 고쳤지만, 충실도는 나아지지 않고 더 길고 다양한 헛소리가 될 뿐이었대요.
출처: bart.degoe.de
원문 읽기 Lobsters 토론 (+0) 같은 날 모아보기
OIYO는 원문을 그대로 옮기지 않아요. 요약과 본문 번역은 큐레이션 목적이며, 사실·인용은 원문 출처를 따라요.