VenusFactory / src /web /manual /EvaluationManual_ZH.md
2dogey's picture
Upload folder using huggingface_hub
8918ac7 verified
# 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. 评估界面详解
评估界面分为几个主要部分,每个部分包含特定的配置选项。下面将详细介绍每个部分的功能和设置。
![Model_Dataset_Config](/img/Eval/Model_Dataset_Config.png)
### 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. **结果解读与决策**
- 根据评估结果,判断模型性能是否满足需求
- 如果性能不理想,考虑调整训练参数或使用不同的模型架构