infiniStore:高性能KV存储解决方案

infiniStore:高性能KV存储解决方案

infiniStore A distributed KV store for disaggregated LLM inference infiniStore 项目地址: https://gitcode.com/gh_mirrors/in/infiniStore

项目介绍

infiniStore 是一个开源的高性能键值(KV)存储系统,专为大规模语言模型(LLM)推理集群而设计。无论是集群处于预填充解码分离模式,还是非分离模式,infiniStore 都能够提供高效、低延迟的KV缓存传输和重用功能,极大提升推理节点的性能和资源利用率。此外,infiniStore 也可作为独立的KV存储系统,与其他语言模型训练或推理服务集成。

项目技术分析

infiniStore 的核心是一个高性能的KV存储引擎,它利用了现代硬件的高带宽和低延迟特性,如RDMA网络。项目采用了C++编程语言进行开发,以实现极致的性能表现。infiniStore 支持TCP/IP和RDMA网络,可根据用户的硬件配置进行选择。

在集群中,infiniStore 通过KV缓存传输和重用机制,优化了预填充节点和解码节点之间的数据交互。这一特性对于分离模式的推理集群尤为重要,因为它能够显著减少数据的重复加载和传输,从而降低延迟。

项目及应用场景

infiniStore 主要应用于以下两种场景:

  1. 预填充解码分离集群:在此模式下,推理工作负载被分为两个节点池:预填充节点和解码节点。infiniStore 实现了这两种节点之间的KV缓存传输和重用,有效减少了重复数据的加载时间,提高了整体推理效率。

  2. 非分离集群:在此模式下,预填充和解码工作负载混合运行在每个节点上。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

运行

独立服务
  1. 启动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
      
  2. 运行客户端

    查看以下示例代码以运行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成为了一个值得信赖的技术选择。

infiniStore A distributed KV store for disaggregated LLM inference infiniStore 项目地址: https://gitcode.com/gh_mirrors/in/infiniStore

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井唯喜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值