框架介绍#
简介#
agi-eval 是一个基于插件化架构的大语言模型(LLM)评测框架,旨在提供灵活、可扩展的评测平台。该框架支持多种评测场景、模型接入方式和评测指标,采用模块化设计,便于开发者根据需求定制和扩展功能。
核心特性#
🔧 插件化架构#
- 可扩展设计: 支持自定义数据处理、模型推理、指标计算和报告生成插件
- 模块化组件: 每个功能模块都可以独立开发和替换
- 标准化接口: 统一的插件接口规范,便于第三方扩展
🚀 多种运行模式#
- 单机模式: 适用于调试和小规模评测
- 数据并行: 支持多进程并行处理,提升大规模评测效率
- 灵活调度: 可根据资源情况动态调整并发数
⚙️ 灵活配置#
- 模板化配置: 支持配置模板,便于批量数据集评测
- 动态参数: 支持运行时参数传递和覆盖
- 多层配置: 全局参数、插件参数分层管理
📊 可视化报告#
- Web界面: 提供直观的评测结果展示
- 多维度分析: 支持指标统计、详情查看、参数对比
核心组件#
调度中心 (DispatchCenter)#
调度中心负责评测任务的分发和执行管理,多个并行的Runner任务执行器基于进程间共享的任务队列获取任务并执行。
主要职责:
- 任务调度: 负责评测任务的分发和执行管理
- 资源管理: 管理计算资源和并发控制
插件系统 (Plugin System)#
插件系统是框架的核心,采用插件化设计,支持灵活扩展。
主要功能:
- 插件注册: 自动发现和注册插件
- 生命周期管理: 管理插件的初始化、执行和清理
- 参数传递: 处理插件间的参数传递和上下文共享
配置管理 (Config Manager)#
配置管理模块负责解析和验证配置文件,处理多层配置的合并和覆盖。
主要功能:
- 配置解析: 解析和验证配置文件
- 参数合并: 处理多层配置的合并和覆盖
- 模板渲染: 支持配置模板的动态渲染
框架结构#
Bash
agieval/
├── cli/ # 命令行接口
├── common/ # 公共工具和组件
├── core/ # 核心框架代码
│ ├── plugin/ # 插件系统核心
│ └── run/ # 运行调度系统
├── entity/ # 数据实体和配置定义
├── plugin/ # 插件实现
└── visualization/ # 可视化报告
下一步#
请查看以下文档了解各模块的详细信息: