用 Rust/WASM 构建 LLM 的开源边缘语义缓存——对架构的合理性检查?[D]
摘要
提议使用 Rust/WASM 在 CDN 边缘构建一个轻量级的开源 LLM 语义缓存,以降低延迟和 API 成本,并寻求社区对架构和用例有效性的反馈。
嘿,大家好。我正在规划一个新的开源基础设施项目,希望能从那些在生产环境中运行高负载 LLM 工作负载的人那里获得关于架构和用例有效性的犀利反馈。**问题:** 基于 Python 的代理/网关会为实时流式 agent 步骤或快速 UI 补全引入过多的延迟开销。此外,集中式语义缓存仍然存在跨区域网络延迟(例如,从伦敦到 us-east-1),而企业 API 成本对于重复/可预测的用户查询(如客户支持或结构化数据提取)来说仍然是一个巨大的瓶颈。**提议的架构:** 目标是构建一个轻量级、零依赖的语义缓存,直接使用从 Rust 编译的 WebAssembly (WASM) 在 CDN 边缘运行,而不是依赖笨重的集中式网关。流程如下:1. **入站提示:** 到达最接近用户的边缘节点(例如,Cloudflare Workers / Fastly Compute)。2. **边缘嵌入:** Rust/WASM 模块拦截原始文本提示,并使用边缘原生轻量级模型(例如,`bge-small-en-v1.5`)立即生成向量。3. **相似度索引检查:** 对边缘向量数据库(如 Cloudflare Vectorize)执行快速的余弦相似度检查,以找到最相似的语义邻居。4. **缓存命中:** 如果相似度 >= 阈值(例如,0.88),则从边缘 KV 存储中拉取完整的生成响应文本,并在约 5 毫秒内返回。主 LLM 提供商永远不会被计费或触及。5. **缓存未命中:** 将流式请求代理到 OpenAI/Anthropic/vLLM,将结果流式返回给客户端,并异步更新边缘向量索引和 KV 存储。**为什么选择 Rust/WASM?** 为了实现代理本身亚毫秒级的执行开销,避免垃圾回收暂停,并保持内存占用极小,适合传统数据库或 Python 脚本无法运行的边缘运行时约束。**我对社区的疑问:** 1. 对于那些在生产环境中运行 LLM 的人(尤其是客户支持、内部 RAG 或自主 agent),你们实际上的语义缓存命中率是多少?在你们的领域中,重复查询的幂律规律是否足够高,足以证明此方案的合理性?2. 在边缘进行语义缓存的最大陷阱是什么?(例如,缓存失效策略、处理系统提示更新或嵌入模型漂移)。3. 你们是否会实际使用一个即插即用的开源模板/CLI,让您可以在自己的边缘账户上快速部署,还是更喜欢集中式 API 网关?
相似文章
I put together a Rust-native, CPU-only implementation of LFM2.5-8B-A1B
作者发布了一个纯Rust、纯CPU的LFM2.5-8B-A1B模型推理实现(4-bit Q4KM量化),解码速度约37 tokens/s,内存占用~7GB,旨在让LLM在廉价VPS或旧机器上可运行。该实现已开源并发布为cargo crate。
LMCache/LMCache
LMCache 是一个开源的KV缓存管理层,用于LLM推理,通过支持跨推理引擎持久化存储和复用KV缓存,减少首Token延迟并提升吞吐量。
并非所有令牌都值得缓存:学习语义感知的LLM前缀缓存驱逐策略
一种针对LLM前缀缓存的新型语义自适应驱逐策略,学习不同令牌类型间的令牌重用模式,相比现有策略实现了1.4倍至2.7倍的TTFT提升。
@evanyou: https://x.com/evanyou/status/2060409444123729935
一位开发者分享了一个有趣的案例:在浏览器中运行LLM以检查其内部工作原理,强调了客户端AI的一个有意义场景。
Wasmer 如何使用 Codex 构建面向边缘计算的 Node.js 运行时
Wasmer 利用 OpenAI 的 Codex 构建了 Edge.js,这是一个运行在 WebAssembly 沙箱中的边缘计算 Node.js 运行时,将开发周期从一年缩短至两周。