返回首页
最新
嗨,HN!Sipp 是一个开源的 AI 推理库,能够在浏览器中运行本地模型,其解码速度比其他库快多达 3 倍。
我的背景是人机交互(HCI)和图形编程。我和我的联合创始人一直在实验和思考,当代币商品化到几乎“免费”的程度时,下一代用户体验将会是什么样子。我们的一个动机是尝试超越当前主流的聊天应用和信息检索用例,探索 AI 如何作为一个持续而隐形的助手,间接地帮助用户,微妙地监测他们的意图,并动态生成或调整用户界面以满足他们的需求。
在我们的探索中,我们遇到了两个痛点:1)在浏览器中运行 AI 时,性能不足以支持实时应用,模型加载和缓存也是问题;2)在桌面本地运行时,没有好的解决方案来通过 Electron 或 Tauri 等平台嵌入模型。
因此,几个月前,我们开始为 llama.cpp 项目贡献代码,以探索浏览器推理。当时,它的 WebGPU 支持并不好。我们帮助使后端在大多数现代 GPU 上正常工作(需要 16 位浮点数),并且覆盖了相当好的操作。同时,我们开始从零开始使用 Rust 和 C++ 构建 Sipp,创建一个统一的库,以便在实际应用和用例中结合使用本地和云推理。
最终,Sipp 在整体令牌解码速度上比其他库快了多达 3 倍。但我们相信这里还有更多的改进空间。我们的目标是研究每种模型架构的定制推理管道,这将使我们能够更有效地优化计算和内存限制。
Sipp 使用一个统一的客户端 API。我们非常关注如何以简单的方式创建一个有效连接本地和云推理的库。我们希望开发者能够通过 WebGPU(或其他后端)在浏览器中运行一个小型本地模型,然后仅通过更改端点,将相同的代码路径扩展到自托管网关(CUDA/Vulkan/Metal)或云提供商。这使得在处理小任务时能够享受本地运行的好处,同时在需要更多智能的任务上将负载转移到提供商或云上。
目前,我们的主要关注点是优化浏览器体验,但我们正在积极开发额外的后端,以通过我们的客户端 API 在本地运行 LLM,目前该 API 支持 Node、Rust 和 Python。
我们最期待的是进一步推动现有后端的性能。任何从事高性能系统工作的人都知道,原始算法和高效的矩阵乘法仅仅是战斗的一半。实时系统中的瓶颈很大一部分来自于低效的内存管理和 VRAM 与 RAM 之间的传输成本。
我们相信,通过积极的内核融合,可以提取出更多的性能。通过创建针对特定模型架构的“定制”内核,我们可以大幅减少中间内存复制。我们的下一个目标是看看我们能将本地推理的解码和预填充速度推向理论上的“完美”水平,适用于消费级硬件。
我们在网站上有一个完全在设备上运行的简单聊天演示,以及一个基准测试工具,供您测试或验证自己硬件上的性能差异。
我们希望您能深入代码,运行基准测试,并告诉我们可以改进的地方。我将全天在这里回答有关架构、内核融合或本地 LLM 时代的人机交互的问题。
更深入的技术信息请见这里:<a href="https://dev.to/constant_chen_/sipp-a-local-first-runtime-for-hybrid-ai-applications-2ce5" rel="nofollow">https://dev.to/constant_chen_/sipp-a-local-first-runtime-for...</a>
Orchid(编排交互调试器)是一款零插桩代理,能够捕获您代理管道中的每一个API和LLM调用,然后让您逐步在本地检查和重放整个运行过程。无需插桩,无供应商锁定,无云依赖。它还提供了可视化检查器和MCP服务器,您可以自行检查会话,或使用您喜欢的代理编码IDE来调试代理运行。
我之所以开发它,是因为我厌倦了通过grep日志来调试代理故障,而现有的AI可观察性工具似乎都需要侵入式插桩和/或将我的提示和响应发送到云服务。我想要一种能够让我在本地调试代理运行的工具,而不必担心供应商锁定或数据隐私问题。
Orchid就是这样一个工具。调用检查功能非常有效,至少对于我的用例来说,但重放功能可能更有趣。它使LLM管道测试变得确定性,无需模拟或重新运行昂贵的API调用。
免费、自托管,运行在您的机器或基础设施上: [https://github.com/mario-guerra/orchid-trace](https://github.com/mario-guerra/orchid-trace)
希望能收到任何正在构建多步骤代理系统或在非确定性LLM测试失败中挣扎的人的反馈。