首页
/ KVSplit 开源项目教程

KVSplit 开源项目教程

2025-05-17 07:36:18作者:毕习沙Eudora

1. 项目介绍

KVSplit 是一个针对 Apple Silicon 优化的开源项目,它通过为注意力机制的键(Key)和值(Value)缓存应用不同的量化精度,从而在保持或提升推理速度的同时,大幅减少内存使用。具体来说,KVSplit 可以实现高达 72% 的内存使用减少,并且质量损失极小。这使得在相同的内存预算下,可以运行更大上下文窗口和更重的语言模型。

2. 项目快速启动

环境准备

  • macOS 系统(已测试于 Apple Silicon)
  • Homebrew 包管理器
  • Xcode 命令行工具

克隆仓库

git clone https://github.com/dipampaul17/KVSplit.git
cd kvsplit

安装

chmod +x scripts/install_kvsplit.sh
./scripts/install_kvsplit.sh

安装脚本会执行以下操作:

  • 设置项目结构
  • 克隆并构建支持 Metal 的 llama.cpp
  • 配置区分键值量化缓存
  • (可选)下载一个小型测试模型
  • 为可视化设置 Python 环境

3. 应用案例和最佳实践

运行不同键值缓存精度的示例

基线(FP16)

./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -p "Your prompt" -t 8 --flash-attn

推荐配置:8 位键,4 位值(K8V4)

./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -p "Your prompt" -t 8 --flash-attn --kvq 8

4 位键,8 位值(K4V8)

./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -p "Your prompt" -t 8 --flash-attn --kvq-key 4 --kvq-val 8

4 位键和值(K4V4)

./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -p "Your prompt" -t 8 --flash-attn --kvq 4

长上下文示例(32K)

./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -c 32768 -n 4096 -t 8 --flash-attn --kvq 8 -f your-long-document.txt

4. 典型生态项目

KVSplit 的设计可以与其他开源项目相结合,例如:

  • llama.cpp:一个开源的语言模型推理引擎。
  • llama-perplexity:用于测量模型困惑度的工具。
  • 其他针对 Apple Silicon 优化的机器学习项目。

通过以上教程,开发者可以快速上手 KVSplit 项目,并在自己的应用中实现优化的内存使用和性能提升。

登录后查看全文
热门项目推荐