1 分•作者: rshemet•3 个月前
大家好,我是 Cactus 的 Roman 和 Henry(<a href="https:&#x2F;&#x2F;github.com&#x2F;cactus-compute&#x2F;cactus" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cactus-compute&#x2F;cactus</a>)。 我们刚刚发布了我们设备端推理平台的重大升级: * 内置基于模型置信度的路由,可将推理任务转交给云端。 * 支持任何 PyTorch 模型的转换器。 * 无损 4 位量化(评估结果请参见我们的 GitHub README)。 * 支持兼容设备的 GPU 加速(首批支持 Apple Metal)。 * 极低的 RAM 占用。 * 可在任何 Arm 设备上运行:iOS、Android、Mac、DGX Spark、Raspberry Pi 等。 总而言之,一个 Gemma 4 E2B 级别的模型在 M5 Max 上可达到 169 token/秒 的速度,占用 2.7GB 磁盘空间且与 FP16 相比无精度损失,使用 1.3GB RAM,并在需要时向云端模型寻求帮助。 我们十八个月前开始解决的问题是:推理引擎大多为数据中心设计,但消费级硬件的物理特性不同:RAM 需要与操作系统共享,会受到热节流限制,并且同一模型在不同硬件上的表现也不同。 因此,我们为资源受限的设备从头开始编写了一个运行时。自那时以来,Cactus 已发展到每周处理数百万次推理,并拥有数万名月活跃开发者。 我们在生产应用中部署 Cactus 的最大体会是,虽然本地模型可以处理 90% 的工作负载,但那 10% 的差距意味着它们仍然不够生产就绪。我们的用户通常通过构建自定义的云端回退逻辑来解决这个问题。 Cactus v2 解决了这个问题: 我们实现云端回退的方法是,在模型的权重中植入一个探针,该探针读取模型的内部激活并发出置信度信号。这样,路由就发生在模型内部,而不是由一个位于其前方的提示分类器来完成。我们认为这对于多轮智能代理工作至关重要,模型应该知道哪些轮次足够简单可以在本地处理,哪些轮次比较困难——然后将其转交给云端。本次发布支持 Gemma-4 E2B 的单轮路由,可配置为向任意端点(Gemini、Claude、OpenAI 兼容端点或您自己的端点)进行升级。 我们的下一个目标是为多轮智能代理工作开发混合原生模型。这是真正尚未解决的问题。我们目前的权重内探针方法已显示出有希望的结果,并计划很快发布首批模型变体。 混合变体是 Gemma 的衍生品,根据 HF 卡上注明的 Gemma 条款发布。 除了混合路由,该运行时还具备最先进的量化技术,能在 4 位精度下实现无损量化,通过内存映射权重来减少 RAM 占用,并支持跨平台运行,提供 Python、Rust、React Native、Swift 和 Kotlin 绑定。 免责声明:Cactus 以源代码可用形式分发——个人使用和小型公司免费;超出此范围的商业使用需付费(类似 Docker 的许可模式)。 您可以通过我们的 GitHub (<a href="https:&#x2F;&#x2F;github.com&#x2F;cactus-compute&#x2F;cactus" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cactus-compute&#x2F;cactus</a>) 或通过 `brew install cactus-compute&#x2F;cactus&#x2F;cactus` 开始使用。
1 分•作者: maxjustus•3 个月前
chwire 是一个用于 JS 的 ClickHouse 客户端,它通过 HTTP 和 TCP 使用原生(列式二进制)格式进行通信。对于 100 万行的数据负载,编码速度比 JSONEachRow 快 2-6 倍,解码速度快 2-8 倍。一旦加入压缩,原生格式几乎总是胜出,因为较小的数据负载压缩起来更便宜。 我过去一年一直在为 [https://www.hockeystack.com/](https://www.hockeystack.com/) 的使用而开发这个项目。最初是因为官方 ClickHouse JS 客户端在扩展插入操作时,gzip/deflate 的 CPU 占用过高而感到沮丧。从那时起,我便致力于实现一个我能做到的最好的 ClickHouse 客户端。 亮点: * 在浏览器中通过 HTTP 以及在 Node/Bun/Deno 中通过 HTTP 或 TCP 支持 ZSTD/LZ4 * 一个经过严格模糊测试的原生格式实现 * 支持所有类型 + 任意嵌套级别的容器类型,包括 Variant、Dynamic、JSON、Nested 和 Tuple * CI 系统会往返测试 ClickHouse 自带的 generateRandom 和 generateRandomStructure,并且我还有一个单独的模糊测试实现,包括 JSON、Variant 和 Dynamic * 解析器在内部是同步且可恢复的。当没有足够的数据来解析列时,异步包装器会缓冲块并获取更多数据。 * 一个功能齐全的 Node/Bun/Deno TCP 客户端 * 支持 ProfileEvents、日志、进度和其他协议包类型 * 支持 [外部表](https://clickhouse.com/docs/en/engines/table-engines/special/external-data) * 支持 [原生查询参数](https://clickhouse.com/docs/en/sql-reference/syntax/#defining-and-using-query-parameters) 次要的动机是希望它能作为一个不错的参考实现,用一种相对高级但有点简陋的语言。理论上,有人可以指向一个 LLM,并使用 `/goal` 或其他方式来获得另一种语言的可用的实现。 希望它能对大家有所帮助!
1 分•作者: MediaSquirrel•3 个月前
在本地运行大型语言模型(LLM)来驱动代码助手很复杂,所以我构建了一个 Cursor + VS Code 插件,让这个过程变得简单。 它会自动检测你的机器配置,选择一个适合你机器的模型,然后运行一个本地服务器,设置一个 Cloudflare Quick Tunnel,并引导你将其连接到 Cursor。 最后,你可以在 Cursor 中像往常一样工作,只需在模型选择下拉菜单中选择“Local Motion”作为你的模型即可。