ModelSelect: A Unified Framework for Holistic Evaluation and Quality Reward
Project description
模型智选,评测先行:让 AI 选型更简单
🌟 If you find ModelSelect helpful, please give us a Star! 🌟
ModelSelect (模选) 是一个开源的 AI 模型评测框架,专为AI 应用(如 AI 智能体、聊天机器人、大语言模型)的质量评估和持续优化而设计。
在实践中,卓越的应用取决于可信赖的评测工作流:收集测试数据 → 定义评分标准 → 规模化运行评测 → 分析薄弱环节 → 快速迭代优化。
ModelSelect 提供开箱即用的评分器(Grader),并支持生成场景特定的评分标准,使这一工作流更简单、更专业、易于集成到您的工作流中。同时,它还能将评分结果转换为奖励信号,帮助您微调和优化应用。
📑 Table of Contents
✨ Key Features
📦 系统化且质量保障的 Grader 库
访问 50+ 生产级评分器,涵盖全面的分类体系,经过严格验证确保可靠性能。
🎯 通用能力聚焦: 语义质量、功能正确性、结构合规性 核心评分器:
|
🤖 智能体评估聚焦: 智能体生命周期、工具调用、记忆、计划可行性、轨迹质量 核心评分器:
|
🖼️ 多模态评估聚焦: 图文一致性、视觉生成质量、图像有用性 核心评分器:
|
- 🌐 多场景覆盖: 广泛支持 Agent、文本、代码、数学和多模态任务等多种领域
- 🔄 ** holistic 智能体评估:** 不仅评估最终结果,还评估整个生命周期——包括轨迹、记忆、反思和工具使用
- ✅ 质量保证: 每个评分器都附带基准数据集和 pytest 集成验证
🛠️ 灵活的评分器构建方式
选择适合您需求的构建方式:
- 定制化: 需求明确但没有现成评分器?如果有明确的规则或逻辑,使用 Python 接口或 Prompt 模板快速定义自己的评分器
- 零样本评分标准生成: 不确定使用什么标准,且没有标注数据?只需提供任务描述和可选的示例查询——LLM 将自动生成评估评分标准
- 数据驱动的评分标准生成: 需求模糊,但有一些示例?使用 GraderGenerator 从标注数据中自动总结评估评分标准,并生成基于 LLM 的评分器
- 训练评判模型: 数据量大且需要最佳性能?使用我们的训练流程训练专用的评判模型
🌐 SaaS API 服务
ModelSelect 提供完整的 SaaS API 服务,支持:
- ✅ 多租户管理: 支持多租户隔离,每个租户独立配置
- ✅ 用户管理: 完整的用户认证、授权和权限管理
- ✅ 评估任务: 创建、管理和执行 AI 应用评估任务
- ✅ 场景评估: 无需上传数据集,直接评估单个 query-response 对
- ✅ API Key 管理: 支持 API Key 创建和管理
- ✅ 结果分析: 评估结果的存储、查询和统计分析
News
- 2025-01-29 - ModelSelect v0.3.0 发布 - 全新品牌升级!从 OpenJudge 分支并扩展更多模型评测能力,新增 SaaS API 服务和多租户支持
📥 Installation
pip install ms-modelselect
安装 SaaS 服务依赖:
pip install "ms-modelselect[saas]"
🚀 Quickstart
简单示例
评估单个响应的简单示例:
import asyncio
from modelselect.models import OpenAIChatModel
from modelselect.graders.common.relevance import RelevanceGrader
async def main():
# 1️⃣ 创建模型客户端
model = OpenAIChatModel(model="qwen3-32b")
# 2️⃣ 初始化评分器
grader = RelevanceGrader(model=model)
# 3️⃣ 准备数据
data = {
"query": "What is machine learning?",
"response": "Machine learning is a subset of AI that enables computers to learn from data.",
}
# 4️⃣ 评估
result = await grader.aevaluate(**data)
print(f"Score: {result.score}") # Score: 4
print(f"Reason: {result.reason}")
if __name__ == "__main__":
asyncio.run(main())
🌐 API Service
ModelSelect 提供完整的 SaaS API 服务,支持多租户、用户管理、评估任务管理和场景评估。
快速启动
# 使用 Docker Compose 启动所有服务
docker-compose up -d
API 端点
| 模块 | 端点 | 功能 |
|---|---|---|
| 认证 | POST /api/v1/auth/login |
用户登录 |
| 认证 | POST /api/v1/auth/register |
用户注册 |
| 用户 | GET /api/v1/users/me |
获取当前用户 |
| API Key | POST /api/v1/api-keys |
创建 API Key |
| 任务 | POST /api/v1/tasks |
创建评估任务 |
| 任务 | GET /api/v1/tasks |
获取任务列表 |
| 场景 | POST /api/v1/scenarios/evaluate |
场景评估 |
| 场景 | POST /api/v1/scenarios/batch-evaluate |
批量场景评估 |
更多 API 文档请访问:http://localhost:8000/docs
🤝 Contributing
我们欢迎各种形式的贡献!请查看我们的贡献指南。
📜 License
本项目基于 Apache 2.0 许可证开源。
ModelSelect Team - 让 AI 模型选型更简单 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ms_modelselect-0.2.0.tar.gz.
File metadata
- Download URL: ms_modelselect-0.2.0.tar.gz
- Upload date:
- Size: 386.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad85a695152240e6e4f1d21644d9ca39a043c4644f3580e5a7ce67ed278a777b
|
|
| MD5 |
064460f56fa4214debae60e62e3851b8
|
|
| BLAKE2b-256 |
2a64f5cadd64e7388cec31611f49364cbf2d03c643bc17cca5267110564d375c
|
File details
Details for the file ms_modelselect-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ms_modelselect-0.2.0-py3-none-any.whl
- Upload date:
- Size: 575.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2db7ffd69f2ebadb45837fdb0a6b61e2cab698282302fe40a52e2339cd16e644
|
|
| MD5 |
a6c48b867dd9e1b2c00fe363b995046c
|
|
| BLAKE2b-256 |
53c0962cbc0425263e625f7b98d8c6a477bb19e759f62b231df34b6c3367b302
|