性能测试
Go 基准测试用于衡量正在运行的 Ollama 服务器的端到端性能。运行这些测试可以评估模型在您硬件上的推理性能,并测量代码更改的影响。
使用场景
在以下情况下运行这些基准测试:
- 对模型推理引擎进行更改时
- 修改模型加载/卸载逻辑时
- 更改提示词处理或令牌生成代码时
- 实现新的模型架构时
- 在不同硬件配置上测试性能时
前置条件
- Ollama 服务器在本地运行,使用
ollama serve命令启动,监听地址为127.0.0.1:11434
使用方法和示例
注意: 所有命令必须在 Ollama 项目的根目录下运行。
基本语法:
go test -bench=. ./benchmark/... -m $MODEL_NAME
必需参数:
-bench=.:运行所有基准测试-m:要测试的模型名称
可选参数:
-count N:基准测试运行次数(用于统计分析)-timeout T:基准测试的最大运行时间(例如 "10m" 表示 10 分钟)
常见使用模式:
指定模型运行单次基准测试:
go test -bench=. ./benchmark/... -m llama3.3
输出指标
基准测试报告几个关键指标:
gen_tok/s:每秒生成的令牌数prompt_tok/s:每秒处理的提示词令牌数ttft_ms:首个令牌生成时间(毫秒)load_ms:模型加载时间(毫秒)gen_tokens:总生成令牌数prompt_tokens:总处理的提示词令牌数
每个基准测试运行两种场景:
- 冷启动:每次测试都从磁盘加载模型
- 热启动:模型预先加载到内存中
每种场景测试三种提示词长度:
- 短提示词(100 个令牌)
- 中等提示词(500 个令牌)
- 长提示词(1000 个令牌)