llm_perf_test/README.md

166 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LLM 性能测试工具
一个用于本地和云端大模型性能测试的网页应用,兼容 OpenAI API 格式。
## 功能特性
- **API 配置管理**: 支持配置多个 LLM API 端点(如 Ollama、OpenAI、Azure 等)
- **模型配置**: 设置模型名称、温度、最大 token 数等参数
- **测试用例管理**: 创建、编辑、删除自定义测试用例
- **性能测试**:
- 支持串行和并发测试
- 可配置迭代次数
- 支持流式和非流式模式
- **性能指标**:
- **TTFT** (Time To First Token): 首 token 响应时间(毫秒)
- **TPS** (Tokens Per Second): 每秒生成 token 数
- 总响应时间
- 输入/输出 token 数量
- **可视化图表**: 使用 Chart.js 生成直观的性能对比图表
- **历史记录**: 保存测试结果,支持查看和对比
## 快速开始
### 1. 克隆仓库
```bash
git clone http://47.253.94.217:3000/zxu/llm_perf_test.git
cd llm_perf_test
```
### 2. 安装依赖
```bash
# Python 3.7+
pip install -r requirements.txt
# Python 3.6
pip install flask==1.1.4 requests==2.27.1
```
### 3. 运行应用
```bash
python3 app.py
```
应用将在 http://localhost:8001 启动
### 4. 一键部署
```bash
chmod +x deploy.sh
./deploy.sh
```
部署脚本会:
- 安装依赖
- 创建 systemd 服务
- 启动并启用服务
- 部署到 8001 端口
## 使用方法
### 配置 API
1. 打开网页界面 http://localhost:8001
2. 在"API 配置"标签页中设置:
- API Base URL: 如 `http://localhost:11434/v1` (Ollama)
- API Key: 如果需要身份验证
- 模型名称: 如 `qwen2.5:latest`
3. 点击"验证连接"测试配置是否正确
### 管理测试用例
在"测试用例"标签页中:
- 添加新的测试用例(名称、提示词、期望长度)
- 编辑现有测试用例
- 删除不需要的测试用例
- 选择要运行的测试用例
### 运行测试
在"性能测试"标签页中:
1. 选择测试用例
2. 配置测试参数:
- 迭代次数:每个测试用例运行多少次
- 并发数:同时运行的请求数
- 流式模式:是否使用流式 API 调用
3. 点击"开始测试"
4. 等待测试完成,查看结果
### 查看结果
- 实时查看 TTFT、TPS 等指标
- 查看成功率统计
- 导出详细的测试报告
- 在历史记录中对比不同测试结果
## API 兼容性
本工具兼容以下 LLM API 格式:
- **Ollama**: `http://localhost:11434/v1`
- **OpenAI**: `https://api.openai.com/v1`
- **Azure OpenAI**: `https://{resource}.openai.azure.com/openai/deployments/{deployment}`
- **其他兼容 OpenAI API 的服务**
## 性能指标说明
| 指标 | 说明 | 单位 |
|------|------|------|
| TTFT | Time To First Token从发送请求到收到第一个 token 的时间 | 毫秒 (ms) |
| TPS | Tokens Per Second模型生成 token 的速度 | tokens/秒 |
| Total Time | 完整请求的响应时间 | 秒 (s) |
| Success Rate | 成功请求的比例 | % |
## 文件结构
```
llm_perf_test/
├── app.py # Flask 应用主程序
├── deploy.sh # 部署脚本
├── requirements.txt # Python 依赖
├── README.md # 使用说明
├── templates/
│ └── index.html # 前端页面
└── data/ # 数据存储目录
├── config.json # API 配置
├── test_cases.json # 测试用例
└── results.json # 测试结果
```
## 系统要求
- Python 3.6+
- 内存: 至少 512MB
- 磁盘: 至少 100MB 可用空间
## 服务管理
```bash
# 查看状态
sudo systemctl status llm_perf_test
# 查看日志
sudo journalctl -u llm_perf_test -f
# 停止服务
sudo systemctl stop llm_perf_test
# 重启服务
sudo systemctl restart llm_perf_test
# 禁用开机启动
sudo systemctl disable llm_perf_test
```
## 访问地址
- 本地: http://localhost:8001
- 局域网: http://<服务器IP>:8001
## 许可证
MIT License