在浏览器里用一个小模型跑 RAG
来源:bart.degoe.de — 2026-10-12
📋 概述
Bart de Goede 在博客已有的浏览器端语义检索(一个 4MB 查找表)之上,又加了一个同样跑在浏览器里的小语言模型,做出「ask my blog」:检索找出四个最相关的段落,小模型把段落概括成两句话,输入的内容不会离开本机。流程分四步——检索、门控(最佳段落分数低于阈值就不调用模型)、提示(段落编号加系统提示,要求最多两句、只用这些段落、答不了就直说)、生成(Web Worker 里用 transformers.js 走 WebGPU,没有则退回 WebAssembly,凑满两句就停)。他挑模型的现实标准是几百兆而非几个 G,最终用 q4f16 量化。因为「小模型概括东西」这句话本身就藏着编造,他用 30 个可回答的问题加 15 个博客答不上来的问题做评测,由 Opus 5.5 判定答案是否忠实于所给段落,结论是小模型在这类任务上仍有明显局限。
🔑 核心要点
- 架构是完全跑在浏览器端的 RAG:检索、门控、提示、生成四步,输入内容不离开本机
- 检索保留得分最高的四个段落,而不是像首页那样把结果汇总到文章层面
- 门控:最佳段落分数低于阈值就干脆不调用模型,页面直接说博客里找不到
- 生成在 Web Worker 里用 transformers.js 走 WebGPU,缺失时退回 WebAssembly,凑满两句就停止
- 量化发现:q4 有时反而比 q4f16 更大,因为 q4 导出把嵌入表保留为 32 位精度,SmolLM2-360M 是 390MB 对 275MB 且输出相同
- 评测设计:30 个可回答问题加 15 个博客答不上的近失问题,由 Opus 5.5 判定答案忠实、无依据还是没回答
💡 金句
小模型不需要什么都知道;它只需要读四个段落,然后要么概括它们,要么说这些段落答不了这个问题。
👍 0
👎 0
← 返回 Lobsters 首页