Herramientas Uni-Mol - CLI de Predicción de Propiedades Moleculares
Paquete: cli-anything-unimol-tools
Comando: python3 -m cli_anything.unimol_tools
Descripción
CLI interactiva para entrenar y hacer inferencias de modelos de predicción de propiedades moleculares usando Uni-Mol Tools. Soporta 5 tipos de tareas: clasificación binaria, regresión, clasificación multiclase, clasificación multilabel y regresión multilabel.
Características Principales
- Gestión de Proyectos: Organiza experimentos con proyectos nombrados
- 5 Tipos de Tareas: Clasificación, regresión, variantes multiclase y multilabel
- Seguimiento de Modelos: Historial automático de rendimiento y clasificaciones
- Almacenamiento Inteligente: Analiza el uso y limpia modelos de bajo rendimiento
- API JSON: Soporte completo de automatización con la bandera
--json
Comandos Comunes
Gestión de Proyectos
# Crear un nuevo proyecto
project create --name drug_discovery
# Listar todos los proyectos
project list
# Cambiar a un proyecto
project switch --name drug_discovery
Entrenamiento
# Entrenar un modelo de clasificación
train --data-path train.csv --target-col active --task-type classification --epochs 10
# Entrenar un modelo de regresión
train --data-path train.csv --target-col affinity --task-type regression --epochs 10
Gestión de Modelos
# Listar todos los modelos entrenados
models list
# Mostrar detalles y rendimiento del modelo
models show --model-id <id>
# Clasificar modelos por rendimiento
models rank
Almacenamiento y Limpieza
# Analizar el uso del almacenamiento
storage analyze
# Limpieza automática de modelos de bajo rendimiento
cleanup auto
# Limpieza manual con criterios
cleanup manual --max-models 10 --min-score 0.7
Predicción
# Hacer predicciones con un modelo entrenado
predict --model-id <id> --data-path test.csv
Formato de Datos
Los archivos CSV deben contener:
- Columna
SMILES: Estructuras moleculares en formato SMILES - Columna(s) de destino: Valores a predecir (nombre especificado mediante
--target-col)
Ejemplo:
SMILES,target
CCO,1
CCCO,0
CC(C)O,1
Tipos de Tarea
- classification: Clasificación binaria (0/1)
- regression: Predicción de valor continuo
- multiclass: Clasificación de múltiples clases
- multilabel_classification: Múltiples etiquetas binarias
- multilabel_regression: Múltiples valores continuos
Modo JSON
Agrega la bandera --json a cualquier comando para obtener salida legible por máquina:
python3 -m cli_anything.unimol_tools --json models list
Formato de salida:
{
"status": "success",
"data": [...],
"message": "..."
}
Modo Interactivo
Inicia sin comandos para el REPL interactivo:
python3 -m cli_anything.unimol_tools
Características:
- Autocompletado con tabulación
- Historial de comandos
- Ayuda contextual
- Persistencia del estado del proyecto
Datos de Prueba
Conjuntos de datos de ejemplo disponibles en: https://github.com/545487677/CLI-Anything-unimol-tools/tree/main/unimol_tools/examples
Incluye datos para los 5 tipos de tarea.
Requisitos
- Python 3.8+
- PyTorch 1.12+
- Backend de Uni-Mol Tools
- 4GB+ de RAM (8GB+ recomendado para entrenamiento)
Instalación
cd unimol_tools/agent-harness
pip install -e .
Documentación
- SOP: UNIMOL_TOOLS.md
- Inicio Rápido: docs/guides/02-QUICK-START.md
- Documentación Completa: docs/README.md
Pruebas
cd docs/test
bash run_tests.sh --unit -v # Pruebas unitarias (67 pruebas)
bash run_tests.sh --full -v # Suite completa de pruebas
Consejos de Rendimiento
- Comienza con 10 épocas para experimentos iniciales
- Usa tamaños de lote más pequeños si la memoria es limitada
- Supervisa el almacenamiento con
storage analyze - Usa
models rankpara identificar los mejores modelos - Limpia regularmente con
cleanup auto
Solución de Problemas
- Errores de CUDA: Reduce el tamaño del lote o usa el modo CPU
- CSV no reconocido: Verifica que exista la columna SMILES
- Baja precisión: Prueba con más épocas o ajusta la tasa de aprendizaje
- Almacenamiento lleno: Ejecuta
cleanup autopara liberar espacio
Relacionados
- Uni-Mol Tools: https://github.com/dptech-corp/Uni-Mol/tree/main/unimol_tools
- Artículo de Uni-Mol: https://arxiv.org/abs/2209.11126
- CLI-Anything: https://github.com/HKUDS/CLI-Anything