OC
静态网站也能做语义搜索,整个模型只要 4MB
科技 · 2026-07-12 · 阅读 10

静态网站也能做语义搜索,整个模型只要 4MB

分类:Web 开发 Tag:语义搜索、Model2Vec、浏览器 AI、静态网站、WebAssembly 作者:周白|OC 编辑

作者 周白 周白

开发者 Bart de Goede 在自己的博客上实现了一套完全运行在浏览器里的语义搜索:不需要服务器、不调用外部 API,用户点击搜索框后下载的核心模型可以压到约 4MB。

一句话结论:不是每个 AI 功能都需要大模型和 GPU;对小型内容站点,一张经过蒸馏和量化的向量查找表,就可能比服务器端语义搜索更便宜、更私密。

传统关键词搜索只能找到实际出现过的词。文章举的例子是,用户搜索“英国的酒精饮料灾难”,即使正文写的是“London Beer Flood”,语义搜索也应该找到它。常见做法是运行 sentence-transformer,但浏览器需要下载模型和运行时,作者测得约 23.45MB,对只有 14 篇文章的博客显得过重。

他改用 Model2Vec 的静态嵌入。它把较大模型的知识蒸馏成 token 到向量的表格,推理过程只是分词、查表、取平均和归一化,没有注意力层。原始表约 30MB,进一步做 int8 量化和词表裁剪后,传输量降到约 4MB。

Transformer推理与静态向量查表对比

真正影响效果的一个细节是切块。如果把一篇 1.5 万字文章压成一个向量,罕见关键词会被大量普通词稀释;把文章切成约 600 字符、相互重叠的小块后,搜索能保留更多具体语义。作者还把语义结果与 Lunr.js 关键词结果通过 Reciprocal Rank Fusion 合并,避免专有名词和精确匹配被语义模型拖累。

4MB 并不意味着所有网站都应该照搬。中文分词、词表覆盖和跨语言效果需要重新评估;内容只有十几篇时,下载 4MB 是否值得也要看访问频率。更适合的场景,是文档站、个人知识库和隐私敏感的离线 Web 应用。

关键事实

  • 搜索在浏览器本地完成,不向服务器发送查询文本。
  • Model2Vec 的核心推理是静态向量查表,不是完整 Transformer 前向计算。
  • 作者通过 int8 量化、词表裁剪和文章切块把模型与索引压缩到适合网页加载的规模。
  • 4MB 是该博客实现的结果,不是所有语言和内容规模的固定数字。

OC 判断

端侧 AI 最有价值的方向之一,不是把最大模型硬塞进浏览器,而是把任务缩小到刚刚够用。语义搜索只需要可接受的排序,不需要一个会聊天的模型。

为什么重要

  • 对开发者:可用轻量嵌入、懒加载和混合排序,为静态站增加语义能力。
  • 对网站运营者:没有推理服务器和按次 API 费用,也减少搜索词隐私负担。
  • 对用户:功能能离线运行,查询内容不会默认离开设备。

参考来源

相关阅读

基于标题、摘要和正文内容自动匹配。

更多科技

评论

围绕这篇文章补充信息、提出问题或分享观察。

0
暂无评论。

发表评论

继续看看 OC 用户围绕这个话题说了什么、做了什么。

相关碎碎念

更多

其实爬虫要是行为正常,也无所谓,现在 OC 每天就不断的被一些不正常的AI爬虫爬,我也懒得去识别清理,但是把我的访问报表搞得很乱,期待google分析他们自己能识别吧 这个新闻用的方法是鼠标行为 https://ourcoders.com/tech/show/tech-20260821-001-11/ 我在google分析看的时候,是选择自然流量,效果差不多,另外 OC 的阅读量统计,都是至少停留 5 秒以上才算的,所以,也不会受这些流量影响,但是挺烦人啊

tinyfool 0 0

从有这个想法,在OC做一个碎碎念 https://x.com/tinyfool/status/2084451008298791131 到做好,https://x.com/tinyfool/status/2084490288681386154 总共花了几个小时,Codex让讨论变得没价值,有想法就先做出来,上线看看,好用就留下,没价值再说,讨论is cheap,let's use ai make it to try

tinyfool 1 0

最近越来越多思考,我们跟agent的关系,比如我最近用blender mcp很多,基本上我算是会用blender的,但是老记不住很多热键,以前我可以做很复杂的模型,但是要是不是的去查blender的操作热键。现在我完全不参与模型的建模,只让codex帮我生成。 但是我还是在查blender的热键,我现在需要的是numpad .这样聚焦到一个对象的方法,我需要的是numpad /这样的方法来把除了选中的对象,其他都隐藏的热键。 换言之,我现在需要高效的人工视觉复检blender mcp的成果,这是我对自己目前blender能力的需求了。

tinyfool 2 0

相关帖子

更多

你们的Codex额度提前耗完了没?戒断反应如何?

<p>我在第三天就消耗了只剩1%,忍了一天,然后今天干脆用这最后的1%,开着5.6 Sol 极高 强推我一个提示词笔记本应用的功能落地。最终用时3小时,居然还是跑完了。但是现在还是出现一些戒断反应,感觉啥也做不了,就无精打采的,困。</p> <p>我做了一个Prompt Notebook,专门用来收藏或者记录自己手搓的生图提示词。带Chrome一键收藏插件。支持AI优化提示词。支持提示词中提取常用字段作为提示词百科词汇。也自带生图功能用来测提示词。但是要搭配Cloudflare R2+Worker的图床。</p> <p>今天主要是做一个AI模特的资产库。将常用的AI模特固定下来,进行身份设定,以及模特的一些角色定妆图。之后生图可以直接调用AI模特自动作为垫图。</p> <p>这是AI模特资产库的界面: <img src="/upload/thread/202608/42b5f73e-938f-45de-b74e-da69da9d72a8.webp" alt="1bb0d28b-c7dd-4327-bafa-26b60323cbed" /> 这是主界面的提示词瀑布流,支持关键词或标签搜索: <img src="/upload/thread/202608/3e15b6e7-345f-48b4-aeff-1bbd89afe9d3.webp" alt="ab998e2f-9ccc-4173-832f-223aa6c6fa81" /> 这是提示词笔记的预览界面,可以复制提示词,分享提示词,点击分享还有分享短链:(https://prompt.jintao.co.uk/share/20260806LfsmY) <img src="/upload/thread/202608/bab31972-0468-4582-b873-6309233254a6.webp" alt="20260806-201213" /> 可惜现在没额度了,我又不想换模型折腾。现在还有些界面细节和小功能需要落地完善,可能还要虫子要抓。弄好了,打算放GitHub开源。</p> <p>有朋友想试试的么?</p>

shynloc 2 4