From f98e71922b8b88f84e9eb075b38812f94de22219 Mon Sep 17 00:00:00 2001 From: Bill Baumgartner Date: Wed, 28 Aug 2024 17:08:49 -0600 Subject: [PATCH] train disease-anatomy v0.2 --- .github/workflows/bert-models-cicd.yaml | 314 ++++++++++++------------ 1 file changed, 157 insertions(+), 157 deletions(-) diff --git a/.github/workflows/bert-models-cicd.yaml b/.github/workflows/bert-models-cicd.yaml index 3366c2bf..36b8bf20 100644 --- a/.github/workflows/bert-models-cicd.yaml +++ b/.github/workflows/bert-models-cicd.yaml @@ -50,15 +50,63 @@ jobs: # # Note: when trying to run build_push-bert-base with other jobs below, an error is reported on line 90. # # However, when run on its own it works fine. - build_push-bert-base: - name: "build/push bluebert-base container image" + # build_push-bert-base: + # name: "build/push bluebert-base container image" + # runs-on: ubuntu-latest + # env: + # IMAGE_NAME: bluebert-base + # DOCKERFILE: base.Dockerfile + # permissions: + # contents: 'read' + # id-token: 'write' + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # - id: 'auth' + # uses: 'google-github-actions/auth@v2' + # with: + # project_id: ${{ secrets.GCE_PROJECT }} + # service_account: ${{ secrets.SERVICE_ACCOUNT }} + # credentials_json: ${{ secrets.SERVICE_ACCOUNT_KEY }} + # - name: 'Set up Cloud SDK' + # uses: 'google-github-actions/setup-gcloud@v2' + # with: + # version: '>= 363.0.0' + # - name: Setup Python + # uses: actions/setup-python@v2 + # with: + # python-version: 3.7 + # - name: Configure Docker Authentication + # run: gcloud --quiet auth configure-docker + # - name: Set MODEL_VERSION env + # run: echo "MODEL_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV + # - name: Build Docker Image + # run: docker build --tag "gcr.io/$PROJECT_ID/$IMAGE_NAME:$MODEL_VERSION" -f ${{ env.DOCKERFILE }} . + # - name: Publish Docker Image to Google Container Registry + # run: docker push "gcr.io/$PROJECT_ID/$IMAGE_NAME:$MODEL_VERSION" + + +# # # # # # ----------------------------------------------------------------------------------- # +# # # # # # ----------------------------------------------------------------------------------- # +# # # # # # ----------------------------------------------------------------------------------- # +# # # # # # TRAIN BL_DISEASE_TO_ANATOMY MODEL # +# # # # # # ----------------------------------------------------------------------------------- # +# # # # # # ----------------------------------------------------------------------------------- # +# # # # # # ----------------------------------------------------------------------------------- # + + build_push_train-bl_disease_to_anatomy-train: + name: "build/push/train bl_disease_to_anatomy model" + # needs: "build_push-bert-base" runs-on: ubuntu-latest env: - IMAGE_NAME: bluebert-base - DOCKERFILE: base.Dockerfile - permissions: - contents: 'read' - id-token: 'write' + TASK_NAME: bl_disease_to_anatomy + DOCKERFILE: train.Dockerfile + ENTRYPOINT_FILE: scripts/train.entrypoint.sh + BASE_DOCKERFILE: base.Dockerfile + DATA_FILE: data/bl_disease_to_anatomy/data.tsv + MODEL_VERSION_KEY: BL_DISEASE_TO_ANATOMY + AI_PLATFORM_JOB_NAME: "bl_disease_to_anatomy_train_${{ github.run_number }}" steps: - uses: actions/checkout@v4 with: @@ -77,169 +125,121 @@ jobs: uses: actions/setup-python@v2 with: python-version: 3.7 - - name: Configure Docker Authentication - run: gcloud --quiet auth configure-docker - - name: Set MODEL_VERSION env - run: echo "MODEL_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV - - name: Build Docker Image - run: docker build --tag "gcr.io/$PROJECT_ID/$IMAGE_NAME:$MODEL_VERSION" -f ${{ env.DOCKERFILE }} . - - name: Publish Docker Image to Google Container Registry - run: docker push "gcr.io/$PROJECT_ID/$IMAGE_NAME:$MODEL_VERSION" - - -# # # # # # # ----------------------------------------------------------------------------------- # -# # # # # # # ----------------------------------------------------------------------------------- # -# # # # # # # ----------------------------------------------------------------------------------- # -# # # # # # # TRAIN BL_DISEASE_TO_ANATOMY MODEL # -# # # # # # # ----------------------------------------------------------------------------------- # -# # # # # # # ----------------------------------------------------------------------------------- # -# # # # # # # ----------------------------------------------------------------------------------- # -# build_push_train-bl_disease_to_anatomy-train: -# name: "build/push/train bl_disease_to_anatomy model" -# # needs: "build_push-bert-base" -# runs-on: ubuntu-latest -# env: -# TASK_NAME: bl_disease_to_anatomy -# DOCKERFILE: train.Dockerfile -# ENTRYPOINT_FILE: scripts/train.entrypoint.sh -# BASE_DOCKERFILE: base.Dockerfile -# DATA_FILE: data/bl_disease_to_anatomy/data.tsv -# MODEL_VERSION_KEY: BL_DISEASE_TO_ANATOMY -# AI_PLATFORM_JOB_NAME: "bl_disease_to_anatomy_train_${{ github.run_number }}" -# steps: -# - uses: actions/checkout@v4 -# with: -# fetch-depth: 0 -# - id: 'auth' -# uses: 'google-github-actions/auth@v2' -# with: -# project_id: ${{ secrets.GCE_PROJECT }} -# service_account: ${{ secrets.SERVICE_ACCOUNT }} -# credentials_json: ${{ secrets.SERVICE_ACCOUNT_KEY }} -# - name: 'Set up Cloud SDK' -# uses: 'google-github-actions/setup-gcloud@v2' -# with: -# version: '>= 363.0.0' -# - name: Setup Python -# uses: actions/setup-python@v2 -# with: -# python-version: 3.7 - -# - name: Configure Docker Authentication -# run: | -# gcloud --quiet auth configure-docker - -# - name: Set MODEL_VERSION env -# run: | -# echo "MODEL_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV - -# - name: Set BASE_VERSION env -# run: | -# echo "BASE_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV + - name: Configure Docker Authentication + run: | + gcloud --quiet auth configure-docker -# - name: Set NUM_EPOCHS env -# run: | -# echo "NUM_EPOCHS=5.0" >> $GITHUB_ENV + - name: Set MODEL_VERSION env + run: | + echo "MODEL_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV -# - name: Build Docker Image -# run: | -# docker build --build-arg "PROJECT_ID=$PROJECT_ID" \ -# --build-arg "TASK_NAME=$TASK_NAME" \ -# --build-arg "BASE_VERSION=$BASE_VERSION" \ -# --build-arg "TUNED_MODEL_VERSION=$MODEL_VERSION" \ -# --build-arg "EPOCHS=$NUM_EPOCHS" \ -# --tag "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" \ -# -f ${{ env.DOCKERFILE }} . + - name: Set BASE_VERSION env + run: | + echo "BASE_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV -# - name: Publish Docker Image to Google Container Registry -# run: | -# docker push "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" + - name: Set NUM_EPOCHS env + run: | + echo "NUM_EPOCHS=5.0" >> $GITHUB_ENV -# - name: Submit a training job to AI Plaform to train and cache the model -# run: | -# gcloud ai-platform jobs submit training ${{ env.AI_PLATFORM_JOB_NAME }} \ -# --scale-tier=CUSTOM \ -# --master-machine-type=n1-standard-8 \ -# --master-accelerator=count=1,type=nvidia-tesla-v100 \ -# --region "$GCE_REGION" \ -# --master-image-uri "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" \ -# -- \ -# NO_ARG \ -# "gs://$MODEL_STORAGE_BUCKET" + - name: Build Docker Image + run: | + docker build --build-arg "PROJECT_ID=$PROJECT_ID" \ + --build-arg "TASK_NAME=$TASK_NAME" \ + --build-arg "BASE_VERSION=$BASE_VERSION" \ + --build-arg "TUNED_MODEL_VERSION=$MODEL_VERSION" \ + --build-arg "EPOCHS=$NUM_EPOCHS" \ + --tag "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" \ + -f ${{ env.DOCKERFILE }} . -# - name: Monitor the training job -# run: | -# sh -c ".github/workflows/monitor-ai-platform-job.sh ${{ env.AI_PLATFORM_JOB_NAME }}" -# timeout-minutes: 500 + - name: Publish Docker Image to Google Container Registry + run: | + docker push "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" + + - name: Submit a training job to AI Plaform to train and cache the model + run: | + gcloud ai-platform jobs submit training ${{ env.AI_PLATFORM_JOB_NAME }} \ + --scale-tier=CUSTOM \ + --master-machine-type=n1-standard-8 \ + --master-accelerator=count=1,type=nvidia-tesla-v100 \ + --region "$GCE_REGION" \ + --master-image-uri "gcr.io/$PROJECT_ID/$TASK_NAME-train:$MODEL_VERSION" \ + -- \ + NO_ARG \ + "gs://$MODEL_STORAGE_BUCKET" + + - name: Monitor the training job + run: | + sh -c ".github/workflows/monitor-ai-platform-job.sh ${{ env.AI_PLATFORM_JOB_NAME }}" + timeout-minutes: 500 -# # # -------------------------------------------------------------------------------------- # -# # # BUILD/PUSH BL_DISEASE_TO_ANATOMY CLASSIFICATION CONTAINER IMAGE # -# # # -------------------------------------------------------------------------------------- # + # # -------------------------------------------------------------------------------------- # + # # BUILD/PUSH BL_DISEASE_TO_ANATOMY CLASSIFICATION CONTAINER IMAGE # + # # -------------------------------------------------------------------------------------- # -# build_push-bl_disease_to_anatomy-predict: -# name: "build/push bl_disease_to_anatomy predict container" -# needs: "build_push_train-bl_disease_to_anatomy-train" -# runs-on: ubuntu-latest -# env: -# TASK_NAME: bl_disease_to_anatomy -# DOCKERFILE: predict.Dockerfile -# TRAIN_DOCKERFILE: train.Dockerfile -# TRAIN_ENTRYPOINT_FILE: scripts/train.entrypoint.sh -# ENTRYPOINT_FILE: scripts/predict.entrypoint.sh -# BASE_DOCKERFILE: base.Dockerfile -# MODEL_VERSION_KEY: BL_DISEASE_TO_ANATOMY -# # Don't forget to change labels -# CLASSIFICATION_LABELS: "has_basis_in other" -# DATA_FILE: data/bl_disease_to_anatomy/data.tsv -# steps: -# - uses: actions/checkout@v4 -# with: -# fetch-depth: 0 -# - id: 'auth' -# uses: 'google-github-actions/auth@v2' -# with: -# project_id: ${{ secrets.GCE_PROJECT }} -# service_account: ${{ secrets.SERVICE_ACCOUNT }} -# credentials_json: ${{ secrets.SERVICE_ACCOUNT_KEY }} -# - name: 'Set up Cloud SDK' -# uses: 'google-github-actions/setup-gcloud@v2' -# with: -# version: '>= 363.0.0' -# - name: Setup Python -# uses: actions/setup-python@v2 -# with: -# python-version: 3.7 -# - name: Configure Docker Authentication -# run: | -# gcloud --quiet auth configure-docker + build_push-bl_disease_to_anatomy-predict: + name: "build/push bl_disease_to_anatomy predict container" + needs: "build_push_train-bl_disease_to_anatomy-train" + runs-on: ubuntu-latest + env: + TASK_NAME: bl_disease_to_anatomy + DOCKERFILE: predict.Dockerfile + TRAIN_DOCKERFILE: train.Dockerfile + TRAIN_ENTRYPOINT_FILE: scripts/train.entrypoint.sh + ENTRYPOINT_FILE: scripts/predict.entrypoint.sh + BASE_DOCKERFILE: base.Dockerfile + MODEL_VERSION_KEY: BL_DISEASE_TO_ANATOMY + # Don't forget to change labels + CLASSIFICATION_LABELS: "has_basis_in other" + DATA_FILE: data/bl_disease_to_anatomy/data.tsv + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - id: 'auth' + uses: 'google-github-actions/auth@v2' + with: + project_id: ${{ secrets.GCE_PROJECT }} + service_account: ${{ secrets.SERVICE_ACCOUNT }} + credentials_json: ${{ secrets.SERVICE_ACCOUNT_KEY }} + - name: 'Set up Cloud SDK' + uses: 'google-github-actions/setup-gcloud@v2' + with: + version: '>= 363.0.0' + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Configure Docker Authentication + run: | + gcloud --quiet auth configure-docker -# - name: Set MODEL_VERSION env -# run: | -# echo "MODEL_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV + - name: Set MODEL_VERSION env + run: | + echo "MODEL_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV -# - name: Set IMAGE_VERSION env -# run: | -# echo "IMAGE_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} IMAGE_VERSIONS_PREDICT | cut -f 2 -d '=')" >> $GITHUB_ENV + - name: Set IMAGE_VERSION env + run: | + echo "IMAGE_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} IMAGE_VERSIONS_PREDICT | cut -f 2 -d '=')" >> $GITHUB_ENV -# - name: Set BASE_VERSION env -# run: | -# echo "BASE_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV + - name: Set BASE_VERSION env + run: | + echo "BASE_VERSION=$(grep 'BASE' MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV -# - name: Build Docker Image -# run: | -# docker build --build-arg "PROJECT_ID=$PROJECT_ID" \ -# --build-arg "TASK_NAME=$TASK_NAME" \ -# --build-arg "BASE_VERSION=$BASE_VERSION" \ -# --build-arg "TUNED_MODEL_VERSION=$MODEL_VERSION" \ -# --build-arg "MODEL_STORAGE_BUCKET=$MODEL_STORAGE_BUCKET" \ -# --build-arg "CLASSIFICATION_LABELS=${{ env.CLASSIFICATION_LABELS }}" \ -# --tag "gcr.io/$PROJECT_ID/$TASK_NAME-predict:$IMAGE_VERSION" \ -# -f ${{ env.DOCKERFILE }} . + - name: Build Docker Image + run: | + docker build --build-arg "PROJECT_ID=$PROJECT_ID" \ + --build-arg "TASK_NAME=$TASK_NAME" \ + --build-arg "BASE_VERSION=$BASE_VERSION" \ + --build-arg "TUNED_MODEL_VERSION=$MODEL_VERSION" \ + --build-arg "MODEL_STORAGE_BUCKET=$MODEL_STORAGE_BUCKET" \ + --build-arg "CLASSIFICATION_LABELS=${{ env.CLASSIFICATION_LABELS }}" \ + --tag "gcr.io/$PROJECT_ID/$TASK_NAME-predict:$IMAGE_VERSION" \ + -f ${{ env.DOCKERFILE }} . -# - name: Publish Docker Image to Google Container Registry -# run: | -# docker push "gcr.io/$PROJECT_ID/$TASK_NAME-predict:$IMAGE_VERSION" + - name: Publish Docker Image to Google Container Registry + run: | + docker push "gcr.io/$PROJECT_ID/$TASK_NAME-predict:$IMAGE_VERSION" # # # # # # # ----------------------------------------------------------------------------------- # # # # # # # # ----------------------------------------------------------------------------------- #