Files
llm_speed_test_app/README.md
T

4.4 KiB
Raw Blame History

大模型速度测试助手 (Ollama 版)

一个用于测试本地 Ollama 大模型响应速度的工具,提供 Web 界面,可测量 TTFT(首 Token 延迟)、Prefill 时间、解码速度(tokens/s)、端到端延迟等真实推理指标。

目录结构

llm_speed_test_app/
├── run.py                  # 启动入口
├── requirements.txt        # Python 依赖
├── backend/                # 后端(Python)
│   ├── config.py           # 配置(Ollama 地址、模型、端口)
│   ├── ollama_client.py    # Ollama API 客户端(流式调用 + 指标测量)
│   ├── engine.py           # 测试引擎(编排用例、统计、落盘)
│   ├── report.py           # HTML 报告生成
│   ├── server.py           # HTTP 服务器(API + 前端静态托管)
│   ├── stats.py            # 统计计算(均值/标准差/百分位)
│   └── test_cases/         # 7 个测试用例(真实调用 Ollama)
│       ├── base.py
│       ├── case_01_generation.py    纯文本生成基准
│       ├── case_02_simple_tool.py   简单工具调用延迟
│       ├── case_03_file_analysis.py 文件读取+分析
│       ├── case_04_parallel_tool.py 并行工具调用
│       ├── case_05_long_context.py   长上下文处理
│       ├── case_06_reasoning.py      复杂推理任务
│       └── case_07_multiturn.py      多轮对话累积
├── frontend/               # 前端(静态页面)
│   ├── index.html
│   ├── css/style.css
│   └── js/app.js
├── results/                # 测试结果 JSON(运行时自动创建)
└── report/                 # HTML 报告(运行时自动创建)

环境要求

  • Python 3.8+
  • Ollama 已安装并启动
  • 已拉取至少一个模型,例如:ollama pull gemma2:2b

快速开始

# 1. 启动 Ollama(如未启动)
ollama serve
# 或直接运行 ollama(Windows 桌面版一般自启)

# 2. 拉取模型(任选其一,或使用已拉取的模型)
ollama pull deepseek-r1:latest   # 约 5GB,轻量

# 3. 安装依赖
pip install -r requirements.txt

# 4. 启动应用
python run.py

然后浏览器打开 http://localhost:8000。

注意:如果前端下拉框显示"未找到已拉取的模型",请确认 Ollama 服务已启动, 刷新页面即可重新加载模型列表。

使用说明

  1. 选择测试用例("推荐组合"勾选快速用例,耗时用例用于压力测试)
  2. 选择模型(自动从本地 Ollama 拉取已安装模型)
  3. 设置重复次数
  4. 点击"开始测试",观察实时进度
  5. 测试完成后自动展示:推理核心指标、延迟对比图表、详细数据表
  6. 可导出 CSV / JSON,或打开完整 HTML 报告

测试用例说明

用例 难度 说明
纯文本生成基准 简单 基础生成速度基准测试
简单工具调用延迟 简单 结构化工具输出的调用延迟
文件读取+分析 中等 文件读取与分析完整链路
并行工具调用 中等 串行 vs 并行请求的加速比
长上下文处理 耗时 500~4000 token 下 prefill 延迟变化
复杂推理任务 耗时 不同推理复杂度的延迟对比
多轮对话累积 耗时 上下文累积对延迟的影响

测量指标说明

指标 来源
TTFT (首 Token 延迟) 发起请求到首个生成 token 返回的时间
Prefill Time Ollama 返回的 prompt_eval_duration(prompt 预填充耗时)
Decode Speed eval_count / eval_duration(生成速度 tokens/s)
E2E 请求到完整回复的总耗时

配置(可选)

通过环境变量覆盖默认配置:

变量 默认值 说明
OLLAMA_BASE_URL http://localhost:11434 Ollama 服务地址
DEFAULT_MODEL qwen3.6:35b-a3b 默认模型
SPEED_TEST_PORT 8000 Web 服务端口

API 一览

方法 路径 说明
GET /api/models 本地已拉取的模型列表
GET /api/cases 用例注册表
POST /api/run 开始测试(后台线程执行),body: {cases, repeats, model, skip_heavy}
GET /api/status 当前运行进度
POST /api/stop 停止当前测试
GET /api/results/latest.json 最近一次测试结果
GET /report.html 完整 HTML 报告