openYuanrong数据系统与vLLM集成:为GLM-5模型提供多级缓存后端

【免费下载链接】yuanrong-datasystem openYuanrong 数据系统是以内存为中心、近计算的分布式异构多级缓存,为AI训推、Agent、大数据、微服务等分布式应用提供高性能的数据对象(KV)与数据流访问、HBM/DRAM/SSD 多级缓存以及实例间零拷贝数据共享能力。 【免费下载链接】yuanrong-datasystem 项目地址: https://gitcode.com/openeuler/yuanrong-datasystem

前往项目官网免费下载:https://ar.openeuler.org/ar/

openYuanrong数据系统是一款以内存为中心、近计算的分布式异构多级缓存系统,专为AI训推、Agent、大数据等分布式应用打造。通过与vLLM集成,它能为GLM-5等大模型提供高性能的KV缓存存储与请求间复用能力,显著提升推理效率。

为什么选择openYuanrong作为vLLM的缓存后端?

在大模型推理场景中,KV缓存的管理直接影响系统性能。openYuanrong数据系统通过创新的多级缓存架构,完美解决了传统方案面临的三大挑战:

  • 显存瓶颈:实现HBM/DRAM/SSD多级存储,将冷数据自动迁移至低成本介质
  • 实例间数据共享:通过零拷贝技术实现推理实例间的KV缓存复用,降低重复计算
  • 弹性扩展:支持动态扩缩容,满足流量波动下的资源高效利用

openYuanrong的核心优势

openYuanrong数据系统的逻辑架构如下,它通过多层次设计实现了高效的缓存管理:

openYuanrong数据系统逻辑架构图

核心优势包括:

  • 多语言SDK支持:提供Python/C++接口,轻松集成到vLLM等推理框架
  • 计算访问加速:支持共享内存免拷贝、NPU间开发通信和P2P数据分发
  • 智能数据管理:实现读写一致性、生命周期管理和缓存淘汰策略
  • 高可用集群管理:包含节点发现、健康检查、故障恢复和弹性伸缩能力

部署架构:vLLM + openYuanrong + GLM-5

在实际部署中,openYuanrong与vLLM、GLM-5模型形成协同架构,通过分布式Worker节点实现缓存资源的统一管理:

vLLM与openYuanrong部署架构图

硬件环境要求

部署GLM-5模型与openYuanrong数据系统的推荐配置如下:

::::{tab-set} :::{tab-item} Atlas A3单机 | 软硬件名称 | 版本/规格 | 作用 | |-------|----|----| | Atlas 800T/I A3(单机) | 16张NPU卡(每张64G显存) | 运行异构大模型推理的物理硬件 | | vllm-ascend Docker 镜像 | "vllm-ascend:0.18.0rc1" | 提供包含vLLM、CANN等预配置的容器环境 | | GLM-5 模型 | W4A8量化版本 | 智能体应用设计的高效推理模型权重 | | openYuanrong datasystem | 最新版 | 提供KV Cache外部存储与复用的核心组件 | | etcd | 3.5 | Datasystem集群与节点管理依赖组件 | ::: :::{tab-item} Atlas A2双机 | 软硬件名称 | 版本/规格 | 作用 | |-------|----|----| | Atlas 800T/I A2(双机) | 8张NPU卡(每张64G显存) | 运行异构大模型推理的物理硬件 | | vllm-ascend Docker 镜像 | "vllm-ascend:0.18.0rc1" | 提供包含vLLM、CANN等预配置的容器环境 | | GLM-5 模型 | W4A8量化版本 | 智能体应用设计的高效推理模型权重 | | openYuanrong datasystem | 最新版 | 提供KV Cache外部存储与复用的核心组件 | | etcd | 3.5 | Datasystem集群与节点管理依赖组件 | ::: ::::

快速部署步骤

1. 准备基础环境

获取GLM-5模型权重

pip install modelscope
modelscope download --model Eco-Tech/GLM-5-w4a8 --local_dir /home/models

拉取vLLM-Ascend镜像

# A3单机
docker pull quay.io/ascend/vllm-ascend:0.18.0rc1-a3

# A2双机
docker pull quay.io/ascend/vllm-ascend:0.18.0rc1

启动容器(以A3单机为例)

export IMAGE=quay.io/ascend/vllm-ascend:0.18.0rc1-a3
export NAME=vllm-ascend

docker run --rm \
    --name $NAME \
    --shm-size=1g \
    --net=host \
    --device /dev/davinci0 \
    # ... 省略其他设备映射 ...
    --device /dev/davinci15 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    # ... 省略其他 volume 映射 ...
    -it $IMAGE bash

2. 安装openYuanrong数据系统

在线安装

pip install openyuanrong-datasystem

验证安装

python -c "import yr.datasystem; print('Yuanrong Datasystem 安装成功')"

3. 启动openYuanrong服务

创建启动脚本 run_yr.sh

#!/bin/bash

# 配置参数
export HOST_IP="192.168.1.100"  # 替换为实际IP
export ETCD_IP="${HOST_IP}"
export WORKER_PORT=18481
export ETCD_PORT=2379
export SHM_SIZE=512000  # 500GB共享内存
export NODE_TIMEOUT=30
export NODE_DEAD_TIMEOUT=60
export LIVENESS_PATH=/workspace/liveness

# 启动etcd
etcd \
  --name etcd-single \
  --data-dir /tmp/etcd-data \
  --listen-client-urls http://0.0.0.0:${ETCD_PORT} \
  --advertise-client-urls http://${ETCD_IP}:${ETCD_PORT} \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://${ETCD_IP}:2380 \
  --initial-cluster etcd-single=http://${ETCD_IP}:2380 \
  > /tmp/etcd.log 2>&1 &

# 等待etcd启动
sleep 3

# 验证etcd
etcdctl --endpoints "${ETCD_IP}:${ETCD_PORT}" put key "value"
etcdctl --endpoints "${ETCD_IP}:${ETCD_PORT}" get key

# 启动Datasystem Worker
dscli start -w \
  --worker_address ${HOST_IP}:${WORKER_PORT} \
  --etcd_address ${ETCD_IP}:${ETCD_PORT} \
  --shared_memory_size_mb ${SHM_SIZE} \
  --node_timeout_s ${NODE_TIMEOUT} \
  --node_dead_timeout_s ${NODE_DEAD_TIMEOUT} \
  --liveness_check_path ${LIVENESS_PATH}

echo "Yuanrong服务启动完成"

运行启动脚本:

bash run_yr.sh

4. 启动vLLM服务(集成openYuanrong)

创建A3单机启动脚本 run_glm5_yuanrong.sh

#!/bin/bash

# NPU性能优化配置
export HCCL_OP_EXPANSION_MODE="AIV"
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=1
export HCCL_BUFFSIZE=200
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True

# vLLM配置
export VLLM_USE_V1=1
export VLLM_ENGINE_READY_TIMEOUT_S=1800
export PYTHONHASHSEED=0

# Yuanrong配置
export DS_WORKER_ADDR="192.168.1.100:18481"  # 替换为实际Worker地址
export DS_H2D_MEMCPY_POLICY="direct"
export DS_D2H_MEMCPY_POLICY="direct"

MODEL_PATH="/home/models/GLM-5-w4a8"

vllm serve $MODEL_PATH \
  --host 0.0.0.0 \
  --port 1025 \
  --data-parallel-size 1 \
  --tensor-parallel-size 16 \
  --enable-expert-parallel \
  --seed 1024 \
  --served-model-name glm-5 \
  --max-num-seqs 8 \
  --max-model-len 200000 \
  --max-num-batched-tokens 4096 \
  --trust-remote-code \
  --gpu-memory-utilization 0.95 \
  --quantization ascend \
  --enable-chunked-prefill \
  --enable-prefix-caching \
  --async-scheduling \
  --kv-transfer-config '{
      "kv_connector": "AscendStoreConnector",
      "kv_role": "kv_both",
      "kv_connector_extra_config": {
          "lookup_rpc_port": "0",
          "backend": "yuanrong"
      }
  }' 2>&1 | tee ./glm-5_yuanrong.log

启动服务:

bash run_glm5_yuanrong.sh

功能验证与性能监控

验证服务状态

curl http://localhost:1025/health

测试推理请求

curl -H "Content-type: application/json" \
    -X POST \
    -d '{
        "model": "glm-5",
        "messages": [{
            "role": "user",
            "content": "你好,请介绍一下人工智能的未来发展趋势。"
        }],
        "stream": false,
        "temperature": 0,
        "max_tokens": 200
    }' http://localhost:1025/v1/chat/completions

监控缓存命中率

通过日志查看缓存命中情况:

# 查看Prefix Cache命中率
grep -E "prefix cache hit|cache hit rate" glm-5_yuanrong.log

# 查看Yuanrong外部缓存命中率
grep -E "yuanrong|YuanrongBackend|kv_cache|hit_rate" glm-5_yuanrong.log

启用Prometheus监控:

vllm serve ... --enable-metrics --metrics-port 8001

然后通过以下命令获取详细指标:

curl http://localhost:8001/metrics | grep -E "vllm_prefix_cache|external_prefix_cache"

常见问题解决

etcd连接失败

# 检查etcd健康状态
etcdctl --endpoints "${ETCD_IP}:2379" endpoint health

Worker注册失败

# 检查Worker端口是否监听
netstat -tlnp | grep 18481

内存不足(OOM)

降低并发参数:

--max-model-len 65536 \
--max-num-seqs 4

KV Cache未命中

确保PYTHONHASHSEED设置一致:

echo $PYTHONHASHSEED  # 应输出0

总结

通过将openYuanrong数据系统与vLLM集成,我们为GLM-5模型构建了高效的多级缓存后端,实现了:

  • 显存优化:通过多级缓存扩展存储容量,降低单卡显存压力
  • 性能提升:KV缓存复用减少重复计算,降低首token延迟(TTFT)
  • 弹性扩展:支持动态调整缓存资源,适应不同负载需求

详细部署指南可参考项目文档:vLLM Ascend使用OpenYuanrong作为多级缓存最佳实践

要开始使用这个强大的组合,只需:

  1. 克隆仓库:git clone https://gitcode.com/openeuler/yuanrong-datasystem
  2. 按照部署文档配置环境
  3. 启动服务并享受高性能的大模型推理体验!

openYuanrong数据系统与vLLM的集成,为GLM-5等大模型的高效部署提供了理想的缓存解决方案,特别适合需要处理长序列和高并发请求的智能体应用场景。

【免费下载链接】yuanrong-datasystem openYuanrong 数据系统是以内存为中心、近计算的分布式异构多级缓存,为AI训推、Agent、大数据、微服务等分布式应用提供高性能的数据对象(KV)与数据流访问、HBM/DRAM/SSD 多级缓存以及实例间零拷贝数据共享能力。 【免费下载链接】yuanrong-datasystem 项目地址: https://gitcode.com/openeuler/yuanrong-datasystem

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐