网易首页 > 网易号 > 正文 申请入驻

浏览器里跑10万向量搜索,他踩了这些坑

0
分享至

「我想做一个隐私优先的检索增强生成应用,文档永远不离开浏览器。」开发者这样开场。听起来理想主义,但「搜索」这一步在5000个向量时就崩了。

这不是算法问题。余弦相似度不过是点积除以两个范数,但10000个向量×1536维=单次查询1500万次浮点乘法。JavaScript的垃圾回收器才不管你是不是在热循环里——它想停就停。


实测:纯JS的硬天花板

他测遍了所有客户端库。10000向量×1536维,client-vector-search耗时37毫秒,MeMemo的HNSW降到17毫秒,但建索引要几分钟;VecLite做到8毫秒,仍是它的两倍慢。突破10万后,纯JS开始吃瘪——单次搜索1.5秒以上。

生态位的空缺很明显:没有东西能填上「玩具库(上限1千向量)」和「生产级向量库(需要服务器)」之间的鸿沟。他需要在浏览器里跑10万向量、亚秒级延迟。

第一个抉择:留在JavaScript,还是下沉到更底层?他选了Rust编译成WebAssembly,后续所有决定都从这里 cascade(级联)开来。

Rust/WASM的三张底牌

这不是推测。PGlite、DuckDB-WASM、Figma都在用同一套架构,工具链成熟。相比JavaScript,Rust/WASM提供三样东西:

一是接近原生的速度,WASM的浮点运算没有JS的解释开销;二是内存布局可控,向量用连续的Float32Array存储,没有JS对象的指针跳跃;三是没有垃圾回收,内存生命周期由开发者管理,不会在搜索中途卡顿。

但架构有三层严格分界:TypeScript、WASM边界、Rust。边界的规则比算法更重要。

边界开销:一次调用 vs 一万次调用

每次WASM穿越都有成本。调用一次WASM传10000个向量,和调用10000次每次传1个向量,差距是40毫秒对4秒——两个数量级。

实际的上传路径被压缩成单次穿越:TypeScript负责校验、扁平化、序列化,然后一次跨过边界。

所有向量以f32存储和计算,绝不用f64。这是刻意选择:f64的精度对语义搜索是浪费,但内存和带宽成本翻倍。在浏览器里,每个字节都值钱。

存储层:故意做得「蠢」

VecLite的存储适配器只有四个方法:get、set、delete、clear。键值接口,越简单越好。

这个设计把持久化策略完全踢给调用方。想用IndexedDB?自己包一层。需要加密?在外面做。存储层不碰这些,只保证向量索引本身足够快、足够小。

这种「愚蠢」是刻意的。浏览器环境太碎片化,试图内置智能存储只会变成配置地狱。把复杂度推出去,核心库保持原子性。

为什么这件事值得看

这不是又一个Rust重写的故事。它戳中了一个被忽视的中间地带:客户端AI的「最后一公里」——嵌入模型可以在浏览器跑(Transformers.js),但向量搜索成了瓶颈。

他的选择揭示了一条务实路径:不用等浏览器原生支持,也不倒退回服务器,而是用成熟工具链把计算密度压进客户端。隐私优先的RAG、离线可用的语义搜索、零API成本的个人知识库——这些场景突然变得可行。

当然,10万向量在浏览器里仍是小众需求。但生态位空着的时候,先占住的人定义标准。VecLite的存储适配器设计尤其聪明:它不假装能解决所有问题,而是让能解决的人无缝接入。

下次有人再说「浏览器做不了重计算」,你可以把这篇甩过去——顺便提醒他,垃圾回收器可不会看场合暂停。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
39只羊一夜惨死!农户家属:地里撒有剧毒农药,至今未找到肇事者

39只羊一夜惨死!农户家属:地里撒有剧毒农药,至今未找到肇事者

极目新闻
2026-04-30 20:08:43
现场视频公布:不明空中目标向黄岩岛接近,“我盯住了,它跑不掉!”

现场视频公布:不明空中目标向黄岩岛接近,“我盯住了,它跑不掉!”

环球网资讯
2026-04-30 20:05:17
拉什福德被标天价!或遭巴萨退货,曝纽卡欲用头牌与曼联交换

拉什福德被标天价!或遭巴萨退货,曝纽卡欲用头牌与曼联交换

体坛鉴春秋
2026-04-30 17:10:06
815都怼到脸上了!菲律宾媒体:七艘中国军舰现场监控军演

815都怼到脸上了!菲律宾媒体:七艘中国军舰现场监控军演

阿龙聊军事
2026-04-30 21:52:52
屡教不改!跳水世界杯将开赛,陈芋汐迎坏消息,全红婵事件再上演

屡教不改!跳水世界杯将开赛,陈芋汐迎坏消息,全红婵事件再上演

阿策聊实事
2026-04-29 23:22:39
小卡交易方案曝光:火箭3换2送申京+勇士3换1升级

小卡交易方案曝光:火箭3换2送申京+勇士3换1升级

二爷台球解说
2026-05-01 02:16:02
“骨盆前倾成这样,还不去医院?”家长晒一年级女儿体态,被群嘲

“骨盆前倾成这样,还不去医院?”家长晒一年级女儿体态,被群嘲

妍妍教育日记
2026-04-24 11:15:25
福大毕业生称211高校学生盗用其毕业作品参赛获奖!合肥工业大学:正在核实

福大毕业生称211高校学生盗用其毕业作品参赛获奖!合肥工业大学:正在核实

大风新闻
2026-04-30 15:48:06
激烈冲突!巴雷特怒喷哈登:来我们替补席拿球就是不尊重

激烈冲突!巴雷特怒喷哈登:来我们替补席拿球就是不尊重

仰卧撑FTUer
2026-04-30 13:03:06
王岳伦李湘北京结伴吃饭!李湘穿花裙潇洒走路,王岳伦在后面停车

王岳伦李湘北京结伴吃饭!李湘穿花裙潇洒走路,王岳伦在后面停车

童叔不飙车
2026-04-30 22:35:06
中国会不会出现第二个毛泽东?答案是不会,但会出现新的杰出领袖

中国会不会出现第二个毛泽东?答案是不会,但会出现新的杰出领袖

混沌录
2026-04-28 22:08:19
广东5岁女童吃香蕉噎死,父母向赠香蕉老人索赔73万,结果如何?

广东5岁女童吃香蕉噎死,父母向赠香蕉老人索赔73万,结果如何?

就一点
2026-04-30 23:56:45
马斯克治好了几亿人看火箭流眼泪的毛病

马斯克治好了几亿人看火箭流眼泪的毛病

浪子说
2026-04-30 23:43:11
展现性感身材,劳塔罗妻子晒比基尼照

展现性感身材,劳塔罗妻子晒比基尼照

懂球帝
2026-04-30 14:45:11
这是啥剧情!34岁带队杀入总决赛,35岁被交易,36岁又要被交易?

这是啥剧情!34岁带队杀入总决赛,35岁被交易,36岁又要被交易?

球毛鬼胎
2026-04-30 21:16:41
百万男网红被曝是海王!同时交往6人,见面就开房,睡觉不爱戴套

百万男网红被曝是海王!同时交往6人,见面就开房,睡觉不爱戴套

叶公子
2026-04-29 14:25:13
快讯!日本航空彻底绷不住了!

快讯!日本航空彻底绷不住了!

达文西看世界
2026-04-30 13:17:17
1799元!苹果刚发布的新品,售罄了

1799元!苹果刚发布的新品,售罄了

全是技能
2026-04-30 15:40:51
8岁女孩随邻居到长江游泳溺亡,邻居被判赔66万后申请再审:自己已尽到劝阻和救助义务

8岁女孩随邻居到长江游泳溺亡,邻居被判赔66万后申请再审:自己已尽到劝阻和救助义务

极目新闻
2026-04-30 19:02:12
5月新规正式落地!转账严查全面开启,普通人日常转账一定要留心

5月新规正式落地!转账严查全面开启,普通人日常转账一定要留心

老特有话说
2026-04-29 15:03:03
2026-05-01 02:52:49
摸鱼算法
摸鱼算法
致力于用最前沿的AI技术,换取更多发呆时间的三十岁青年。
2029文章数 20关注度
往期回顾 全部

科技要闻

9000亿美元估值,Anthropic即将反超OpenAI

头条要闻

英国国王给特朗普送了口钟 还贴脸开大"有需要尽管敲"

头条要闻

英国国王给特朗普送了口钟 还贴脸开大"有需要尽管敲"

体育要闻

季后赛场均5.4分,他凭啥在骑士打首发?

娱乐要闻

孙杨博士学历有问题?官方含糊其辞

财经要闻

易会满被“双开”!

汽车要闻

专访捷途汪如生:捷途双线作战 全球化全面落地

态度原创

房产
健康
手机
旅游
教育

房产要闻

熬了6年,涨了2亿,三亚核心区这块地再次上架

干细胞治烧烫伤面临这些“瓶颈”

手机要闻

华硕创X 2026骁龙X2 Elite二合一创作本上架,12999元

旅游要闻

上海旅游业者“踩线团”赴金门交流,金门考察团同日抵厦

教育要闻

高考地理中的数字文旅

无障碍浏览 进入关怀版