diff --git a/.github/workflows/bert-models-cicd.yaml b/.github/workflows/bert-models-cicd.yaml index 40eb1b6e..cb89142c 100644 --- a/.github/workflows/bert-models-cicd.yaml +++ b/.github/workflows/bert-models-cicd.yaml @@ -47,44 +47,44 @@ 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. +# # 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" - 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" +# 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" # # ----------------------------------------------------------------------------------- # # # ----------------------------------------------------------------------------------- # @@ -335,156 +335,156 @@ jobs: # docker push "gcr.io/$PROJECT_ID/$TASK_NAME-predict:$MODEL_VERSION" - # # # # # ----------------------------------------------------------------------------------- # - # # # # # ----------------------------------------------------------------------------------- # - # # # # # ----------------------------------------------------------------------------------- # - # # # # # TRAIN BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE MODEL # - # # # # # ----------------------------------------------------------------------------------- # - # # # # # ----------------------------------------------------------------------------------- # - # # # # # ----------------------------------------------------------------------------------- # - - # build_push_train-bl_chemical_to_disease_or_phenotypic_feature-train: - # name: "build/push/train bl_chemical_to_disease_or_phenotypic_feature model" - # # needs: "build_push-bert-base" - # runs-on: ubuntu-latest - # env: - # TASK_NAME: bl_chemical_to_disease_or_phenotypic_feature - # DOCKERFILE: train.Dockerfile - # ENTRYPOINT_FILE: scripts/train.entrypoint.sh - # BASE_DOCKERFILE: base.Dockerfile - # DATA_FILE: data/bl_chemical_to_disease_or_phenotypic_feature/data.tsv - # MODEL_VERSION_KEY: BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE - # AI_PLATFORM_JOB_NAME: "bl_chemical_to_disease_or_phenotypic_feature_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 + # # # # ----------------------------------------------------------------------------------- # + # # # # ----------------------------------------------------------------------------------- # + # # # # ----------------------------------------------------------------------------------- # + # # # # TRAIN BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE MODEL # + # # # # ----------------------------------------------------------------------------------- # + # # # # ----------------------------------------------------------------------------------- # + # # # # ----------------------------------------------------------------------------------- # - # - name: Set MODEL_VERSION env - # run: | - # echo "MODEL_VERSION=$(grep ${{ env.MODEL_VERSION_KEY }} MODEL_VERSIONS | cut -f 2 -d '=')" >> $GITHUB_ENV + build_push_train-bl_chemical_to_disease_or_phenotypic_feature-train: + name: "build/push/train bl_chemical_to_disease_or_phenotypic_feature model" + # needs: "build_push-bert-base" + runs-on: ubuntu-latest + env: + TASK_NAME: bl_chemical_to_disease_or_phenotypic_feature + DOCKERFILE: train.Dockerfile + ENTRYPOINT_FILE: scripts/train.entrypoint.sh + BASE_DOCKERFILE: base.Dockerfile + DATA_FILE: data/bl_chemical_to_disease_or_phenotypic_feature/data.tsv + MODEL_VERSION_KEY: BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE + AI_PLATFORM_JOB_NAME: "bl_chemical_to_disease_or_phenotypic_feature_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: 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=10.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 basic_gpu --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 basic_gpu --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_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE CLASSIFICATION CONTAINER IMAGE # - # # # -------------------------------------------------------------------------------------- # + # # -------------------------------------------------------------------------------------- # + # # BUILD/PUSH BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE CLASSIFICATION CONTAINER IMAGE # + # # -------------------------------------------------------------------------------------- # - # build_push-bl_chemical_to_disease_or_phenotypic_feature-predict: - # name: "build/push bl_chemical_to_disease_or_phenotypic_feature predict container" - # needs: "build_push_train-bl_chemical_to_disease_or_phenotypic_feature-train" - # runs-on: ubuntu-latest - # env: - # TASK_NAME: bl_chemical_to_disease_or_phenotypic_feature - # 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_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE - # #CLASSIFICATION_LABELS: "treats causes_or_contributes_to false" - # CLASSIFICATION_LABELS: "associated_with_resistance_to decreases_risk_for exacerbates exposure_is_origin_of has_excessive_amount_in increases_risk_for is_biomarker_for is_contraindicated_for is_deficient_in prevents results_in_side_effect treats other" - # DATA_FILE: data/bl_chemical_to_disease_or_phenotypic_feature/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_chemical_to_disease_or_phenotypic_feature-predict: + name: "build/push bl_chemical_to_disease_or_phenotypic_feature predict container" + needs: "build_push_train-bl_chemical_to_disease_or_phenotypic_feature-train" + runs-on: ubuntu-latest + env: + TASK_NAME: bl_chemical_to_disease_or_phenotypic_feature + 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_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE + #CLASSIFICATION_LABELS: "treats causes_or_contributes_to false" + CLASSIFICATION_LABELS: "associated_with_resistance_to decreases_risk_for exacerbates exposure_is_origin_of has_excessive_amount_in increases_risk_for is_biomarker_for is_contraindicated_for is_deficient_in prevents results_in_side_effect treats other" + DATA_FILE: data/bl_chemical_to_disease_or_phenotypic_feature/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" diff --git a/IMAGE_VERSIONS_PREDICT b/IMAGE_VERSIONS_PREDICT index d4cb3a36..c7b50ec4 100644 --- a/IMAGE_VERSIONS_PREDICT +++ b/IMAGE_VERSIONS_PREDICT @@ -1 +1 @@ -BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE=0.10 \ No newline at end of file +BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE=0.11 \ No newline at end of file diff --git a/MODEL_VERSIONS b/MODEL_VERSIONS index b9a065ea..758f9a5e 100644 --- a/MODEL_VERSIONS +++ b/MODEL_VERSIONS @@ -1,5 +1,5 @@ BASE=0.6.1 -BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE=0.10 +BL_CHEMICAL_TO_DISEASE_OR_PHENOTYPIC_FEATURE=0.11 BL_CHEMICAL_TO_GENE=0.1 BL_DISEASE_TO_PHENOTYPIC_FEATURE=0.1 BL_GENE_REGULATORY_RELATIONSHIP=0.1