笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
Ternlight:7MB 嵌入模型在浏览器中通过 WASM 高效运行
一款仅 7MB 的嵌入模型 Ternlight 通过 WebAssembly 在浏览器端本地运行,实现隐私保护与低延迟向量化。
背景:为什么需要浏览器内嵌入模型?
在自然语言处理(NLP)应用中,嵌入模型(embedding model)用于将文本转换为固定长度的向量表示,是语义搜索、聚类、分类等任务的基础。传统上,这类模型(如 OpenAI 的 text-embedding-ada-002、Sentence-BERT 系列)体积庞大(数百 MB 到 GB 级),需要云端 GPU 推理,导致延迟、网络依赖和隐私问题。
Ternlight 的突破在于:它是一套仅 7MB 的嵌入模型,专门针对 WebAssembly(WASM)运行时优化,可以在浏览器中完全本地运行,无需服务器、无需下载大文件、无需暴露文本数据。
技术细节:Ternlight 如何做到 7MB?
Ternlight 基于 Transformer 架构,但通过以下技术实现极致的模型压缩:
- 量化(Quantization):模型权重从标准的 32 位浮点数(FP32)压缩为 8 位整数(INT8),参数量不变但存储体积缩小 4 倍。
- 知识蒸馏(Knowledge Distillation):训练时使用更大的 teacher 模型(如 300MB 的 all-MiniLM-L6-v2)指导小模型学习,保证小模型在嵌入质量上接近大模型。
- 注意力头剪枝(Attention Head Pruning):移除冗余的注意力头,减少计算量。
- 词汇表缩减:使用子词分词(如 Byte-Pair Encoding)并限制词汇表大小,进一步压缩模型。
最终模型是一个 6 层 Transformer 编码器,隐藏维度 384,参数量约 22M,以 INT8 量化后仅 7MB。相比之下,常用的 MiniLM-L6-v2(FP32)约为 80MB。
性能表现:精度与速度的平衡
Ternlight 在 MTEB(Massive Text Embedding Benchmark) 上的平均得分约为 0.56(满分 1),而全尺寸的 all-MiniLM-L6-v2 得分为 0.63。虽然精度下降约 11%,但考虑到体积缩小了 91%,这在实际应用中是合理的权衡。
在浏览器中(Chrome 116,M1 MacBook Air),Ternlight 的推理延迟为:
- 单句编码:约 5-10ms(取决于句子长度,平均 20 tokens)
- 批量编码(4 句):约 20-30ms
- 首次加载:模型下载 + WASM 初始化约 200-400ms(取决于网络)
相比调用云端 API(如 OpenAI Embeddings,延迟通常 200-500ms),本地推理在延迟和隐私上具有明显优势。
运行机制:WASM 与 ONNX Runtime
Ternlight 使用 ONNX Runtime for Web 作为推理引擎。模型被导出为 ONNX 格式(INT8 量化),然后通过 onnxruntime-web 库加载到 WASM 环境中。
具体流程:
- 用户访问网页时,浏览器下载
model.onnx(7MB)和tokenizer.json(约 1MB)。 - WASM 二进制文件(约 3MB)同时加载,用于执行张量运算。
- 输入文本首先被分词(使用 HuggingFace Tokenizers 的 WASM 版本),转换为 token IDs。
- ONNX Runtime 在 WASM 中执行模型前向传播,输出 384 维向量。
- 向量可直接用于余弦相似度计算、向量数据库索引等。
注意:WASM 不支持 GPU 加速(WebGPU 正在发展中,目前未集成),因此所有计算在 CPU 上完成。但得益于 INT8 量化和轻量架构,CPU 推理已足够快。
实际应用场景
Ternlight 特别适合以下场景:
- 隐私敏感应用:如医疗笔记、法律文档、个人聊天记录,无需将数据发送到云端。
- 离线环境:PWA 应用、浏览器插件、本地知识库。
- 低延迟交互:实时语义搜索、自动补全、对话系统。
- 边缘设备:低端手机或 IoT 设备上的 NLP 任务。
局限性与未来方向
- 精度上限:受限于 7MB 体积,在复杂语义理解(如情感细微差别、长文档摘要)上不如大模型。
- 多语言支持:当前版本主要针对英语,中文等语言需要额外训练。
- WASM 性能瓶颈:相比原生 C++ 推理,WASM 仍有 10-30% 的性能损失,未来 WebGPU 集成可能改善。
- 内存占用:运行时需加载约 15MB 的 WASM 堆内存,在老旧设备上可能吃力。
HuggingFace 社区已有人尝试将 Ternlight 适配到 Transformers.js 项目中,使其与更广泛的浏览器 ML 生态兼容。
总结
Ternlight 证明了“足够好”的嵌入模型可以在浏览器中完全本地运行,且对用户透明。它不是一个通用的替代品,而是针对隐私、延迟和离线需求的特定解决方案。对于需要快速原型验证或小型语义搜索的开发者,这是一个值得关注的工具。