Uni-Mol 工具 - 分子性质预测 CLI 是做什么的?
包名: cli-anything-unimol-tools
命令: python3 -m cli_anything.unimol_tools
描述
基于 Uni-Mol Tools 的分子性质预测模型训练与推理交互式命令行工具。支持 5 种任务类型:二分类、回归、多分类、多标签分类和多标签回归。
主要特性
- 项目管理: 通过命名项目组织实验
- 5 种任务类型: 分类、回归、多分类、多标签变体
- 模型追踪: 自动记录性能历史与排名
- 智能存储: 分析使用情况并清理低效模型
- JSON API: 使用
--json标志支持完全自动化
常用命令
项目管理
# 创建新项目
project create --name drug_discovery
# 列出所有项目
project list
# 切换项目
project switch --name drug_discovery
训练
# 训练分类模型
train --data-path train.csv --target-col active --task-type classification --epochs 10
# 训练回归模型
train --data-path train.csv --target-col affinity --task-type regression --epochs 10
模型管理
# 列出所有已训练模型
models list
# 显示模型详情和性能
models show --model-id <id>
# 按性能排名模型
models rank
存储与清理
# 分析存储使用情况
storage analyze
# 自动清理低效模型
cleanup auto
# 手动清理(按条件)
cleanup manual --max-models 10 --min-score 0.7
预测
# 使用已训练模型进行预测
predict --model-id <id> --data-path test.csv
数据格式
CSV 文件必须包含:
SMILES列:SMILES 格式的分子结构- 目标列:要预测的值(通过
--target-col指定列名)
示例:
SMILES,target
CCO,1
CCCO,0
CC(C)O,1
任务类型
- classification: 二分类 (0/1)
- regression: 连续值预测
- multiclass: 多类别分类
- multilabel_classification: 多标签二分类
- multilabel_regression: 多标签连续值预测
JSON 模式
为任何命令添加 --json 标志以获取机器可读输出:
python3 -m cli_anything.unimol_tools --json models list
输出格式:
{
"status": "success",
"data": [...],
"message": "..."
}
交互模式
不带命令启动以进入交互式 REPL:
python3 -m cli_anything.unimol_tools
功能:
- Tab 补全
- 命令历史
- 上下文帮助
- 项目状态持久化
测试数据
示例数据集位于: https://github.com/545487677/CLI-Anything-unimol-tools/tree/main/unimol_tools/examples
包含所有 5 种任务类型的数据。
要求
- Python 3.8+
- PyTorch 1.12+
- Uni-Mol Tools 后端
- 4GB+ 内存(建议训练时使用 8GB+)
安装
cd unimol_tools/agent-harness
pip install -e .
文档
- SOP: UNIMOL_TOOLS.md
- 快速开始: docs/guides/02-QUICK-START.md
- 完整文档: docs/README.md
测试
cd docs/test
bash run_tests.sh --unit -v # 单元测试(67 个测试)
bash run_tests.sh --full -v # 完整测试套件
性能提示
- 初始实验从 10 个 epoch 开始
- 如果内存有限,使用更小的批量大小
- 用
storage analyze监控存储 - 使用
models rank识别最佳模型 - 定期用
cleanup auto清理
故障排除
- CUDA 错误: 减小批量大小或使用 CPU 模式
- CSV 无法识别: 确认存在 SMILES 列
- 准确率低: 尝试更多 epoch 或调整学习率
- 存储已满: 运行
cleanup auto释放空间
相关资源
- Uni-Mol Tools: https://github.com/dptech-corp/Uni-Mol/tree/main/unimol_tools
- Uni-Mol 论文: https://arxiv.org/abs/2209.11126
- CLI-Anything: https://github.com/HKUDS/CLI-Anything