使用 CLI-Anything-Uni-Mol-Tools 构建药物活性二分类模型:从数据准备、超参数调优到生产部署的完整实战指南
发布时间:2026/9/11 1:51:43来源:尧图网络
使用 CLI-Anything-Uni-Mol-Tools 构建药物活性二分类模型从数据准备、超参数调优到生产部署的完整实战指南【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything本篇技术指南以 Uni-Mol Tools 的 Agent 化 CLI 为工具完整演示如何基于 SMILES 分子结构训练活性/非活性二分类模型你将掌握分类数据的组织规范、项目创建与数据集绑定、基线训练与超参数调优、测试集评估与可视化、生产预测以及模型存储清理的全流程操作。全文以分类教程为骨架并结合本仓库源码CLI 入口、训练编排、后端适配、模型管理与存储清理模块讲解每条命令背后的实现原理确保每一步既可复制运行、又知其所以然。前置准备安装与环境配置在开始分类任务之前需要确保cli-anything-unimol-toolsCLI 已正确安装并且 Uni-Mol 预训练权重可被定位。完整的安装步骤可参考 安装指南核心要点如下系统要求操作系统Linux文档标注在 Ubuntu 20.04 上测试通过Python3.8 或更高CUDA11.8GPU 加速可选CPU 亦可运行但速度较慢磁盘空间约 2GBUni-Mol 模型权重约 1.5GB依赖约 500MB安装链路分两步克隆 Uni-Mol 官方仓库并安装其unimol_tools子包下载预训练权重约 1.5GB到unimol_tools/weights/目录克隆 CLI-Anything 仓库进入unimol_tools/agent-harness目录后执行pip install -e .安装cli-anything-unimol-tools命令。安装后需要配置权重目录环境变量CLI 依赖它定位分子编码所需的权重文件# 写入 shell 配置文件~/.bashrc 或 ~/.zshrc export UNIMOL_WEIGHT_DIR/path/to/Uni-Mol/unimol_tools/unimol_tools/weights # 验证 echo $UNIMOL_WEIGHT_DIR ls $UNIMOL_WEIGHT_DIR/*.pt从源码角度看权重目录的注入由 CLI 入口完成在 unimol_tools_cli.py 中--weight-dir-w选项会将其写入os.environ[UNIMOL_WEIGHT_DIR]二者等价因此你也可以在每次调用时用-w临时指定权重目录。验证安装cli-anything-unimol-tools --version cli-anything-unimol-tools --help安装成功后--help会列出全部命令组与 unimol_tools_cli.py 中的 Click 命令树一一对应命令作用主要子命令project项目管理new、info、set-datasettrain模型训练start、list、showpredict推理预测run、listmodels模型管理rank、history、best、comparestorage存储分析—cleanup模型清理--auto自动模式archive归档管理list、restore说明全局选项--json用于输出结构化 JSON方便 Agent 与脚本解析-p/--project指定项目文件路径。不指定子命令直接运行时会进入交互式 REPL 模式见 unimol_tools_cli.py。任务理解二分类目标与 CLI 架构Objective训练一个分类器预测分子对某个生物靶点是否具有活性——活性1或非活性0。这是药物发现中最典型的分子性质预测任务之一。你将学到准备分类数据CSV 格式、类别分布训练并调优分类器epochs、学习率、正则化评估模型性能AUC、Accuracy、Precision、Recall、F1部署模型进行生产预测新化合物批量打分时间成本约 30 分钟数据集规模10 条训练样本 4 条验证样本 4 条测试样本的迷你示例集用于走通全流程。从实现上看CLI 将任务类型硬编码为一组受支持的枚举。在 unimol_tools_cli.py 中project new的-t/--task选项仅接受classification二分类本教程主题regression回归multiclass多分类multilabel_classification多标签分类multilabel_regression多标签回归repr表示学习在 project.py 中任务类型还决定了项目默认的优化指标二分类使用auc多分类使用acc回归类任务使用mae。这意味着创建项目后无需手动指定指标系统会根据任务自动选择。Step 1准备并检查分类数据1.1 构造样本数据集CLI 的数据格式要求为 CSV第一列为SMILES分子结构表示第二列为label0 或 1。下面分别创建训练集、验证集和测试集。训练数据10 条cat drug_activity_train.csv EOF SMILES,label CC(C)Cc1ccc(cc1)C(C)C(O)O,1 CCN(CC)C(O)Cc1ccccc1,0 CC(C)NCC(COc1ccc(CCOCC(O)O)cc1)O,1 CC(C)(C)NCC(O)COc1ccccc1CCC,0 CCN(CC)C(O)c1ccccc1,1 CC(C)Cc1ccc(cc1)C(C)C,0 CCc1ccccc1NC(O)Cc1ccc(O)cc1,1 CC(C)NCC(O)c1ccc(O)c(CO)c1,0 CCN(CC)CCNC(O)c1cc(I)c(O)c(I)c1,1 CC(C)NCC(O)COc1cccc2c1cccc2,0 EOF验证数据4 条cat drug_activity_valid.csv EOF SMILES,label CC(C)Cc1ccc(cc1)C(C)C(O)O,1 CCN(CC)C(O)Cc1ccc(Cl)cc1,0 CC(C)NCC(COc1ccc(CC(C)C)cc1)O,1 CC(C)(C)NCC(O)COc1ccc(Cl)cc1,0 EOF测试数据4 条cat drug_activity_test.csv EOF SMILES,label CC(C)Cc1ccc(cc1)C(C)C(O)N,1 CCN(CC)C(O)Cc1ccc(F)cc1,0 CC(C)NCC(COc1ccc(Br)cc1)O,1 CC(C)(C)NCC(O)COc1ccc(I)cc1,0 EOF1.2 统计数据集训练前先掌握数据规模与类别分布便于判断是否存在样本量不足或类别失衡echo Dataset Statistics: echo Train: $(tail -n 2 drug_activity_train.csv | wc -l) molecules echo Valid: $(tail -n 2 drug_activity_valid.csv | wc -l) molecules echo Test: $(tail -n 2 drug_activity_test.csv | wc -l) molecules # Class distribution echo echo Train Class Distribution: tail -n 2 drug_activity_train.csv | cut -d, -f2 | sort | uniq -c预期输出为 Train: 10 molecules、Valid: 4 molecules、Test: 4 molecules且训练集中类别 0 与类别 1 各 5 条完全均衡。均衡的类别分布对二分类的 Accuracy 指标解读至关重要——在不均衡数据上 Accuracy 会失真这一点在后面的常见问题排查章节会再次提及。Step 2创建项目并绑定数据集2.1 创建分类项目# Create classification project cli-anything-unimol-tools project new \ -n drug_activity \ -t classification该命令在 project.py 中完成项目目录与配置的初始化。每个项目会获得独立的目录结构drug_activity/ ├── project.json # 项目配置文件含全部状态 ├── experiments/ # 训练运行的模型保存目录run_001/run_002/... ├── conformers/ # 3D 构象缓存 └── predictions/ # 预测结果输出2.2 绑定训练/验证/测试数据集PROJECTdrug_activity.json cli-anything-unimol-tools -p $PROJECT \ project set-dataset train drug_activity_train.csv cli-anything-unimol-tools -p $PROJECT \ project set-dataset valid drug_activity_valid.csv cli-anything-unimol-tools -p $PROJECT \ project set-dataset test drug_activity_test.csvset-dataset的底层实现在 project.py它会校验数据集类型仅允许train/valid/test与文件存在性并将路径保存为绝对路径写入project.json的datasets字段。2.3 验证项目配置cli-anything-unimol-tools -p $PROJECT project infoExpected Output Project: drug_activity ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Type: classification Created: 2024-01-15 10:30:00 Status: initialized Datasets: Train: drug_activity_train.csv (10 samples) Valid: drug_activity_valid.csv (4 samples) Test: drug_activity_test.csv (4 samples) Models: 0 runs Storage: 0B2.4 项目配置文件的默认参数创建项目时会写入一组带默认值的训练配置见 project.py。理解这些默认值是后续调优的基础配置键默认值含义taskclassification任务类型决定指标与损失model_nameunimolv1模型名称可选unimolv1/unimolv2model_sizeNonev1/84mv2 模型尺寸84m/164m/310m/570m/1.1Bepochs10训练轮数batch_size16批大小learning_rate1e-4学习率metricsauc优化指标由任务类型决定splitrandom数据划分方式kfold1交叉验证折数early_stopping20早停 patienceuse_gpuallGPU 使用策略none表示 CPUuse_ampFalse混合精度训练remove_hsFalse是否去除氢原子conf_cache_level1构象缓存级别这些默认值会随项目配置一路传递给 Uni-Mol 的训练后端见下文训练管线因此你可以直接编辑project.json调整任意参数也可以通过 CLI 开关覆盖其中一部分。Step 3训练基线模型3.1 首次训练# Train with default parameters cli-anything-unimol-tools -p $PROJECT train start \ --epochs 10 \ --batch-size 8训练过程中发生了什么为每条 SMILES 生成 3D 构象conformers用 Uni-Mol 编码分子获得分子表征训练二分类器在分子表征之上接分类头在验证集上评估输出 AUC 等指标Expected Output Starting training... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Run ID: run_001 Save path: models/run_001 [1/3] Processing conformers... ━━━━━━━━━━━━━━━━━━ 100% [2/3] Training... Epoch 1/10: loss0.693, auc0.550 Epoch 2/10: loss0.612, auc0.650 Epoch 3/10: loss0.523, auc0.750 ... Epoch 10/10: loss0.234, auc0.875 [3/3] Evaluating... ✓ Training complete! Metrics: AUC: 0.8750 Accuracy: 0.80 Precision: 0.83 Recall: 0.75 F1 Score: 0.79 Training time: 18.3s Model saved: models/run_001/3.2 底层调用链解析train start命令看似简单其背后是一条完整的三层调用链值得拆解CLI 层train start命令在 unimol_tools_cli.py 中接收--epochs/--batch-size/--lr/--gpus等选项将非None的覆盖值写入项目配置对象然后调用train_mod.run_training(proj)训练结束后把更新后的项目含新 run 记录保存回project.json。编排层run_training在 train.py 中生成run_id格式为run_001按运行次数递增确定保存路径项目目录/experiments/run_001合并训练配置并检查训练数据集是否已设置未设置会抛出Training dataset not set错误随后调用UniMolBackend().train(config)。后端适配层UniMolBackend.train在 unimol_backend.py 中实例化MolTrainUni-Mol 官方工具包的对象将项目配置映射为MolTrain的构造参数task、epochs、batch_size、learning_rate、early_stopping、metrics、split、kfold、remove_hs、conf_cache_level、target_normalize、use_cuda、use_ddp、use_amp、model_name等随后调用clf.fit(data...)完成训练。训练完成后后端会优先从 Uni-Mol 保存的metric.result文件中读取指标若存在否则回退使用fit()的返回值并将其中的 NumPy 类型转换为 JSON 可序列化的 Python 原生类型见_convert_metrics_to_json。整个运行还会记录训练耗时duration_sec供后续模型排名使用。3.3 查看训练结果cli-anything-unimol-tools -p $PROJECT models rankmodels rank调用 models_manager.py 中的rank_models对项目内全部 run 计算综合评分并按分数降序排列同时给出状态标签AUC 范围状态标签≥ 0.85 且评分 ≥ 8.5Best≥ 0.85Good≥ 0.75Ok≥ 0.65Weak 0.65PoorStep 4超参数调优基线模型10 epochs默认学习率在验证集上 AUC 达到 0.875已经可用。下一步通过调整超参数探索进一步提升空间。调优策略遵循先加轮数、再降学习率、最后加正则的经典顺序便于定位瓶颈。4.1 增加训练轮数cli-anything-unimol-tools -p $PROJECT train start \ --epochs 20 \ --batch-size 84.2 调整学习率在轮数加倍的基础上将学习率从默认的1e-4降到5e-5让权重更新更精细cli-anything-unimol-tools -p $PROJECT train start \ --epochs 20 \ --batch-size 8 \ --learning-rate 5e-54.3 加入正则化若仍存在过拟合迹象可在分类头上施加 dropoutcli-anything-unimol-tools -p $PROJECT train start \ --epochs 20 \ --batch-size 8 \ --learning-rate 5e-5 \ --dropout 0.1参数覆盖说明以当前仓库源码为准在上述命令中--epochs、--batch-size是 unimol_tools_cli.py 中train start直接暴露的开关--learning-rate与--dropout属于文档演示的调参形式当前版本 CLI 直接暴露的学习率开关为--lr而 dropout 等更细粒度的超参数不在 CLI 开关中需通过编辑项目文件drug_activity.json的config段传入后端。运行脚本化调参时建议优先使用--lr其余超参数直接修改配置文件。更完整的自动化网格搜索方案循环遍历 epochs/learning_rate/batch_size/dropout 组合并记录 AUC可参考 进阶教程 中的Batch Processing and Automation一节。4.4 对比各轮模型# View performance history cli-anything-unimol-tools -p $PROJECT models history # Rank all models cli-anything-unimol-tools -p $PROJECT models rankmodels history基于 models_manager.py 的get_model_history按时间线绘制每个 run 的 AUC 条形图并自动分析趋势improving/declining/stable与洞察最佳模型、最近一次性能回落告警。这是判断调参是否真的在起作用的最直观工具。Step 5模型评估5.1 自动选择最佳模型# Get best model BEST$(cli-anything-unimol-tools --json -p $PROJECT models rank | \ jq -r .models[0].run_id) echo Best model: $BEST这里用到了全局--json选项。从 unimol_tools_cli.py 可以看到JSON 模式下models rank输出{models: [...]}结构因此jq .models[0].run_id能取到排名第一的模型。这正是该 CLI 面向 Agent 与自动化脚本设计的体现。综合评分score0-10 分制的计算逻辑在 models_manager.py 的calculate_model_score中默认权重下主要由 AUC 决定auc * 10同时支持对训练时间越快越好与新鲜度24 小时内为满分的加权可在调用处调整权重系数。5.2 测试集推理# Run predictions on test set cli-anything-unimol-tools -p $PROJECT predict run $BEST \ drug_activity_test.csv -o test_predictions.csv # View predictions cat test_predictions.csvExpected OutputSMILES,prediction,probability CC(C)Cc1ccc(cc1)C(C)C(O)N,1,0.87 CCN(CC)C(O)Cc1ccc(F)cc1,0,0.23 CC(C)NCC(COc1ccc(Br)cc1)O,1,0.91 CC(C)(C)NCC(O)COc1ccc(I)cc1,0,0.15预测输出包含三列SMILES分子、prediction二分类决策 0/1、probability活性概率用于计算 AUC 与置信度判断。predict run的编排实现在 predict.py它先按run_id定位已训练模型目录再调用后端UniMolBackend.predict。后端在 unimol_backend.py 中通过MolPredict(load_model...)加载模型并对输入数据打分最终将结果写入用户指定的-o路径。5.3 计算测试集指标将真实标签与预测结果合并使用 scikit-learn 计算完整指标import pandas as pd from sklearn.metrics import ( roc_auc_score, accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, classification_report ) # Load test data and predictions test pd.read_csv(drug_activity_test.csv) pred pd.read_csv(test_predictions.csv) # Merge merged test.merge(pred, onSMILES) # Calculate metrics auc roc_auc_score(merged[label], merged[probability]) acc accuracy_score(merged[label], merged[prediction]) prec precision_score(merged[label], merged[prediction]) rec recall_score(merged[label], merged[prediction]) f1 f1_score(merged[label], merged[prediction]) print(Test Set Metrics:) print(f AUC: {auc:.4f}) print(f Accuracy: {acc:.4f}) print(f Precision: {prec:.4f}) print(f Recall: {rec:.4f}) print(f F1 Score: {f1:.4f}) print() # Confusion matrix cm confusion_matrix(merged[label], merged[prediction]) print(Confusion Matrix:) print(cm) print() # Detailed report print(Classification Report:) print(classification_report(merged[label], merged[prediction], target_names[Inactive, Active]))Expected Output示例数据较小指标可能偏乐观Test Set Metrics: AUC: 0.9375 Accuracy: 1.0000 Precision: 1.0000 Recall: 1.0000 F1 Score: 1.0000 Confusion Matrix: [[2 0] [0 2]] Classification Report: precision recall f1-score support Inactive 1.00 1.00 1.00 2 Active 1.00 1.00 1.00 2 accuracy 1.00 4 macro avg 1.00 1.00 1.00 4 weighted avg 1.00 1.00 1.00 4关于指标解读的参考标准来自原文档的 Metrics ReferenceAUC0.9-1.0 优秀、0.8-0.9 良好、0.7-0.8 尚可、0.6-0.7 较差、0.5-0.6 失败相当于随机猜测Accuracy整体正确率仅适用于类别均衡的数据集Precision被预测为活性的分子中真正活性的比例关注误报Recall真实活性分子中被正确预测出的比例关注漏报F1 ScorePrecision 与 Recall 的调和平均在真实项目中请务必使用规模更大、类别更均衡的测试集验证并同时查看混淆矩阵与分类报告而不要只看单一指标。Step 6可视化结果可视化帮助判断模型是否真正学到了有区分度的概率分布而不仅仅是预测对了。6.1 ROC 曲线import matplotlib.pyplot as plt from sklearn.metrics import roc_curve # Calculate ROC curve fpr, tpr, thresholds roc_curve(merged[label], merged[probability]) # Plot plt.figure(figsize(8, 6)) plt.plot(fpr, tpr, linewidth2, labelfROC (AUC {auc:.3f})) plt.plot([0, 1], [0, 1], k--, linewidth1, labelRandom) plt.xlabel(False Positive Rate) plt.ylabel(True Positive Rate) plt.title(ROC Curve - Drug Activity Classifier) plt.legend() plt.grid(alpha0.3) plt.savefig(roc_curve.png, dpi150, bbox_inchestight) print(ROC curve saved: roc_curve.png)6.2 预测概率分布# Separate by class inactive merged[merged[label] 0][probability] active merged[merged[label] 1][probability] # Plot fig, ax plt.subplots(figsize(10, 6)) ax.hist(inactive, bins20, alpha0.5, labelInactive (0), colorred) ax.hist(active, bins20, alpha0.5, labelActive (1), colorgreen) ax.axvline(0.5, colorblack, linestyle--, linewidth2, labelThreshold) ax.xlabel(Predicted Probability) ax.ylabel(Count) ax.title(Prediction Probability Distribution) ax.legend() plt.savefig(probability_distribution.png, dpi150, bbox_inchestight) print(Distribution saved: probability_distribution.png)概率分布图的价值在于观察 0.5 阈值两侧两个类别的重叠程度若两个分布高度重叠说明模型置信度不足可能需要调整决策阈值或补充训练数据若存在明显分离活性类集中于 0.8非活性类集中于 0.2-则模型判别力良好。Step 7部署到生产环境7.1 对新化合物批量打分训练好的模型可以直接用于预测全新化合物文件只需SMILES列不需要标签cat new_compounds.csv EOF SMILES CC(C)Cc1ccc(cc1)C(C)C(O)Cl CCN(CC)C(O)Cc1ccc(NO2)cc1 CC(C)NCC(COc1ccc(CN)cc1)O CC(C)(C)NCC(O)COc1ccc(OH)cc1 EOFcli-anything-unimol-tools -p $PROJECT predict run $BEST \ new_compounds.csv -o production_predictions.csv cat production_predictions.csv7.2 解读预测结果对生产输出进行置信度分级与语义化解读import pandas as pd pred pd.read_csv(production_predictions.csv) # Classify confidence def classify_confidence(prob): if prob 0.3 or prob 0.7: return High elif prob 0.4 or prob 0.6: return Medium else: return Low pred[confidence] pred[probability].apply(classify_confidence) # Add interpretation def interpret(row): if row[prediction] 1: return fActive ({row[probability]:.2%} confidence) else: return fInactive ({1-row[probability]:.2%} confidence) pred[interpretation] pred.apply(interpret, axis1) print(pred[[SMILES, prediction, probability, confidence, interpretation]])置信度分级的思路是概率远离 0.5 的判断可信度高High靠近 0.5 的判断可信度低Low——这类样本通常需要实验验证而非直接采信。这在药物筛选场景中尤为实用优先选择概率极高如 0.7的化合物进入湿实验低置信度化合物则可以放到后续轮次。Step 8存储管理与模型清理每次训练都会在experiments/run_XXX/下生成一份完整模型多次调参后磁盘占用会快速累积需要定期治理。8.1 查看存储占用cli-anything-unimol-tools -p $PROJECT storagestorage命令在 storage.py 中实现统计experiments/模型、conformers/构象缓存、predictions/预测结果三个目录的占用并给出百分比条形图同时自动生成清理建议——例如N 个模型超过 7 天未更新或N 个模型 AUC 0.75并估算可释放空间。8.2 仅保留最佳模型# Automatic cleanup - keep best 1 model cli-anything-unimol-tools -p $PROJECT cleanup --auto --keep-best1cleanup的决策逻辑在 models_manager.py 的suggest_deletable_models中先按综合评分排序保留 Top N由--keep-best指定默认 3近期训练7 天内的模型也保留对既不在 Top N 又不够新的模型按 AUC 阈值--min-auc默认 0.75分为删除低分与归档尚可但陈旧两类。--auto模式会跳过交互确认直接执行批量清理见 unimol_tools_cli.py并汇报删除数量与释放空间。此外还提供归档机制archive list可查看所有已归档模型默认存放于~/.unimol-archive/下的tar.gz压缩包archive restore run_id可将归档模型解压还原到experiments/目录继续使用相关实现见 cleanup.py。8.3 清理后验证cli-anything-unimol-tools -p $PROJECT project info cli-anything-unimol-tools -p $PROJECT storage常见问题排查问题一AUC 表现差 0.70可能原因训练数据不足类别不平衡SMILES 质量差存在无法解析的分子训练轮数不足解决方案# 增加训练轮数 cli-anything-unimol-tools -p $PROJECT train start --epochs 30 # 检查数据质量 python EOF import pandas as pd from rdkit import Chem data pd.read_csv(drug_activity_train.csv) print(fTotal: {len(data)}) print(fClass 0: {(data[label]0).sum()}) print(fClass 1: {(data[label]1).sum()}) # Validate SMILES invalid [] for smi in data[SMILES]: if Chem.MolFromSmiles(smi) is None: invalid.append(smi) print(fInvalid SMILES: {len(invalid)}) EOF问题二过拟合训练 AUC 高、验证 AUC 低解决方案增加 dropout 正则化cli-anything-unimol-tools -p $PROJECT train start \ --epochs 20 \ --dropout 0.2同样地当前源码中dropout需要通过编辑项目配置drug_activity.json的config段传入详见 Step 4 的参数覆盖说明。问题三模型把所有样本预测为同一类别原因严重的类别不平衡。解决方案对多数类进行欠采样构造均衡数据集import pandas as pd data pd.read_csv(drug_activity_train.csv) # Separate classes class_0 data[data[label] 0] class_1 data[data[label] 1] # Undersample majority class min_size min(len(class_0), len(class_1)) class_0_balanced class_0.sample(min_size, random_state42) class_1_balanced class_1.sample(min_size, random_state42) # Combine and shuffle balanced pd.concat([class_0_balanced, class_1_balanced]) balanced balanced.sample(frac1, random_state42).reset_index(dropTrue) balanced.to_csv(drug_activity_train_balanced.csv, indexFalse)最佳实践1. 数据质量训练前校验所有 SMILES 能否被 RDKit 解析去除重复分子尽量保持类别均衡保证数据量充足经验上每类 100 条分子2. 训练策略先以默认参数训练基线10 epochs建立参考点欠拟合时增加训练轮数过拟合时添加 dropout 正则始终使用验证集进行模型选择不要用测试集调参3. 评估规范始终在独立的测试集held-out test set上做最终评估查看混淆矩阵定位错误模式可视化 ROC 曲线确认判别能力生产场景下考虑概率校准4. 部署维护为每个生产模型记录性能档案根据业务场景设定决策阈值如宁可漏报也要低误报上线后持续监控预测分布定期用新数据重训跟踪模型漂移额外练习数据集更大规模的真实公开数据MoleculeNet 系列中的 BACE血脑屏障渗透1522 分子、BBBPβ-分泌酶抑制剂1513 分子、Tox21毒性预测7831 分子均采用与本文相同的SMILES,labelCSV 格式可用于替换示例数据验证全流程。总结清单准备类别均衡的分类数据train/valid/test 三份 CSV创建并配置项目project newproject set-dataset训练基线模型train start10 epochs调整超参数epochs / 学习率 / dropout基于验证 AUC 选择最佳模型models rank--json在测试集上评估AUC / Accuracy / Precision / Recall / F1 / 混淆矩阵可视化结果ROC 曲线、概率分布部署生产预测新化合物批量打分 置信度分级清理旧模型storage分析 cleanup --auto --keep-best延伸阅读回归教程同一套 CLI 上训练连续值预测模型如亲和力、logP指标切换为 MAE进阶教程多分类、多标签分类/回归、自动化网格搜索、批量预测与 Python 工作流集成训练 SOP标准训练流程与实验管理规范故障排查安装、权重、CUDA 等环境问题的系统化排查架构设计CLI 分层架构CLI → 编排 → 后端适配的设计细节API 参考各模块函数与数据结构的完整说明【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网