Spaces:
Runtime error
Runtime error
# VenusFactory 评估模块使用指南 | |
## 1. 简介 | |
VenusFactory 评估模块是一个强大的工具,允许您对训练好的蛋白质分析模型进行全面性能评估。通过该模块,您可以在各种数据集上测试模型的预测能力,获取详细的评估指标,并分析模型的优缺点。评估结果可以帮助您比较不同模型的性能,选择最适合特定任务的模型,以及指导进一步的模型改进。 | |
评估模块支持评估多种模型的微调方案,您可以使用预定义的数据集或自定义数据集进行评估,并选择多种评估指标来全面了解模型性能。 | |
## 2. 支持的评估指标 | |
VenusFactory 提供多种评估指标,用于评估模型性能。根据问题类型的不同,适用的评估指标也有所不同。 | |
| 简称 | 指标名称 | 适用问题类型 | 说明 | 优化方向 | | |
|---------|------|------------|------|---------| | |
| **Accuracy** | 准确率 (Accuracy) | 单标签/多标签分类 | 正确预测的样本比例,适用于平衡的数据集 | 越大越好 | | |
| **Recall** | 召回率 (Recall) | 单标签/多标签分类 | 正确识别出的正类比例,关注减少假阴性 | 越大越好 | | |
| **Precision** | 精确率 (Precision) | 单标签/多标签分类 | 正确预测为正类的比例,关注减少假阳性 | 越大越好 | | |
| **F1** | F1分数 (F1Score) | 单标签/多标签分类 | 精确率和召回率的调和平均,适用于不平衡的数据集 | 越大越好 | | |
| **MCC** | Matthews相关系数 (MatthewsCorrCoef) | 单标签/多标签分类 | 综合考虑所有混淆矩阵元素的指标,对不平衡数据集更公平 | 越大越好 | | |
| **AUROC** | ROC曲线下面积 (AUROC) | 单标签/多标签分类 | 评估不同阈值下的分类性能 | 越大越好 | | |
| **F1_max** | 最大F1分数 (F1ScoreMax) | 多标签分类 | 不同阈值下的最大F1值,适用于多标签分类 | 越大越好 | | |
| **Spearman_corr** | Spearman相关系数 (SpearmanCorrCoef) | 回归 | 评估预测值与真实值的单调关系,范围为[-1,1] | 越大越好 | | |
| **MSE** | 均方误差 (MeanSquaredError) | 回归 | 评估回归模型的预测误差 | 越小越好 | | |
## 3. 评估界面详解 | |
评估界面分为几个主要部分,每个部分包含特定的配置选项。下面将详细介绍每个部分的功能和设置。 | |
 | |
### 3.1 模型和数据集配置 | |
#### 模型路径和蛋白质语言模型选择 | |
- **Model Path**:输入训练好的模型文件路径 | |
- 通常是训练过程中保存的模型文件(如 `ckpt/model.pt`) | |
- 可以是相对路径或绝对路径 | |
- 确保路径正确,否则评估将无法正确启动 | |
- **Protein Language Model**:从下拉菜单中选择一个预训练模型 | |
- 必须与训练模型时使用的预训练模型相同 | |
- 这将确保模型架构的一致性 | |
#### 评估方法和池化方法 | |
- **Evaluation Method**:根据模型架构选择方法 | |
- `freeze`:冻结预训练模型,只训练分类器 | |
- `full`:全参数微调,训练所有参数 | |
- `plm-lora`:使用LoRA (Low-Rank Adaptation)方法训练,减少参数量 | |
- `dora`:使用DoRA (Weight-Decomposed Low-Rank Adaptation)方法训练 | |
- `adalora`:使用AdaLoRA (Adaptive Low-Rank Adaptation)方法训练 | |
- `ia3`:使用IA³ (Infused Adapter by Inhibiting and Amplifying Inner Activations)方法训练 | |
- `plm-qlora`:使用QLoRA (Quantized Low-Rank Adaptation)方法训练,降低内存需求 | |
- `ses-adapter`:使用结构增强适配器训练,融合序列和结构信息 | |
- **必须与训练模型时使用的方法相同,否则将导致评估失败** | |
- **Pooling Method**:选择池化方法 | |
- `mean`:平均池化 | |
- 计算所有token表示的平均值 | |
- 计算效率高,适合大多数任务 | |
- `attention1d`:注意力池化 | |
- 使用注意力机制加权平均token表示 | |
- 可能提供更好的性能,但计算成本更高 | |
- `light_attention`:轻量级注意力池化 | |
- 注意力池化的简化版本 | |
- 平衡性能和计算效率 | |
- **必须与训练模型时使用的方法相同** | |
#### 数据集选择 | |
- **Dataset Selection**:选择数据集来源 | |
- **Use Pre-defined Dataset**:使用系统预定义的数据集 | |
- **Evaluation Dataset**:从下拉菜单中选择一个数据集 | |
- 系统会自动加载数据集的问题类型、标签数量和评估指标 | |
- 适合快速评估和标准基准测试 | |
- **Use Custom Dataset**:使用自定义数据集 (具体详见训练模块使用指南中 `7.4 上传数据集到Hugging Fac` 部分) | |
- **Custom Dataset Path**:输入Hugging Face数据集路径(格式:`用户名/数据集名`) | |
- 需要手动设置问题类型、标签数量和评估指标 | |
- 适合评估模型在自定数据上的性能 | |
#### 数据集预览 | |
- **Preview Dataset**:点击此按钮预览所选数据集 | |
- 显示数据集统计信息:训练集、验证集和测试集的样本数量 | |
- 显示数据集样例:包括序列和标签 | |
- 帮助验证数据集是否正确加载 | |
- 可以查看数据格式和内容,确保与模型兼容 | |
#### 问题类型和标签 | |
- **Problem Type**:选择问题类型 | |
- `single_label_classification`:单标签分类问题 | |
- 每个样本只属于一个类别 | |
- 标签通常是整数值,表示类别索引 | |
- `multi_label_classification`:多标签分类问题 | |
- 每个样本可能属于多个类别 | |
- 标签通常是以逗号分隔的类别索引字符串 | |
- `regression`:回归问题 | |
- 预测连续值 | |
- 标签通常是浮点数 | |
- **必须与训练模型时使用的问题类型相同** | |
- **Number of Labels**:设置标签数量(分类问题) | |
- 对于单标签分类,表示类别总数 | |
- 对于多标签分类,表示可能的标签总数 | |
- 对于回归问题,设为1 | |
- **必须与模型训练时使用的标签数量相同** | |
#### 评估指标 | |
- **Metrics**:选择评估指标 | |
- 可以选择多个指标 | |
- 常用指标包括:`Accuracy,MCC,F1,Precision,Recall,AUROC,F1max,Spearman_corr,MSE` | |
- 根据问题类型选择合适的指标: | |
- 分类问题:`Accuracy,MCC,F1,Precision,Recall,AUROC` | |
- 回归问题:`MSE,Spearman_corr` | |
- 选择多个指标可以全面评估模型性能 | |
### 3.2 结构序列配置(仅适用于ses-adapter方法) | |
- **Structure Sequence**:选择结构序列类型 | |
- `foldseek_seq`:使用FoldSeek生成的结构序列 | |
- 基于蛋白质三维结构生成的序列表示 | |
- 包含结构信息的编码 | |
- `ss8_seq`:使用8类二级结构序列 | |
- 表示蛋白质的二级结构元素(如α螺旋、β折叠等) | |
- 提供蛋白质局部结构信息 | |
- 可以同时选择多种类型,增强结构信息的表示 | |
- **必须与训练模型时使用的结构序列类型相同** | |
### 3.3 批处理配置 | |
- **Batch Processing Mode**:选择批处理模式 | |
- **Batch Size Mode**:固定批次大小 | |
- **Batch Size**:设置每批处理的样本数量,默认为16 | |
- 适合序列长度相近的数据集 | |
- 较大的批次可以加速评估,但需要更多内存 | |
- **Batch Token Mode**:固定Token数量 | |
- **Tokens per Batch**:设置每批处理的Token数量,默认为10000 | |
- 适用于序列长度变化大的数据集 | |
- 自动调整每批的样本数量,确保Token总数接近设定值 | |
- 有助于优化内存使用和处理效率 | |
### 3.4 评估控制和输出 | |
- **Preview Command**:预览将要执行的评估命令 | |
- 点击后显示完整的命令行参数 | |
- 可以帮助您理解评估过程中使用的具体参数 | |
- 用于验证所有设置是否正确 | |
- **Start Evaluation**:开始评估过程 | |
- 点击后启动模型评估 | |
- 评估过程中会显示进度条和状态信息 | |
- **Abort**:中止当前评估过程 | |
- 可以随时停止正在进行的评估 | |
- 适用于评估时间过长或发现设置错误的情况 | |
- **Evaluation Status & Results**:显示评估进度和结果 | |
- 评估进度:当前阶段、进度百分比、已用时间、处理的样本数量 | |
- 评估结果:各项评估指标及其值 | |
- 以表格形式展示,清晰直观 | |
- **Download CSV**:下载CSV格式的详细评估指标 | |
- 评估完成后可见 | |
- 包含所有计算的评估指标 | |
- 可用于进一步分析或与其他模型结果比较 | |
## 4. 评估流程指南 | |
以下是使用VenusFactory评估模块的完整流程指南,从模型准备到结果分析。 | |
### 4.1 准备模型和数据集 | |
1. **准备训练好的模型文件** | |
- 确保您已经有一个通过训练模块生成的模型文件(如 `ckpt/model.pt`) | |
- 记录训练时使用的预训练模型、训练方法和池化方法 | |
- 确保模型文件路径可访问 | |
2. **选择评估数据集** | |
- 可以使用与训练相同的数据集,评估模型在测试集上的性能 | |
- 也可以使用新的数据集,评估模型的泛化能力 | |
- 确保数据集格式与训练数据集兼容 | |
### 4.2 配置评估参数 | |
1. **设置模型和预训练模型** | |
- 在**Model Path**中输入模型文件的路径 | |
- 在**Protein Language Model**下拉菜单中选择与训练时相同的预训练模型 | |
- 确保两者匹配,否则可能导致架构不兼容 | |
2. **选择评估方法和池化方法** | |
- 在**Evaluation Method**中选择与训练时相同的方法 | |
- 在**Pooling Method**中选择与训练时相同的池化方法 | |
- 这些设置必须与训练时一致,以确保正确加载模型权重 | |
3. **选择数据集** | |
- 如果使用预定义数据集: | |
- 选择**Use Pre-defined Dataset** | |
- 从下拉菜单中选择一个数据集 | |
- 系统会自动加载相关配置 | |
- 如果使用自定义数据集: | |
- 选择**Use Custom Dataset** | |
- 输入Hugging Face数据集路径(格式:`用户名/数据集名`) | |
- 手动设置问题类型、标签数量和评估指标 | |
4. **预览数据集** | |
- 点击**Preview Dataset**按钮查看数据集统计和样例 | |
- 确认数据集格式是否正确 | |
- 查看样本数量和分布 | |
- 验证标签格式是否与问题类型匹配 | |
5. **设置问题类型和标签** | |
- 设置与训练时相同的**Problem Type** | |
- 设置与训练时相同的**Number of Labels** | |
- 这些设置必须与训练时一致,以确保模型输出层兼容 | |
6. **选择评估指标** | |
- 在**Metrics**中输入评估指标,用逗号分隔 | |
- 分类问题:建议使用`accuracy,mcc,f1,precision,recall,auroc` | |
- 回归问题:建议使用`mse,spearman_corr` | |
- 选择多个指标可以全面评估模型性能 | |
7. **配置结构序列(如适用)** | |
- 如果使用`ses-adapter`方法,选择与训练时相同的**Structure Sequence**类型 | |
- 可以选择`foldseek_seq`、`ss8_seq`或两者都选 | |
- 确保数据集中包含相应的结构序列字段 | |
8. **设置批处理参数** | |
- 选择**Batch Processing Mode**: | |
- **Batch Size Mode**:适合序列长度相近的数据集 | |
- **Batch Token Mode**:适合序列长度变化大的数据集 | |
- 设置批次大小或令牌数量 | |
- 较大的批次可以加速评估,但需要更多内存 | |
- 如果遇到内存不足错误,尝试减小批次大小 | |
### 4.3 预览和执行评估 | |
1. **预览评估命令** | |
- 点击**Preview Command**按钮查看评估命令 | |
- 检查所有参数是否正确设置 | |
- 确认命令中包含所有必要的参数 | |
- 这一步有助于发现潜在的配置错误 | |
2. **开始评估** | |
- 点击**Start Evaluation**按钮开始评估 | |
- 观察评估进度条,了解当前进度 | |
- 评估过程中可以查看已处理的样本数量和已用时间 | |
- 根据数据集大小和模型复杂度,评估可能需要几分钟到几小时不等 | |
3. **监控评估过程** | |
- 观察进度条和状态信息 | |
- 如果评估速度过慢,可以考虑增大批次大小 | |
- 如果遇到内存错误,可以减小批次大小 | |
4. **中止评估(如需要)** | |
- 如遇到错误或输入错误参数需中止评估,点击**Abort**按钮 | |
### 4.4 分析评估结果 | |
1. **查看评估指标** | |
- 评估完成后,查看评估指标表格 | |
- 对于分类问题,关注`Accuracy`、`F1`、`Precision`、`Recall`、`MCC`等指标 | |
- 对于回归问题,关注`MSE`、`Spearman_corr`等指标 | |
- 分析各项指标,了解模型的优势和不足 | |
2. **下载详细结果** | |
- 点击**Download CSV**按钮下载详细评估结果 | |
- CSV文件包含所有计算的评估指标 | |
- 可以导入到Excel或其他工具中进行进一步分析 | |
- 便于与其他模型的结果进行比较 | |
3. **结果解读与决策** | |
- 根据评估结果,判断模型性能是否满足需求 | |
- 如果性能不理想,考虑调整训练参数或使用不同的模型架构 |