独立启动器#
LMCache 独立启动器允许您将 LMCacheEngine 作为独立服务运行,而无需 vLLM 或 GPU 依赖。这对于以下情况特别有用:
测试和开发环境
仅 CPU 或 P2P 后端部署
快速开始#
基本用法#
# Start with default configuration
python -m lmcache.v1.standalone
# Start with custom configuration file
python -m lmcache.v1.standalone --config examples/cache_with_configs/example.yaml
# Start with environment variables
export LMCACHE_CONFIG_FILE=examples/cache_with_configs/example.yaml
python -m lmcache.v1.standalone
CPU-Only 模式#
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--model_name my_model \
--worker_id 0 \
--world_size 1
远程 P2P 模式#
待添加
配置部分#
独立启动器支持多个配置源,优先级顺序如下:
**命令行参数**(最高优先级)
**配置文件**(由
--config或LMCACHE_CONFIG_FILE指定)**环境变量**(例如,
LMCACHE_CHUNK_SIZE=512)**默认值**(最低优先级)
参数详细信息#
KV Cache 形状规范
--kvcache_shape_spec 参数支持多层组配置:
格式:
(shape_string):dtype:layer_count;[...]shape_string: 以逗号分隔的形状(例如,'2,2,256,4,16')
示例: - 单个组:
(2,2,256,4,16):float16:2- 多个组:(2,2,256,4,16):float16:2;(3,2,256,4,4):float32:3
设备支持
--device=cpu: 仅 CPU 模式(默认)--device=cuda: CUDA GPU 加速--device=xpu: XPU GPU 加速
多级注意力 (MLA)
--use_mla: 启用 MLA 以提高注意力性能需要兼容的模型和配置
缓存格式
--fmt=vllm: vLLM 兼容格式(默认)支持其他格式以适应不同的推理引擎
命令行参数#
基本参数#
--config CONFIG_FILE # Path to configuration file
--model_name MODEL_NAME # Model name for cache identification
--worker_id WORKER_ID # Worker ID (default: 0)
--world_size WORLD_SIZE # Total workers (default: 1)
--kv_dtype {float16,float32,bfloat16,uint8} # KV cache data type
--kv_shape KV_SHAPE # KV cache shape (default: "2,2,256,4,16")
--kvcache_shape_spec SPEC # Multi-group KV shape specification
--device {cpu,cuda,xpu} # Device to run on (default: cpu)
--fmt FORMAT # Cache format (default: vllm)
--use_mla # Enable MLA (Multi-Level Attention)
使用示例#
自定义配置#
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--chunk_size=512 \
--max_local_cpu_size=4.0 \
--model_name=custom_model
多层组配置#
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--kvcache_shape_spec="(2,2,256,4,16):float16:2" \
--kv_shape="2,2,256,4,16" \
--model_name=multi_group_model \
--device=cpu
GPU 设备#
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--kvcache_shape_spec="(2,2,256,4,16):float16:2" \
--kv_shape="2,2,256,4,16" \
--kv_dtype=float16 \
--device=cuda \
--use_mla \
--model_name=gpu_model
MLA 配置#
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--kv_shape="16,2,512,16,64" \
--kv_dtype=bfloat16 \
--use_mla \
--fmt=vllm \
--model_name=mla_model
内部 API 服务器#
独立启动器包括一个用于监控和管理的内部 API 服务器:
python -m lmcache.v1.standalone \
--config examples/cache_with_configs/example.yaml \
--chunk_size=512 \
--max_local_cpu_size=4.0 \
--model_name=custom_model \
--internal_api_server_enabled=True
故障排除#
常见问题#
问题: “未指定配置文件” 解决方案: 设置 LMCACHE_CONFIG_FILE 或使用 --config 参数
问题: “无法连接到控制器” 解决方案: 首先启动控制器: python -m lmcache.v1.api_server
问题: "无效的 KV 形状规范" 解决方案: 检查格式: (shape):dtype:layer_count,例如,(2,2,256,4,16):float16:2
问题: "设备不可用" 解决方案: 验证设备支持: 如果 GPU 不可用,请使用 --device=cpu
问题: "MLA 配置错误" 解决方案: 确保模型兼容并检查 --use_mla 参数
调试模式#
启用调试日志以进行故障排除:
export LMCACHE_LOG_LEVEL=DEBUG
python -m lmcache.v1.standalone
高级调试#
有关详细的层组信息:
export LMCACHE_LOG_LEVEL=DEBUG
python -m lmcache.v1.standalone \
--kvcache_shape_spec="(2,2,256,4,16):float16:2;(3,2,256,4,4):float32:3" \
--device=cpu
性能调优#
内存配置#
# For systems with large memory
--max_local_cpu_size=8.0
# For memory-constrained systems
--max_local_cpu_size=1.0
层组优化#
# Optimize for mixed precision models
--kvcache_shape_spec="(2,2,256,4,16):float16:2;(3,2,256,4,4):bfloat16:3"
# Optimize for different layer configurations
--kvcache_shape_spec="(2,2,512,8,32):float16:4;(4,2,256,16,16):float32:2"
GPU 加速#
# GPU-optimized configuration
--device=cuda --kv_dtype=float16 --use_mla
# Large model on GPU
--device=cuda --kv_shape="64,2,512,64,128" --max_local_cpu_size=16.0
MLA 性能#
# Enable MLA for attention optimization
--use_mla --kv_dtype=bfloat16 --device=cuda
# MLA with custom shape
--use_mla --kv_shape="32,2,1024,32,64" --fmt=vllm
最佳实践#
在生产环境中使用配置文件
根据可用内存设置适当的缓存大小
启用内部 API 以进行监控和管理
**监控日志**以进行性能和错误跟踪
使用多层组配置 以支持复杂的模型架构
启用 MLA 以在支持的硬件上提高注意力性能
根据可用资源(CPU/GPU/XPU)选择合适的设备
在部署之前 验证 KV 形状规范
**在配置新层组时**进行调试日志测试
为特定硬件配置优化块大小
多层组最佳实践#
在层组之间使用一致的块大小以获得最佳性能
将具有相似精度要求的层分组在一起
首先在开发环境中验证形状规范
在使用多个层组时监控内存使用情况
MLA 配置提示#
仅在支持的硬件配置上启用 MLA
使用 bfloat16 或 float16 精度以获得最佳 MLA 性能
在生产部署之前测试 MLA 性能影响
启用 MLA 后监控注意力性能指标