返回首页

24小时热榜

77作者: dipampaul17大约 4 小时前原帖
我发现,在大语言模型(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大约 9 小时前原帖
我将在这里待接下来的5到6个小时。像往常一样,考虑到快速变化的移民形势,有无数话题可以讨论,我会根据你们的关注点来引导讨论。请记住,我无法就具体案例提供法律建议,因为我无法获取所有事实。请在提问时尽量保持讨论的客观性,我会在回答时尽量做到这一点。