Uni-Mol Tools - 분자 특성 예측 CLI
패키지: cli-anything-unimol-tools
명령어: python3 -m cli_anything.unimol_tools
설명
Uni-Mol Tools를 사용하여 분자 특성 예측 모델을 학습 및 추론하기 위한 대화형 CLI입니다. 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
기능:
- 탭 완성
- 명령어 히스토리
- 컨텍스트 도움말
- 프로젝트 상태 유지
테스트 데이터
예제 데이터셋은 다음에서 확인할 수 있습니다: https://github.com/545487677/CLI-Anything-unimol-tools/tree/main/unimol_tools/examples
5가지 태스크 유형에 대한 데이터가 포함되어 있습니다.
요구 사항
- Python 3.8+
- PyTorch 1.12+
- Uni-Mol Tools 백엔드
- 4GB 이상 RAM (학습 시 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 에포크로 시작하세요
- 메모리가 부족하면 배치 크기를 줄이세요
storage analyze로 스토리지를 모니터링하세요models rank로 최고 성능 모델을 식별하세요cleanup auto로 정기적으로 정리하세요
문제 해결
- CUDA 오류: 배치 크기를 줄이거나 CPU 모드를 사용하세요
- CSV 인식 안 됨: SMILES 열이 있는지 확인하세요
- 낮은 정확도: 에포크 수를 늘리거나 학습률을 조정하세요
- 스토리지 가득 참:
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