Download DOCKERFILE.dockerfile from shangkuns/b1k-eval-utils: direct link, hf CLI and curl.
- Browser
- Download file 4.49 kB
-
https://huggingface.co/shangkuns/b1k-eval-utils/resolve/main/DOCKERFILE.dockerfile
- Command line
-
hf download hf://shangkuns/b1k-eval-utils/DOCKERFILE.dockerfile
-
curl -L -o DOCKERFILE.dockerfile https://huggingface.co/shangkuns/b1k-eval-utils/resolve/main/DOCKERFILE.dockerfile
4.49 kB
| ARG COSMOS_RL_BUILD_MODE=efa | |
| ARG COSMOS_RL_EXTRAS="" | |
| ARG CUDA_VERSION=12.8.1 | |
| FROM nvcr.io/nvidia/cuda:${CUDA_VERSION}-devel-ubuntu22.04 AS no-efa-base | |
| # System dependencies for eval | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| python3.10-dev python3-dev python3-distutils \ | |
| libgl1 libglib2.0-0 libglu1-mesa \ | |
| curl git ca-certificates \ | |
| tmux zip unzip vim \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install uv package manager | |
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh | |
| ENV PATH="/root/.local/bin:$PATH" | |
| # Install Miniconda | |
| RUN curl -fsSL -o /tmp/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ | |
| && bash /tmp/miniconda.sh -b -p /opt/miniconda3 \ | |
| && rm /tmp/miniconda.sh | |
| ENV PATH="/opt/miniconda3/bin:$PATH" | |
| ENV EVAL_ROOT=/opt/eval | |
| # Clone b1k-eval-utils | |
| RUN mkdir -p ${EVAL_ROOT} \ | |
| && git clone https://github.com/littlespray/b1k-eval-utils.git ${EVAL_ROOT}/b1k-eval-utils | |
| # Clone and setup openpi-comet | |
| SHELL ["/bin/bash", "-c"] | |
| RUN cd ${EVAL_ROOT} \ | |
| && git clone https://github.com/mli0603/openpi-comet.git --depth=1 \ | |
| && cd openpi-comet \ | |
| && cp ${EVAL_ROOT}/b1k-eval-utils/eval_openpi.sh ${EVAL_ROOT}/openpi-comet/eval_openpi.sh \ | |
| && cp ${EVAL_ROOT}/b1k-eval-utils/patch_comet_safetensors.sh ${EVAL_ROOT}/openpi-comet/patch_comet_safetensors.sh \ | |
| && GIT_LFS_SKIP_SMUDGE=1 uv sync \ | |
| && GIT_LFS_SKIP_SMUDGE=1 uv pip install -e . \ | |
| && uv pip install transformers==4.53.2 \ | |
| && cp -r ./src/openpi/models_pytorch/transformers_replace/* .venv/lib/python3.11/site-packages/transformers/ \ | |
| && bash patch_comet_safetensors.sh | |
| # Clone BEHAVIOR-1K and install bddl/OmniGibson into openpi-comet venv | |
| RUN git clone -b v3.7.2 --single-branch --depth=1 \ | |
| https://github.com/StanfordVL/BEHAVIOR-1K.git ${EVAL_ROOT}/BEHAVIOR-1K | |
| RUN cd ${EVAL_ROOT}/BEHAVIOR-1K \ | |
| && source ${EVAL_ROOT}/openpi-comet/.venv/bin/activate \ | |
| && uv pip install -e bddl3 \ | |
| && uv pip install -e "OmniGibson[eval]" \ | |
| && deactivate | |
| # Prepare b1k environment | |
| # RUN cd ${EVAL_ROOT}/BEHAVIOR-1K \ | |
| # && cp ${EVAL_ROOT}/b1k-eval-utils/patch_setup.sh patch_setup.sh \ | |
| # && bash patch_setup.sh \ | |
| WORKDIR ${EVAL_ROOT}/BEHAVIOR-1K | |
| # Run b1k setup.sh (separate layer — most likely to fail, easy to retry) | |
| ENV TORCH_CUDA_ARCH_LIST="8.0 9.0+PTX" | |
| RUN cd ${EVAL_ROOT}/BEHAVIOR-1K \ | |
| && source /opt/miniconda3/etc/profile.d/conda.sh \ | |
| && conda deactivate \ | |
| && ./setup.sh --new-env --omnigibson --bddl --joylo --eval --primitives \ | |
| --accept-conda-tos --accept-nvidia-eula | |
| RUN source /opt/miniconda3/etc/profile.d/conda.sh \ | |
| && conda activate behavior \ | |
| && pip install scipy==1.11.4 \ | |
| && pip uninstall -y numpy \ | |
| && pip uninstall -y numpy \ | |
| && pip install numpy==1.26.4 opencv-contrib-python==4.10.0.84 | |
| # RUN cd ${EVAL_ROOT}/BEHAVIOR-1K \ | |
| # && source /opt/miniconda3/etc/profile.d/conda.sh \ | |
| # && conda activate behavior \ | |
| # && python -c "from omnigibson.utils.asset_utils import download_omnigibson_robot_assets; download_omnigibson_robot_assets()" | |
| # && python -c "from omnigibson.utils.asset_utils import download_behavior_1k_assets; download_behavior_1k_assets(accept_license=True)" | |
| # && python -c "from omnigibson.utils.asset_utils import download_2025_challenge_task_instances; download_2025_challenge_task_instances()" | |
| # Copy eval script | |
| RUN cp ${EVAL_ROOT}/b1k-eval-utils/eval_b1k.sh ${EVAL_ROOT}/BEHAVIOR-1K/eval_b1k.sh | |
| # Download HF models into the image for offline eval. | |
| # Append new model repos here, separated by spaces. | |
| # ENV HF_MODEL_REPOS="shangkuns/pt12-3w-comet2-20260204022222 shangkuns/pt12-2w-comet2-20260205151209 shangkuns/cosmos-pi05-sft-pt12-20260203145532 shangkuns/pt12-3w-20260204011934" | |
| # RUN pip install --no-cache-dir "huggingface_hub[cli]" \ | |
| # && mkdir -p /opt/eval/models \ | |
| # && for repo in $HF_MODEL_REPOS; do \ | |
| # name="${repo#*/}"; \ | |
| # hf download "$repo" --repo-type model --local-dir "/opt/eval/models/$name"; \ | |
| # done | |
| RUN cd ${EVAL_ROOT} \ | |
| && cp -r openpi-comet/src/behavior/learning/* BEHAVIOR-1K/OmniGibson/omnigibson/learning/ | |
| # | |
| ENV OPENPI_DATA_HOME=/opt/openpi-cache | |
| RUN mkdir -p /opt/openpi-cache/big_vision \ | |
| && cp ${EVAL_ROOT}/b1k-eval-utils/tokenizer.model /opt/openpi-cache/big_vision/paligemma_tokenizer.model | |
| # Install huggingface-hub in the default Python environment | |
| RUN python -m pip install huggingface-hub wandb | |