LiveSecBench 是一个面向中文场景的大模型安全评测基准。框架结合动态题库、模型对战与客观评分流程,可在伦理、合法性、事实性、隐私、对抗鲁棒与推理安全等核心维度持续追踪模型表现。完整方法论请参见论文 LiveSecBench: A Dynamic and Culturally-Relevant AI Safety Benchmark for LLMs in Chinese Context。
欢迎扫码加入 LiveSecBench 微信交流群,获取最新评测动态与技术讨论:
- 真实语境:题库覆盖多种中文安全场景,区分显性与隐性风险表达。
- 对战式评分:ELO 流程支持瑞士制 / 循环 / 随机配对,可选收敛检测提前停止。
- 任务溯源:评测任务、模型输出与 PK 结果统一落盘到 SQLite/MySQL,便于复现与审计。
- 自动报告:生成排行榜、统计摘要与 Markdown 报告。
- 离线演示:Mock 脚本可在无 API Key 环境模拟完整流程,快速验证配置。
- 🚀 新特性:并发分组执行 - 支持并行/串行混合策略,大幅提升评测效率
- 🚀 新特性:实时数据保存 - 每完成一次请求立即写入数据库,支持断点续传
- 🚀 新特性:图片输入支持 - 支持 URL 和 base64 格式图片输入,支持多图片
- 🚀 新特性:MySQL 存储 - 可选 MySQL 存储,解决高并发写入性能问题
- 🚀 新特性:文生图评测 - 支持 文生图 API
- 🚀 新特性:流式接口适配 - 支持对
stream=true响应自动聚合,兼容 SSE 分片返回 - 🚀 新特性:上下文超限自动回退 - 判别模型遇到 400 上下文超限时可自动切换 fallback 裁判模型
- 🚀 新特性:PK 执行优化 - 自动跳过相同回答对战,并优先使用题库
reference_answer作为裁判参考答案
- Python 3.10+
- 8GB RAM / 10GB 磁盘空间
- 建议使用
conda create -n livesecbench python=3.10 && conda activate livesecbench
git clone https://github.com/ydli-ai/LiveSecBench.git
cd LiveSecBench
python -m pip install -e .export OPENAI_API_KEY="your_openai_key"
export DEEPSEEK_API_KEY="your_deepseek_key"编辑配置文件 livesecbench/configs/run_custom_safety_benchmark.yaml:
-
配置待评测模型:在
models_to_test中修改模型列表为实际模型,确保:api_config.api_key使用env_var:YOUR_API_KEY格式与环境变量匹配api_config.base_url和model_id设置为正确的 API 端点api_config.end_point指定具体请求路由(默认/chat/completions)image_text_input为true时表示该模型支持图文混合输入
-
配置判别模型:在
judge_model_api中设置实际判别模型,确保:api_key使用env_var:YOUR_JUDGE_API_KEY格式与环境变量匹配base_url和model设置为正确的判别模型 API 信息
示例配置:
models_to_test:
- model_name: "Your Model"
image_text_input: false
api_config:
base_url: "https://api.example.com/v1"
end_point: "/chat/completions"
api_key: "env_var:OPENAI_API_KEY" # 对应环境变量
model_id: "gpt-4"
judge_model_api:
base_url: "https://api.deepseek.com/v1"
api_key: "env_var:DEEPSEEK_API_KEY" # 对应环境变量
model: "deepseek-chat"
max_tokens: 163840
provider_ignore: [] # 可选:屏蔽特定 provider 路由
fallback: # 可选:上下文超限时自动回退
base_url: "https://openrouter.ai/api/v1"
api_key: "env_var:OPENROUTER_API_KEY"
model: "google/gemini-2.5-flash"
max_tokens: 1048576
provider_ignore: []python livesecbench/run_livesecbench.py --config livesecbench/configs/run_custom_safety_benchmark.yamlpython -m pip install -e .[test]
pytest -v
pytest -k config_manager -v # 仅验证配置解析等模块python scripts/run_mock_e2e.py脚本会加载 livesecbench/configs/mock_e2e.yaml,Mock 所有 HTTP 请求,并把演示数据写入 mock_results/、mock_history/、mock_records/ 以及 data/mock_e2e.db。
- 主配置位于
livesecbench/configs/run_custom_safety_benchmark.yaml。 - 在
models_to_test中为每个模型配置 API 信息(base_url、api_key、model_id、可选provider_ignore),均支持env_var:引用环境变量。 question_selection可混合多个维度、版本或样本数量限制。scoring_settings.model_based.elo控制配对策略、收敛检测、输出目录等参数。judge_model_api指定裁判模型,默认deepseek-chat。judge_model_api.max_tokens默认163840,可按模型上下文窗口调整;当主裁判模型返回 400 上下文超限时,可通过judge_model_api.fallback自动切换到大上下文模型。models_to_test[].api_config.stream可开启流式响应,框架会自动聚合分片并保持统一输出格式。api_call_settings.concurrency_groups支持并发分组配置,可按照并行/串行混合策略。storage支持 SQLite 或 MySQL 切换,推荐在高并发场景使用 MySQL。api_call_settings支持 RPM/TPM/并发限制配置,精细化控制 API 调用速率。- 文生图:在
models_to_test中为文生图模型设置task_type: text_to_image和api_config.api_provider(siliconflow/sd_webui/comfyui),在question_selection中增加dimension: text_to_image与题集text_to_image;生成图落盘到artifacts/{task_id}/{model_id}/{question_id}/,并通过image_postprocess.captioner转成文字描述供裁判评分。 - 详尽说明与最佳实践请参见
docs/USER_GUIDE.md。
results/{日期}/{月份}-models*.csv:各维度综合得分与排名{月份}-stats*.csv:评测统计摘要elo_results/{维度}/:维度级 ELO 历史与 PK 详情(含 Excel)summary_report*.md:自动生成的评测报告
data/livesecbench.dbmodel_outputs:模型回答记录pk_results:模型对战结果evaluation_tasks:任务元信息
- 在线榜单:https://livesecbench.intokentech.cn/
- 用户指南 - 详细的使用说明和配置指南
- 架构文档 - 系统架构和设计理念
- API 文档 - 完整的 API 参考
- 使用示例 - 代码示例与最佳实践
- 变更记录 - 版本更新历史
- 贡献指南 - 如何参与项目贡献
- 论文与技术报告:https://arxiv.org/abs/2511.02366
LiveSecBench/
├── livesecbench/
│ ├── core/
│ │ ├── run_model_answer.py # 拉取模型回复
│ │ ├── run_scoring.py # ELO 评分编排
│ │ ├── rank.py # 排名聚合
│ │ ├── report.py # Markdown 报告生成
│ │ └── task_manager.py # 任务生命周期
│ ├── infra/
│ │ ├── config/ # ConfigManager、schema 校验
│ │ ├── storage/ # SQLiteStorage、缓存接口
│ │ ├── scoring/ # 配对策略、收敛检测
│ │ ├── batch_processor.py # 批量调度
│ │ ├── cache_manager.py # 输出缓存
│ │ └── http_client.py # 带重试/限流的 HTTP 客户端
│ ├── scorers/
│ │ └── model_based_scorer.py # 基于裁判模型的评分逻辑
│ ├── question_set/ # 题库 JSON/CSV
│ ├── configs/ # 运行配置样例(含自定义基准)
│ ├── utils/ # 日志、环境变量加载等
│ └── run_livesecbench.py # CLI 入口
├── docs/ # 用户指南、架构、API 文档
├── scripts/
│ └── run_mock_e2e.py # Mock 端到端脚本
├── tests/ # pytest 用例
├── data/ # SQLite 数据库
└── results/ # 评测输出(按日期归档)
@article{livesecbench,
title={LiveSecBench: A Dynamic and Culturally-Relevant AI Safety Benchmark for LLMs in Chinese Context},
author={Yudong Li, Zhongliang Yang, Kejiang Chen, Wenxuan Wang, Tianxin Zhang, Sifang Wan, Kecheng Wang, Haitian Li, Xu Wang, Lefan Cheng, Youdan Yang, Baocheng Chen, Ziyu Liu, Yufei Sun, Liyan Wu, Wenya Wen, Xingchi Gu, Peiru Yang},
year={2025},
}