infiniStore:高性能KV存储解决方案
项目介绍
infiniStore 是一个开源的高性能键值(KV)存储系统,专为大规模语言模型(LLM)推理集群而设计。无论是集群处于预填充解码分离模式,还是非分离模式,infiniStore 都能够提供高效、低延迟的KV缓存传输和重用功能,极大提升推理节点的性能和资源利用率。此外,infiniStore 也可作为独立的KV存储系统,与其他语言模型训练或推理服务集成。
项目技术分析
infiniStore 的核心是一个高性能的KV存储引擎,它利用了现代硬件的高带宽和低延迟特性,如RDMA网络。项目采用了C++编程语言进行开发,以实现极致的性能表现。infiniStore 支持TCP/IP和RDMA网络,可根据用户的硬件配置进行选择。
在集群中,infiniStore 通过KV缓存传输和重用机制,优化了预填充节点和解码节点之间的数据交互。这一特性对于分离模式的推理集群尤为重要,因为它能够显著减少数据的重复加载和传输,从而降低延迟。
项目及应用场景
infiniStore 主要应用于以下两种场景:
-
预填充解码分离集群:在此模式下,推理工作负载被分为两个节点池:预填充节点和解码节点。infiniStore 实现了这两种节点之间的KV缓存传输和重用,有效减少了重复数据的加载时间,提高了整体推理效率。
-
非分离集群:在此模式下,预填充和解码工作负载混合运行在每个节点上。infiniStore 作为额外的KV缓存池,除了GPU缓存和本地CPU缓存外,还可以实现跨节点的KV缓存重用,进一步提升了缓存利用率。
目前,infiniStore 已与vLLM推理引擎集成,通过LMCache实现灵活的数据缓存管理。此外,与SGLang和其他推理引擎的集成工作也在进行中。
项目特点
1. 高性能
infiniStore 专为高性能计算环境设计,能够充分利用现代硬件资源,提供低延迟的KV缓存传输。
2. 易于集成
infiniStore 支持从Python包管理器PIP安装,方便用户快速部署和使用。同时,它提供了丰富的客户端示例代码,方便用户快速接入和使用。
3. 灵活部署
infiniStore 支持TCP/IP和RDMA网络,用户可以根据自己的硬件环境选择最合适的部署方式。
4. 开源社区支持
作为一个开源项目,infiniStore 拥有一个活跃的社区,欢迎任何形式的贡献,包括代码贡献、文档贡献等。
使用与部署
安装
用户可以通过以下两种方式安装infiniStore:
-
从PIP安装:对于大多数用户来说,推荐使用PIP安装,操作简单快捷。
pip install InfiniStore
-
从源代码安装:对于需要深入了解代码或贡献代码的用户,可以从源代码安装。
apt install libuv1-dev apt install libflatbuffers-dev apt install libspdlog-dev libfmt-dev apt install ibverbs-utils libibverbs-dev apt install libboost-dev libboost-stacktrace-dev pip install -e . pip install pre-commit pre-commit install
验证安装
安装完成后,执行以下命令验证安装是否成功:
InfiniStore --manage-port 8088
curl http://127.0.0.1:8088/selftest
运行
独立服务
-
启动infiniStore服务
根据网络配置,使用以下命令启动服务:
-
TCP/IP网络
InfiniStore --service-port 12345
-
RDMA(RoCE)网络
InfiniStore --service-port 12345 --dev-name mlx5_0 --link-type Ethernet
-
RDMA(Infiniband)网络
InfiniStore --service-port 12345 --dev-name mlx5_0 --link-type IB
-
-
运行客户端
查看以下示例代码以运行infiniStore客户端:
InfiniStore/example/client.py
InfiniStore/example/client_async.py
InfiniStore/example/client_async_single.py
在vLLM集群中运行
infiniStore 在vLLM集群中提供了多种功能,如KV缓存传输、扩展的KV缓存池、跨节点的KV缓存重用等。具体的配置依赖于集群的特定设置,但通常需要以下步骤:
- 在所有节点上安装vLLM
- 在所有节点上安装LMCache
- 在所有节点上安装infiniStore
有关详细配置,请参考专门的演示仓库:splitwise-demos。
infiniStore 作为一款高性能、灵活且易于集成的KV存储系统,无疑为大规模语言模型推理集群提供了强有力的支持。无论是预填充解码分离集群还是非分离集群,infiniStore 都能显著提升推理性能,降低延迟。其开源社区的活跃发展,也使得infiniStore成为了一个值得信赖的技术选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考