章节 01
导读 / 主楼:inference-bench:一款轻量级 LLM 推理性能测试 CLI 工具
Rust 编写的跨平台推理基准测试工具,支持 Ollama、FastFlowLM 和 llama.cpp,一键测量 TTFT、吞吐量和上下文扩展性能。
正文
Rust 编写的跨平台推理基准测试工具,支持 Ollama、FastFlowLM 和 llama.cpp,一键测量 TTFT、吞吐量和上下文扩展性能。
章节 01
Rust 编写的跨平台推理基准测试工具,支持 Ollama、FastFlowLM 和 llama.cpp,一键测量 TTFT、吞吐量和上下文扩展性能。
章节 02
ttft:测量首 token 生成时间\n - throughput:测试生成吞吐量(token/秒)\n - context:分析上下文长度对性能的影响\n - compare:一键对比所有检测到的端点\n - detect:列出当前运行的推理服务\n\n3. 灵活的输出格式:支持终端表格、JSON 和 CSV 三种输出形式,便于脚本集成和数据分析\n\n4. 可配置的测试参数:包括预热次数、测量重复次数、生成 token 数、自定义提示词等\n\n## 安装与使用\n\n### 安装\n\nbash\ncargo build --release\ncp target/release/inference-bench ~/.local/bin/\n\n\n### 基础用法\n\nbash\n# 检测运行中的推理端点\ninference-bench detect\n\n# 测试首 token 时间(使用 Qwen3 4B 模型)\ninference-bench ttft --model qwen3:4b\n\n# 测试吞吐量(生成 200 个 token)\ninference-bench throughput --tokens 200\n\n# 测试上下文扩展性能\ninference-bench context --repeat 5\n\n# 全面对比所有端点,输出 JSON\ninference-bench compare --json\n\n# 测试自定义端点\ninference-bench throughput --url http://localhost:8080\n\n\n### 常用参数\n\n| 参数 | 默认值 | 说明 |\n|------|--------|------|\n| --model | qwen3:4b | 模型名称(Ollama/FastFlowLM)|\n| --tokens | 100 | 每次运行生成的 token 数 |\n| --repeat | 3 | 测量重复次数 |\n| --warmup | 1 | 正式测量前的预热次数 |\n| --json | - | 以 JSON 格式输出 |\n| --csv | - | 以 CSV 格式输出 |\n| --url | - | 覆盖默认端点 URL |\n| --prompt | - | 自定义测试提示词 |\n\n## 技术亮点\n\n### 1. 跨后端统一接口\n\ninference-bench 的最大价值在于提供了一致的测试接口,无论底层使用的是 Ollama、FastFlowLM 还是 llama.cpp,用户都能用相同的命令进行测试。这消除了不同工具间 API 差异带来的比较困难。\n\n### 2. 科学的测试方法\n\n工具内置了预热机制(warmup)和多次测量取平均的逻辑,减少了冷启动和随机波动对结果的影响,使测试数据更具参考价值。\n\n### 3. 上下文性能分析\n\ncontext 子命令通过逐步增加上下文长度,帮助开发者识别模型性能随输入长度增长的衰减曲线。这对于需要处理长文档的应用场景尤为重要。\n\n### 4. 对比模式\n\ncompare 命令可以一次性对所有检测到的端点运行完整测试套件,生成横向对比报告,方便用户根据实际需求选择最优方案。\n\n## 实际应用场景\n\n### 场景一:模型选型\n\n在决定使用哪个模型时,可以通过 throughput 测试对比不同规模模型的实际生成速度,在性能和资源占用间找到平衡点。\n\n### 场景二:后端优化验证\n\n当调整推理后端的参数(如批大小、线程数、GPU 层数)时,使用 inference-bench 可以快速验证改动是否带来了预期的性能提升。\n\n### 场景三:硬件评估\n\n在新硬件上部署 LLM 前,运行完整的 benchmark 可以建立性能基线,为后续容量规划提供数据支持。\n\n### 场景四:持续集成\n\nJSON/CSV 输出格式便于将性能测试集成到 CI/CD 流程中,实现性能回归的自动化监控。\n\n## 局限与展望\n\n目前 inference-bench 主要面向本地部署场景,支持的推理后端相对有限。未来可能的扩展方向包括:\n\n- 支持更多推理框架(如 vLLM、TensorRT-LLM)\n- 增加并发请求测试模式\n- 支持远程 API 端点(OpenAI 兼容接口)\n- 内置结果可视化\n\n## 总结\n\ninference-bench 是一款实用且专注的工具,它填补了 LLM 本地部署生态中"性能测试标准化"的空白。对于任何需要在本地运行大语言模型的开发者来说,这都是一个值得加入工具箱的利器。\n\n无论你是想对比不同模型的速度,验证后端优化效果,还是为硬件选型收集数据,inference-bench 都能提供简洁而可靠的测试能力。章节 03
原作者与来源
ttft:测量首 token 生成时间\n - throughput:测试生成吞吐量(token/秒)\n - context:分析上下文长度对性能的影响\n - compare:一键对比所有检测到的端点\n - detect:列出当前运行的推理服务\n\n3. 灵活的输出格式:支持终端表格、JSON 和 CSV 三种输出形式,便于脚本集成和数据分析\n\n4. 可配置的测试参数:包括预热次数、测量重复次数、生成 token 数、自定义提示词等\n\n安装与使用\n\n安装\n\nbash\ncargo build --release\ncp target/release/inference-bench ~/.local/bin/\n\n\n基础用法\n\nbash\n检测运行中的推理端点\ninference-bench detect\n\n测试首 token 时间(使用 Qwen3 4B 模型)\ninference-bench ttft --model qwen3:4b\n\n测试吞吐量(生成 200 个 token)\ninference-bench throughput --tokens 200\n\n测试上下文扩展性能\ninference-bench context --repeat 5\n\n全面对比所有端点,输出 JSON\ninference-bench compare --json\n\n测试自定义端点\ninference-bench throughput --url http://localhost:8080\n\n\n常用参数\n\n| 参数 | 默认值 | 说明 |\n|------|--------|------|\n| --model | qwen3:4b | 模型名称(Ollama/FastFlowLM)|\n| --tokens | 100 | 每次运行生成的 token 数 |\n| --repeat | 3 | 测量重复次数 |\n| --warmup | 1 | 正式测量前的预热次数 |\n| --json | - | 以 JSON 格式输出 |\n| --csv | - | 以 CSV 格式输出 |\n| --url | - | 覆盖默认端点 URL |\n| --prompt | - | 自定义测试提示词 |\n\n技术亮点\n\n1. 跨后端统一接口\n\ninference-bench 的最大价值在于提供了一致的测试接口,无论底层使用的是 Ollama、FastFlowLM 还是 llama.cpp,用户都能用相同的命令进行测试。这消除了不同工具间 API 差异带来的比较困难。\n\n2. 科学的测试方法\n\n工具内置了预热机制(warmup)和多次测量取平均的逻辑,减少了冷启动和随机波动对结果的影响,使测试数据更具参考价值。\n\n3. 上下文性能分析\n\ncontext 子命令通过逐步增加上下文长度,帮助开发者识别模型性能随输入长度增长的衰减曲线。这对于需要处理长文档的应用场景尤为重要。\n\n4. 对比模式\n\ncompare 命令可以一次性对所有检测到的端点运行完整测试套件,生成横向对比报告,方便用户根据实际需求选择最优方案。\n\n实际应用场景\n\n场景一:模型选型\n\n在决定使用哪个模型时,可以通过 throughput 测试对比不同规模模型的实际生成速度,在性能和资源占用间找到平衡点。\n\n场景二:后端优化验证\n\n当调整推理后端的参数(如批大小、线程数、GPU 层数)时,使用 inference-bench 可以快速验证改动是否带来了预期的性能提升。\n\n场景三:硬件评估\n\n在新硬件上部署 LLM 前,运行完整的 benchmark 可以建立性能基线,为后续容量规划提供数据支持。\n\n场景四:持续集成\n\nJSON/CSV 输出格式便于将性能测试集成到 CI/CD 流程中,实现性能回归的自动化监控。\n\n局限与展望\n\n目前 inference-bench 主要面向本地部署场景,支持的推理后端相对有限。未来可能的扩展方向包括:\n\n- 支持更多推理框架(如 vLLM、TensorRT-LLM)\n- 增加并发请求测试模式\n- 支持远程 API 端点(OpenAI 兼容接口)\n- 内置结果可视化\n\n总结\n\ninference-bench 是一款实用且专注的工具,它填补了 LLM 本地部署生态中"性能测试标准化"的空白。对于任何需要在本地运行大语言模型的开发者来说,这都是一个值得加入工具箱的利器。\n\n无论你是想对比不同模型的速度,验证后端优化效果,还是为硬件选型收集数据,inference-bench 都能提供简洁而可靠的测试能力。