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