kermt-setup について
kermt-setup は、KERMT ワークフローを実行するための環境を初期化するスキルです。Docker と NVIDIA GPU のパススルーを確認し、ローカルコンテナイメージをビルドまたは検証して、コンテナ内で CUDA をテストします。
主な機能
- 01Docker デーモンの確認
- 02NVIDIA GPU パススルーの検証
- 03kermt イメージのビルドまたは再利用
- 04コンテナ内での CUDA スモークテスト
活用シーン
- 01新しいマシンでの KERMT 環境準備
- 02Dockerfile または environment.yml 変更後の再構築
- 03コンテナの GPU 設定のトラブルシューティング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nvidia-bionemo/ bionemo-agent-toolkit --skill kermt-setupインストール後、Claude Code で/kermt-setupを入力して読み込まれたか確認します。
同梱ファイルevals/evals.jsonskill-card.md
詳細
kermt-setup
KERMT エージェント環境をブートストラップします。新しいマシンで初めて実行するとき、または Dockerfile や environment.yml を変更した後に、ほかの kermt-* スキルを呼び出す前に一度実行してください。
ハードウェア要件
- GPU:ホストから少なくとも 1 台の CUDA 対応 NVIDIA GPU が認識できること。イメージは
nvidia/cuda:12.6.3-cudnn-devel-ubuntu22.04をベースとしているため、ホストドライバーは CUDA 12.6 に対応している必要があります。呼び出す前に、ホストのnvidia-smiで確認してください。 - ホストの Docker:Docker エンジンと nvidia-container-toolkit が必要です。ツールキットがないと、以下のワークフローのステップ 2 で
docker run --gpus allが失敗します。 - ディスク:ビルドした kermt イメージ用に約 50 GB の空き容量が必要です(
docker image inspect --format '{{.Size}}'では約 44 GB と表示されます。docker imagesの Size 列には、イメージ間で重複排除されて共有可能な buildx のアテステーションレイヤーが加算されるため、約 100 GB と表示されることがあります)。ディスク上で固有に使用するストレージとして約 50 GB を確保し、ビルドキャッシュも保持する場合は余裕を持たせてください。 - メモリー:ビルド中、conda 環境の依存関係解決時に RAM 使用量が最大約 4 GB になります。
- このスキル自体はトレーニング/推論ワークロードを実行しません。ワークフローごとのハードウェア要件(VRAM、GPU 数)は、それぞれの
kermt-<workflow>スキルに記載されています。
呼び出すタイミング
- ユーザーから明示的に依頼された場合(
/kermt-setup、「kermt をセットアップして」、「kermt イメージをビルドして」など)。 - または、別の
kermt-*スキルがイメージの存在しないことを検出し、ここに誘導した場合。(ほとんどのほかのスキルは自分でkermt_ensure_imageを呼び出すため、通常は初回セットアップ、デバッグ、または強制的な再ビルドの場合にのみ必要です。)
入力
このスキルに必須の引数はありません。省略可能なオーバーライドは、呼び出す前に環境変数で指定するか、ユーザーのシェルで設定できます。
KERMT_IMAGE— ビルド/検証するイメージタグ(デフォルト:kermt:latest)。KERMT_REPO— kermt リポジトリのチェックアウト先のホストパス(デフォルト:スクリプトの場所から自動的に導出)。
ユーザーがリポジトリのパスを指定しておらず、現在の作業ディレクトリが kermt リポジトリのクローン内でない場合は、続行する前にリポジトリのパスを尋ねてください。
ワークフロー
すべての作業は agent/scripts/kermt_container.sh を通じて行います。このスクリプトのサブコマンドは、読み込みを行わずに直接呼び出せます。スキルで使用する場合は、この方法を推奨します。
HELPER=$KERMT_REPO/agent/scripts/kermt_container.sh とします。
-
docker がインストールされ、デーモンに接続できることを確認します。
$HELPER check_docker終了コードが 0 の場合は続行します。0 以外の場合は、エラー(通常は「docker が PATH にない」または「デーモンに接続できない」)をユーザーに伝え、ステップ 2 を試さないでください。
-
GPU パススルーが機能することを確認します。
$HELPER check_gpuこれは
docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu22.04 nvidia-smiを実行し、終了ステータスを確認します。0 以外の場合は、ホストにnvidia-container-toolkitをインストールし、CUDA 対応の NVIDIA GPU がホストから認識されることを確認するようユーザーに伝えてください(ホスト上のnvidia-smiも正常に動作する必要があります)。ここで停止してください。GPU パススルーがなければ kermt イメージはビルドできますが、ワークフローは実行できません。 -
kermt イメージをビルドするか、確認します。
$HELPER ensure_imageイメージがすでに存在する場合は、すぐに戻ります。それ以外の場合は
$KERMT_REPO/Dockerfileからビルドします。実行する前にユーザーに警告してください。一般的なワークステーションでは初回のビルドに約 10~20 分かかり、ビルドログがコンソールに出力されます。バックグラウンドでは実行しないでください。ユーザーは進行状況を確認したいと考えており、ビルドエラーがあればすぐに表面化させる必要があります。 -
コンテナ内で GPU のスモークテストを行います。
pythonコマンド全体を 1 つの文字列として引用符で囲んでください。ヘルパーは引数をbash -c "$*"に渡すため、複数の単語からなるコマンドを引用符で囲まないと再解析され、埋め込まれた引用符がすべて取り除かれます。$HELPER run -- 'python -c "import torch; print(\"cuda_available:\", torch.cuda.is_available()); print(\"device_count:\", torch.cuda.device_count())"'期待される出力は
cuda_available: Trueと、正の値のdevice_countです。ステップ 2 を通過したにもかかわらずcuda_availableがFalseの場合は、コンテナの CUDA 接続に問題があります。出力全体をユーザーに伝えて停止してください。環境の準備ができたと宣言してはいけません。 -
ユーザーに概要を伝えます。 次の内容を報告してください。
- イメージのタグと ID(
docker image inspect $KERMT_IMAGE --format '{{.Id}}')。 - イメージのサイズ(
docker image inspect $KERMT_IMAGE --format '{{.Size}}')。 - コンテナ内で検出された GPU の数。
- 「準備完了」— ユーザーはこれで他の
kermt-*スキルを呼び出せます。
- イメージのタグと ID(
厳守事項
- docker イメージをプルまたはプッシュしないでください。kermt イメージはローカルでのみビルドします。
- ユーザーの明示的な確認なしに、古い
kermt:*タグを自動的に削除またはプルーニングしないでください。ユーザーが別のコンテナで、特定のタグに依存するファインチューニングや事前学習を実行している可能性があります。 - ホストの docker デーモン設定、daemon.json、またはユーザーグループのメンバーシップを変更しないでください。
- このスキルの一環として
Dockerfileまたはenvironment.ymlを変更しないでください。Dockerfile の問題でビルドに失敗した場合は、エラーを伝えて停止し、編集するかどうかはユーザーに委ねてください。 - イメージがすでに存在する場合、ユーザーが明示的に強制再ビルドを求めない限り、イメージを再ビルドしないでください(
ensure_imageに--no-cacheまたは--pullフラグを渡さないでください)。
強制再ビルド
ユーザーが明示的に再ビルドを求めた場合(たとえば、Dockerfile または environment.yml の変更後)、まず古いイメージを削除し、その後 ensure_image を再実行するのが最も簡潔な方法です。
docker image rm $KERMT_IMAGE
$HELPER ensure_image
docker image rm を実行する前に、ユーザーに確認してください。