Spaces:
Runtime error
Runtime error
File size: 13,185 Bytes
8918ac7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 |
# 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. **结果解读与决策**
- 根据评估结果,判断模型性能是否满足需求
- 如果性能不理想,考虑调整训练参数或使用不同的模型架构 |