本文档说明如何使用本仓库对 KV Cache 策略进行简单评测,并产出命中率等指标。
kvcachepolicy/:- 缓存淘汰策略,其中提供多种不同的缓存淘汰策略。如
kvcachepolicy/s3_fifo.py提供 S3-FIFO 的实现策略。
- 缓存淘汰策略,其中提供多种不同的缓存淘汰策略。如
kvstore.py:简易 KV 缓存存储抽象,支持容量控制与增删查(容量在此处设定并强制)。test.py:评测脚本,读取输入数据并计算命中率。input_samples/:示例输入数据。
每一行都是一条请求/访问记录,格式类似:{prefix_hash_id 列表} type
示例(input_samples/sample1):
{1,2,3,4} 1
{1,2,3,4,5} 1
{1,2,6} 2
说明:
- 每条记录的花括号内是该请求的
prefix_hash_id访问序列;空格后的最后一个整数是该请求的type。 - 评测时会按序逐个访问花括号内的
prefix_hash_id,对每次访问统计命中或未命中,并根据所选策略进行插入/淘汰。
评测流程现在由一个配置文件 config/test.yaml 驱动。您需要在此文件中定义要测试的数据集以及每个数据集对应的容量列表。
-
配置测试任务
编辑
config/test.yaml文件。tests列表下的每个条目都代表一个测试任务:file:input_samples目录下的样本文件名。capacities: 一个或多个要在此样本上测试的容量值。脚本会自动按从小到大的顺序进行测试。
示例
config/test.yaml:tests: - file: "kimi_sample_1" capacities: [246, 493, 987, ...] - file: "qwenB_sample" capacities: [46383, 92767, 185535, ...]
-
执行评测
配置完成后,直接运行评测脚本即可:
python3 test.py
- 脚本将自动加载 test.yaml 并执行其中定义的所有测试。
如果您想使用其他配置文件,可以将其路径作为参数传入:
python3 test.py path/to/your/config.yaml
如果您想对于单一策略进行测试,可以将其作为参数传入:
python3 test.py --policy S3FIFO
控制台输出: 对于配置文件中定义的每个数据集和容量组合,都会打印详细的统计指标。
==== Testing Dataset: conversation_trace ====
--- Running with capacity: 1000 ---
Total requests: 288,500
Hits: 2,004
Misses: 286,496
Hit Ratio: 0.69497%
Time elapsed: 0.29680s
https://github.com/alibaba-edu/qwen-bailian-usagetraces-anon https://github.com/kvcache-ai/Mooncake/tree/main/FAST25-release/traces