Ternlight:7MB 的语义搜索引擎让浏览器内嵌入成为现实

一个仅 7MB 的 npm 包就能在浏览器中实现毫秒级语义搜索,无需 API 调用、无需 GPU、无需网络连接。Ternlight 利用三值量化和 WASM 将嵌入模型压缩到极致,可能改变前端搜索的范式。
来源: 链接 插图: 2张 SVG 内联
语义搜索通常意味着:把文本发送到 OpenAI 的 API 获取嵌入向量,然后在向量数据库中查询相似项。这需要网络连接、API 费用和延迟。Ternlight 改变了这一切——7MB 的 npm 包,在浏览器中运行,5 毫秒内完成嵌入,零网络请求。
三行代码实现语义搜索
import { embed, similar } from '@ternlight/base';similar('easy weeknight dinner ideas', recipes, { topK: 3 });
// 排名结果 - 约 5ms - 零网络请求
就这么简单。没有模型下载步骤,没有服务器,npm install 后直接使用。
图1:Ternlight 浏览器内嵌入模型架构
核心技术:三值量化 + WASM
Ternlight 的核心创新是 ternary quantization(BitLinear)。传统嵌入模型使用 32 位浮点数存储权重,而 Ternlight 将权重压缩到三值(-1, 0, 1),将模型大小从数百 MB 压缩到 7MB(完整版)或 5MB(mini 版)。
运行时使用 WASM 在 CPU 上执行推理,不需要 GPU。初始化约 100ms,之后每次嵌入调用约 5ms。
图2:Ternlight vs 传统嵌入方案全方位对比
对比传统方案
与 OpenAI API 相比:延迟从 100-500ms 降到 5ms,成本从按量计费变为免费,隐私从数据上传变为完全本地,离线可用。与自部署模型相比:不需要 500MB+ 的模型文件,不需要 GPU,不需要运维。
Ternlight 的演示页面展示了在 React 文档中搜索的能力——1987 个文档块在 3.1 秒内全部完成嵌入,之后每次查询都是纯本地计算。
适用场景与局限
Ternlight 最适合:小型到中型文档集的即时搜索(几千到几万个文档块)、隐私敏感场景(医疗、法律文档不离开浏览器)、离线应用(PWA、Electron 应用)。
局限:模型容量有限,对非常专业或小众领域的语义理解不如大模型;嵌入维度较低,对极其相似的文本区分度有限;不支持多语言(目前主要针对英文)。
对前端开发的影响
Ternlight 可能改变前端搜索的范式。传统的关键词搜索(如 Fuse.js、Lunr.js)无法理解语义——搜索"how to manage state"无法匹配"Redux store"。而 Ternlight 可以,且包大小与传统搜索库相当。
更重要的是,它消除了对后端搜索服务的依赖。对于文档站、知识库、产品目录等场景,前端可以直接实现语义搜索,大幅降低架构复杂度和运营成本。
[关联推荐]
- Cloudflare Workers Cache:边缘缓存的革命性升级 — 边缘计算的前沿
- Elm 0.19.2 发布:函数式前端的持续进化 — 前端技术趋势
- Qwen 3.6 27B:本地 LLM 开发的甜点模型 — 小模型的大用途
评论 (0)
加载评论中…