← 返回内容列表

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

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 后直接使用。

Ternlight: 浏览器内 7MB 嵌入模型架构浏览器 (Browser)Ternlight EngineWASM 运行时CPU only, no GPUModel WeightsTernary (BitLinear)7 MB (full) / 5 MB (mini)Embedding APIembed() / similar()~5ms per call工作流程1. 加载页面一起加载2. 初始化引擎~100ms3. 嵌入文本~5ms/条4. 语义搜索零网络请求7 MB 总大小 | ~5ms 嵌入延迟 | 0 网络请求 | MIT 开源协议

图1:Ternlight 浏览器内嵌入模型架构

核心技术:三值量化 + WASM

Ternlight 的核心创新是 ternary quantization(BitLinear)。传统嵌入模型使用 32 位浮点数存储权重,而 Ternlight 将权重压缩到三值(-1, 0, 1),将模型大小从数百 MB 压缩到 7MB(完整版)或 5MB(mini 版)。

运行时使用 WASM 在 CPU 上执行推理,不需要 GPU。初始化约 100ms,之后每次嵌入调用约 5ms。

Ternlight vs 传统嵌入方案对比指标TernlightOpenAI API自部署模型包大小7 MB0 (远程)~500 MB+延迟~5 ms100-500 ms10-50 ms网络请求0每次嵌入0成本免费$0.02/MTokGPU 租费隐私完全本地数据上传完全本地离线可用Ternlight 的核心创新:三值量化 (Ternary) + WASM 让 7MB 模型在浏览器中实时运行

图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 可以,且包大小与传统搜索库相当。

更重要的是,它消除了对后端搜索服务的依赖。对于文档站、知识库、产品目录等场景,前端可以直接实现语义搜索,大幅降低架构复杂度和运营成本。

[关联推荐]

评论 (0)

加载评论中…

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