返回首页

24小时热榜

77作者: dipampaul17大约 5 小时前原帖
我发现,在大语言模型(LLM)推理中,KV缓存中的键(keys)和值(values)对量化的敏感性差异很大。为了保持质量,键需要比值更高的精度。 我对 llama.cpp 进行了修改,以便在 Apple Silicon 上为键和值启用不同的位宽。结果令人惊讶: - K8V4(8位键,4位值):内存减少59%,但困惑度损失仅为0.86% - K4V8(4位键,8位值):内存减少59%,但困惑度损失为6.06% - 这两种配置使用相同数量的位,但 K8V4 在质量上优于 K4V8 7倍 这意味着你可以在同一台 Mac 上运行具有 2-3 倍更长上下文的 LLM。内存使用量与序列长度成正比,因此随着上下文的增长,节省的内存会不断累积。 实现过程相对简单: 1. 在 llama.cpp 中添加了 --kvq-key 和 --kvq-val 标志 2. 将现有的量化逻辑分别应用于 K 和 V 张量 3. 在不同的上下文长度下通过困惑度指标进行验证 4. 使用 Metal 进行加速(使用 -mlong-calls 标志以避免向量化问题) 在一台运行 TinyLlama 的 M4 MacBook Pro 上进行了基准测试,使用 8K 上下文窗口。与 Metal/MPS 兼容,并针对 Apple Silicon 进行了优化。 GitHub: [https://github.com/dipampaul17/KVSplit](https://github.com/dipampaul17/KVSplit)
30作者: proberts大约 10 小时前原帖
我将在这里待接下来的5到6个小时。像往常一样,考虑到快速变化的移民形势,有无数话题可以讨论,我会根据你们的关注点来引导讨论。请记住,我无法就具体案例提供法律建议,因为我无法获取所有事实。请在提问时尽量保持讨论的客观性,我会在回答时尽量做到这一点。
9作者: jayl-e-e大约 3 小时前原帖
大家好!<p>在过去的两年里,我全身心投入到全职工程师的工作中,目标很简单:编写能够<i>回馈</i>社区的代码。在经历了许多深夜的焦虑(“人工智能会为我们做一切,对吧?”)和一些痛苦的生产事故后,我终于将我的周末项目转变为一个开源库。<p>[ 什么是<i>Solidis</i>? ]<p>- <i>超轻量(&lt; 30 KB)的 RESP2/RESP3 客户端</i>,没有运行时依赖,并且支持一流的 ESM/CJS。<p>- 完全<i>可树摇</i> – 只导入你需要的命令。<p>- 遵循 SOLID 原则编写,并为每个命令提供完整的 TypeScript 类型定义。<p>- 针对<i>冷启动敏感</i>的无服务器平台设计(小包体 + 微小内存占用)。<p>[ 我为什么构建它 ]<p>1. <i>node-redis 和 ioredis 的痛苦</i><p>- ESM 仍然是一个事后考虑。<p>- RST 上的隐性死锁,模糊的错误信息。<p>- 所有内容都被打包,甚至是你永远不会调用的命令。<p>2. 我拒绝添加我不完全理解的依赖 – 我在执行 `npm i` 之前会认真阅读候选库十遍。<p>3. 无服务器账单总是提醒我每个 KB 和毫秒都很重要。<p>[ 主要特性 ]<p>- 协议:RESP2 和 RESP3(自动协商)<p>- 包体大小:`&lt;30 KB`(核心) / `&lt;105 KB`(完整)<p>- 依赖:<i>0</i><p>- 可扩展性:即插即用的命令插件,自定义事务<p>- 可靠性:自动重连,逐命令超时,类型检查的回复<p>[ 路线图 / 需要帮助 ]<p>- <i>与 node-redis 和 ioredis 的基准测试</i>(欢迎提交 PR!)<p>- 更多一流的<i>Valkey</i>支持<p>- <i>模糊测试</i>解析器<p>- <i>文档网站</i> – README 是第一步;我希望能有人帮助完善完整的文档<p>这可能是我一段时间内最后一次大规模的开源项目推动,所以<i>星标、问题和 PR 对我来说意义重大</i>。<p>如果 Solidis 能为你节省一些冷启动时间,或者仅仅是满足了你对 TypeScript 的需求,请告诉我!<p><i>仓库:</i> <a href="https:&#x2F;&#x2F;github.com&#x2F;vcms-io&#x2F;solidis">https:&#x2F;&#x2F;github.com&#x2F;vcms-io&#x2F;solidis</a><p><i>许可证:</i> MIT<p>感谢阅读,祝编码愉快!<p><i>(欢迎在评论中提问 – 我会在这里。)</i>