FEATURED · 精选文章

Uni-Mol Tools 分子性质预测实战演示指南:5 类任务训练与六大模型管理特性全测

发布时间 / 2026/9/11 14:02:29
来源 / 创域科博编辑部
栏目 / 资讯中心
Uni-Mol Tools 分子性质预测实战演示指南:5 类任务训练与六大模型管理特性全测 Uni-Mol Tools 分子性质预测实战演示指南5 类任务训练与六大模型管理特性全测【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything导读本文围绕 CLI-Anything 仓库中 README_DEMO.md 所定义的一体化演示流程展开讲解如何用真实分子示例数据一口气训练 5 种任务类型的 9 个模型并在二分类项目Task 1上完整验证存储分析、模型排名、最优模型、性能历史、清理建议、模型对比 6 大管理特性。读完本文你将掌握demo_real_examples.sh的四种启动方式、脚本的完整执行链路、每个特性的底层打分/清理算法以及脱离脚本手动复测任一项目文件的具体 CLI 命令。一、演示总览为什么这是官方推荐的一体化 Demo该演示脚本demo_real_examples.sh的核心目标有两个Part 1使用examples/目录下的真实示例数据训练 5 种不同类型的分子性质预测任务Part 2挑选模型最多的Task 1二分类5 个模型逐一测试全部 6 项模型管理新特性并额外生成测试集预测结果。与仓库内其他演示demo_5_tasks.sh、demo_complete.sh相比本脚本之所以被标注为Recommended推荐是因为它直接使用随工具提供的真实示例数据无需生成数据、数据质量达到生产级且覆盖全部 5 种任务类型与全部 6 项特性一次运行即可完成端到端验证维度demo_real_examples.sh本文主角demo_5_tasks.shdemo_complete.sh数据来源✅ 真实 examples 数据由真实数据派生小型合成数据任务数量554各任务模型数5, 1, 1, 1, 15, 1, 1, 1, 15, 1, 1, 1测试的特性全部 6 项全部 6 项全部 6 项数据质量✅ 生产级真实派生仅测试用推荐度✅推荐可用快速测试二、快速开始四种启动方式与参数说明脚本支持灵活的参数传入核心用法如下# Option 1同时指定 examples 目录与权重目录 bash demo_real_examples.sh /path/to/examples /path/to/weights # Option 2只指定 examples 目录找不到权重时自动下载 bash demo_real_examples.sh /path/to/examples # Option 3使用相对路径examples 位于父目录、权重位于 ../Uni-Mol 时 bash demo_real_examples.sh ../examples ../Uni-Mol/unimol_tools/weights # Option 4自动探测../examples 存在时直接运行 bash demo_real_examples.sh参数约定EXAMPLES_DIR可选examples 目录路径不传时脚本自动尝试../examples若仍不存在则打印用法帮助并退出对应脚本 demo_real_examples.sh 的逻辑WEIGHTS_DIR可选权重目录路径。脚本的查找顺序为命令行第 2 个参数 → 环境变量UNIMOL_WEIGHT_DIR→ 常见位置../Uni-Mol/unimol_tools/unimol_tools/weights等自动探测 → 全部失败时提示“Weights will be downloaded”见脚本 demo_real_examples.sh。更多传参示例# 绝对路径 bash demo_real_examples.sh /home/user/unimol_tools/examples # 相对路径 bash demo_real_examples.sh ../../unimol_tools/examples # 环境变量 EXAMPLES/opt/data/examples bash demo_real_examples.sh $EXAMPLES权重目录同样可以通过 CLI 的--weight-dir/-w参数或UNIMOL_WEIGHT_DIR环境变量指定对应入口实现在 unimol_tools_cli.py。三、Part 15 类真实任务训练全流程脚本采用“创建项目 → 绑定数据集 → 启动训练”三步范式对每个任务重复执行。以下为脚本实际使用的完整命令序列5 个任务模式相同仅任务类型与数据路径不同。3.1 训练任务一览任务类型数据来源训练模型数Task 1二分类Binary Classificationexamples/binary_classification/mol_train.csv / mol_test.csv5Task 2回归Regressionexamples/regression/train.csv / test.csv1Task 3多分类Multiclass3 类examples/multiclass/train.csv / test.csv1Task 4多标签分类Multilabel3 标签examples/multilabel_classification/train.csv / test.csv1Task 5多标签回归Multilabel Regression3 目标examples/multilabel_regression/train.csv / test.csv1合计5 个任务共训练9 个模型51111。3.2 单任务三步命令详解以 Task 1 为例# ① 创建二分类项目 python -m cli_anything.unimol_tools \ project new \ --name task1_binary \ --task classification \ --output-dir $PROJECT_DIR # ② 绑定训练集 CSV python -m cli_anything.unimol_tools \ -p $PROJECT_DIR/task1_binary/project.json \ project set-dataset train $EXAMPLES_DIR/binary_classification/mol_train.csv # ③ 启动训练10 epoch、batch size 16 python -m cli_anything.unimol_tools \ -p $PROJECT_DIR/task1_binary/project.json \ train start \ --epochs 10 \ --batch-size 16底层实现说明project new会为每个项目创建独立目录并写入project.json目录结构为output_dir/name/{project.json, experiments/, conformers/, predictions/}见 project.py项目配置按任务类型自动选择默认指标二分类/多标签分类默认auc多分类默认acc回归/多标签回归默认maeproject.py默认训练配置为 epochs10、batch_size16、learning_rate1e-4、early_stopping20、80/20 随机划分train start通过--epochs、--batch-size、--lr、--gpus覆盖项目配置后调用run_training并将新增 run 写回project.jsonunimol_tools_cli.py。3.3 数据格式要求所有训练数据均为 CSV必须包含SMILES列分子结构目标列各任务类型取值不同——二分类为 0/1 或 True/False回归为浮点数多分类为整数0,1,2,...多标签分类为多个 0/1 列多标签回归为多个浮点数列。SMILES,target CCO,1 CCCO,0 CC(C)O,1四、Part 2六大模型管理特性逐一测试Task 1 之所以被选中用于特性测试官方文档给出四条理由5 个已训练模型最适合演示模型管理、真实分子数据贴近实际药物发现场景、二分类指标清晰AUC、accuracy、自带测试集可演示预测。脚本在执行完 Task 1 首次训练后会循环追加训练 4 个模型for i in {2..5}epochs8、batch-size16输出重定向到/dev/null使 Task 1 达到 5 个模型随后依次触发 6 项测试。特性 1存储分析Storage Analysispython -m cli_anything.unimol_tools -p $PROJECT_JSON storage输出会按models / conformers / predictions三类组件统计磁盘占用、百分比并绘制 ASCII 进度条当存在超过 7 天的旧模型或 AUC0.75 的低分模型时额外给出可释放空间的清理建议对应实现见 storage.py。典型输出Total: 152.3 MB ├── Models: 145.8 MB (95.7%) ├── Conformers: 5.2 MB (3.4%) └── Predictions: 1.3 MB (0.9%)特性 2模型排名Models Rankingpython -m cli_anything.unimol_tools -p $PROJECT_JSON models rank排名依据calculate_model_score计算的0~10 综合得分默认权重下 AUC 占比 100%weight_auc1.0另有训练时长、时间新鲜度权重可调AUC 直接乘 10 归一化models_manager.py。状态按 AUC 阈值分级≥0.85 为 Best/Good、≥0.75 为 Ok、≥0.65 为 Weak、否则为Poormodels_manager.py。前 3 名分别以 高亮展示Rank Run ID AUC Score Status 1 run_003 0.92 9.2 Best 2 run_002 0.85 8.5 Good 3 run_001 0.78 7.8 Ok 4 run_005 0.72 7.2 Weak 5 run_004 0.68 6.8 Poor特性 3最优模型Best Modelpython -m cli_anything.unimol_tools -p $PROJECT_JSON models best底层get_best_model优先按指定指标默认 auc取最大值若所有 run 均无该指标则回退到第一个 runmodels_manager.pyBest Model: run_003 AUC: 0.92 Score: 9.2特性 4性能历史Model Historypython -m cli_anything.unimol_tools -p $PROJECT_JSON models historyget_model_history按时间戳排序生成时间线比较首尾 AUC 差值阈值 ±0.05判定趋势为improving / declining / stable并输出最优模型、上升趋势、近期回落三类洞察CLI 端还会按 AUC 值绘制字符柱状图models_manager.pyTrend: Improving (0.24 AUC) Best: run_003 (AUC: 0.92)特性 5清理建议Cleanup Suggestionspython -m cli_anything.unimol_tools -p $PROJECT_JSON cleanupcleanup支持--keep-best默认保留前 3 名、--min-auc默认 0.75、--auto自动执行删除三个选项。决策逻辑models_manager.py为Top N 永远保留→7 天内的近期模型保留→AUC 低于阈值且较旧的删除→其余中等表现旧模型归档DELETE: 2 models (58.2 MB savings) KEEP: 3 models (top performers recent)删除/归档由 cleanup.py 落地删除即移除experiments/下对应 run 目录并更新project.json归档则打包为~/.unimol-archive/{project}_{run_id}_{日期}.tar.gz支持archive list/archive restore还原。特性 6模型对比Model Comparisonpython -m cli_anything.unimol_tools -p $PROJECT_JSON models compare run_001 run_002compare_models对两模型逐指标比较auc、accuracy、precision、recall、f1_score、mcc、log_loss 及训练时长除 log_loss 与训练时长为“越小越好”外其余均为“越大越好”最终按“胜出指标数”决出 overall winnermodels_manager.pyComparing: run_001 vs run_003 Winner: run_003 (4/4 metrics)彩蛋最优模型预测6 项测试结束后脚本通过models best --json解析出最优 run_id再用它对测试集做预测并写入predictions.csvpython -m cli_anything.unimol_tools \ -p $PROJECT_JSON \ predict run $BEST_RUN $EXAMPLES_DIR/binary_classification/mol_test.csv \ --output $PROJECT_DIR/predictions.csv五、手动复测与 JSON 输出演示完成后任何任务项目都可以脱离脚本手动验证特性-p指向各任务project.json即可# Task 1二分类5 个模型— 全特性 python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json storage python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json models rank python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json models best python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json models history python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json cleanup python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json models compare run_001 run_002 # Task 2回归 python -m cli_anything.unimol_tools -p demo_projects/task2_regression/project.json storage python -m cli_anything.unimol_tools -p demo_projects/task2_regression/project.json models best # Task 3~5 存储分析 python -m cli_anything.unimol_tools -p demo_projects/task3_multiclass/project.json storage python -m cli_anything.unimol_tools -p demo_projects/task4_multilabel_cls/project.json storage python -m cli_anything.unimol_tools -p demo_projects/task5_multilabel_reg/project.json storage # JSON 结构化输出便于 Agent / 脚本消费 python -m cli_anything.unimol_tools -p demo_projects/task1_binary/project.json storage --json注意JSON 模式的--json为全局选项需置于子命令之前例如python -m cli_anything.unimol_tools --json -p ... storage脚本结尾的 Next Steps 亦有此提示。该模式由统一输出函数output()集中处理错误时同样输出 JSON 错误对象unimol_tools_cli.py非常适合接入 AI Agent 做自动化流程。若只想复测特性、跳过训练环节可改用 test_features.sh直接对既有project.json依次执行上述 6 项测试。六、输出目录结构与成功标准运行结束后生成demo_projects/目录demo_projects/ ├── task1_binary.json # 5 个模型 ← 被选中做特性测试 ├── task2_regression.json # 1 个模型 ├── task3_multiclass.json # 1 个模型 ├── task4_multilabel_cls.json # 1 个模型 ├── task5_multilabel_reg.json # 1 个模型 └── predictions.csv # 测试集预测结果验证成功的 10 项标准✅ 创建 5 个 project.json 文件✅ 训练 9 个模型5 1 1 1 1✅ 在 Task 1 上测试全部 6 项特性✅ 生成测试集预测结果✅ 展示存储占用分解✅ 展示带得分的模型排名✅ 识别出最优模型✅ 展示性能趋势✅ 提供清理建议✅ 展示模型对比结果七、执行时间预估与注意事项环境总耗时明细GPU约 8~12 分钟Task 1 约 6 分钟5 个模型Task 2~5 各 1~2 分钟CPU约 40~60 分钟Task 1 约 30 分钟5 个模型Task 2~5 各约 10 分钟脚本的彩色输出约定蓝色 信息消息、绿色 成功消息、黄色 段落标题对应脚本 demo_real_examples.sh 定义的info/success/section函数。运行前会清理旧的demo_projects/目录若显式传入的 examples 目录不存在脚本会以红色错误信息退出。八、配套资源与延伸阅读演示脚本本体demo_real_examples.sh、仅测特性脚本test_features.shCLI 入口与全部命令定义unimol_tools_cli.py核心模块源码项目管理 project.py、模型管理 models_manager.py、存储分析 storage.py、清理归档 cleanup.py单元测试模型管理测试 test_models_manager.py 覆盖得分计算、排名、最优、对比、历史、删除建议全链路项目级文档agent-harness 说明、安装指南、快速上手、API 参考延伸提示真实示例数据位于examples/各任务train.csv/test.csv本仓库的demo_real_examples.sh默认从../examples或命令行参数读取。若本地已有该数据目录bash demo_real_examples.sh examples路径即可一条命令跑完全部演示训练完成后还可基于 docs/guides 与 docs/tutorials 进一步深入分类、回归等专项教程。【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻