[codestyle] Modular convert tools (#11129) #259
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Disabled LLM CI workflow - manually enabled when needed | ||
| name: LLM CI (DISABLED) | ||
| #on: | ||
| # pull_request: | ||
| # types: [opened, synchronize, reopened] | ||
| # branches: [develop] | ||
| # schedule: | ||
| # - cron: "2 0 * * *" | ||
| # workflow_call: | ||
| # inputs: | ||
| # run_downstream: | ||
| # required: true | ||
| # type: string | ||
| # image_name: | ||
| # required: true | ||
| # type: string | ||
| #concurrency: | ||
| # group: ${{ github.workflow }}-${{ github.event.pull_request.number }} | ||
| # cancel-in-progress: true | ||
| #env: | ||
| # PR_ID: ${{ github.event.pull_request.number }} | ||
| COMMIT_ID: ${{ github.event.pull_request.head.sha }} | ||
| TASK: paddlenlp-CI-${{ github.event.pull_request.number }}-llm | ||
| ci_scripts: /workspace/PaddleNLP/scripts/regression | ||
| BRANCH: ${{ github.event.pull_request.base.ref }} | ||
| AGILE_COMPILE_BRANCH: ${{ github.event.pull_request.base.ref }} | ||
| CI_name: llm-ci | ||
| no_proxy: "localhost,bj.bcebos.com,su.bcebos.com,bcebos.com,apiin.im.baidu.com,gitee.com,aliyun.com,.baidu.com,.tuna.tsinghua.edu.cn" | ||
| HF_ENDPOINT: https://hf-mirror.com | ||
| STUDIO_GIT_HOST: http://git.prod.idc-to-cloud.aistudio.baidu-int.com | ||
| PPNLP_HOME: /ssd1/paddlenlp | ||
| HF_DATASETS_CACHE: /ssd1/paddlenlp/huggingface/datasets | ||
| TRANSFORMERS_CACHE: /ssd1/paddlenlp/huggingface | ||
| CCACHE_DIR: /home/data/gzcfs/.ccache/gpubox | ||
| RUN_DOWNSTREAM: ${{ inputs.run_downstream }} | ||
| #defaults: | ||
| # run: | ||
| # shell: bash | ||
| #jobs: | ||
| # llm-ci: | ||
| # name: llm-ci (DISABLED) | ||
| runs-on: [self-hosted, ernie-8gpu] | ||
| steps: | ||
| - name: Determine Image Name | ||
| env: | ||
| IMAGE_NAME: ${{ inputs.image_name }} | ||
| run: | | ||
| if [[ -n "${IMAGE_NAME}" ]]; then | ||
| echo "IMAGE_NAME=${IMAGE_NAME}" >> "$GITHUB_ENV" | ||
| else | ||
| echo "IMAGE_NAME=iregistry.baidu-int.com/paddlecloud/base-images:paddlecloud-ubuntu18.04-gcc8.2-cuda11.8-cudnn8.6-nccl2.15.5-paddlenlp-latest" >> "$GITHUB_ENV" | ||
| fi | ||
| - name: Run Container | ||
| env: | ||
| work_dir: ${{ github.workspace }} | ||
| CACHE_DIR: /home/data/cfs/.cache | ||
| FLAGS_dynamic_static_unified_comm: "True" | ||
| python_version: "3.10" | ||
| paddle_whl: https://paddle-qa.bj.bcebos.com/paddle-pipeline/Develop-GpuSome-LinuxCentos-Gcc82-Cuda118-Cudnn86-Trt85-Py310-CINN-Compile/latest/paddlepaddle_gpu-0.0.0-cp310-cp310-linux_x86_64.whl | ||
| run: | | ||
| container_name=${TASK}-$(date +%Y%m%d-%H%M%S) | ||
| echo "container_name=${container_name}" >> "$GITHUB_ENV" | ||
| if [[ "$RUN_DOWNSTREAM" == "false" ]]; then | ||
| echo "Not in a pull_request or test_build event. Skipping..." | ||
| else | ||
| docker run -d -t --name ${container_name} --net=host -v /dev/shm:/dev/shm --shm-size=32G \ | ||
| -v $work_dir/../../..:$work_dir/../../.. \ | ||
| -v $work_dir:/workspace \ | ||
| -v /home/.cache/pip:/home/.cache/pip \ | ||
| -v /ssd1/paddlenlp:/ssd1/paddlenlp \ | ||
| -v /home/data/gzcfs/.ccache/gpubox:/home/data/gzcfs/.ccache/gpubox \ | ||
| -e BRANCH \ | ||
| -e AGILE_COMPILE_BRANCH \ | ||
| -e PR_ID \ | ||
| -e COMMIT_ID \ | ||
| -e work_dir \ | ||
| -e ci_scripts \ | ||
| -e no_proxy \ | ||
| -e CI_name \ | ||
| -e paddle_whl \ | ||
| -e HF_ENDPOINT \ | ||
| -e STUDIO_GIT_HOST \ | ||
| -e PPNLP_HOME \ | ||
| -e HF_DATASETS_CACHE \ | ||
| -e TRANSFORMERS_CACHE \ | ||
| -e CACHE_DIR \ | ||
| -e FLAGS_dynamic_static_unified_comm \ | ||
| -e python_version \ | ||
| -w /workspace --runtime=nvidia $IMAGE_NAME | ||
| fi | ||
| - name: Download Code | ||
| env: | ||
| work_dir: ${{ github.workspace }} | ||
| run: | | ||
| if [[ "$RUN_DOWNSTREAM" == "false" ]]; then | ||
| echo "Not in a pull_request or test_build event. Skipping.." | ||
| else | ||
| docker exec -t $container_name /bin/bash -c ' | ||
| rm -rf * .[^.]* | ||
| echo "Downloading PaddleNLP.tar.gz" | ||
| wget -q --no-proxy https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddleNLP.tar --no-check-certificate | ||
| echo "Extracting PaddleNLP.tar.gz" | ||
| tar xf PaddleNLP.tar && rm -rf PaddleNLP.tar | ||
| source $work_dir/../../../proxy | ||
| cd PaddleNLP | ||
| git config --global user.name "PaddleCI" | ||
| git config --global user.email "paddle_ci@example.com" | ||
| git pull | ||
| git submodule update --init --recursive --force | ||
| if [ -n "${PR_ID}" ]; then | ||
| git fetch origin pull/${PR_ID}/head | ||
| git checkout -b PR_${PR_ID} FETCH_HEAD | ||
| git remote add upstream https://github.com/PaddlePaddle/PaddleNLP.git | ||
| git fetch upstream ${BRANCH} | ||
| git merge ${BRANCH} --no-edit | ||
| git diff --numstat ${BRANCH} -- | awk "{print \$NF}" | ||
| else | ||
| echo "Not in a pull_request event. Skipping PR-specific operations." | ||
| fi | ||
| git log --pretty=oneline -10 | ||
| ' | ||
| fi | ||
| - name: Skip For Bug | ||
| run: | | ||
| if [[ "$RUN_DOWNSTREAM" == "false" ]]; then | ||
| echo "Not in a pull_request or test_build event. Skipping..." | ||
| else | ||
| docker exec -t $container_name /bin/bash -c ' | ||
| cd /workspace/PaddleNLP | ||
| git revert f2477c07272d04244cd3287d1f21c70482a4a85f --no-edit # 套件PR#10413引入bug-待修复 | ||
| git revert d74c950e15a35b7a100d1688c89318195cc83bca --no-edit # 框架升级后配合修改,当前因框架bug固定commit适配 | ||
| ' | ||
| fi | ||
| - name: Test | ||
| run: | | ||
| if [[ "$RUN_DOWNSTREAM" == "false" ]]; then | ||
| echo "Not in a pull_request or test_build event. Skipping..." | ||
| else | ||
| docker exec -t $container_name /bin/bash -c ' | ||
| ldconfig | ||
| unlink /usr/bin/python3 | ||
| ln -sf $(which python${python_version}) /usr/bin/python3 | ||
| pip config set global.cache-dir "/home/.cache/pip" | ||
| set -e | ||
| source $work_dir/../../../proxy | ||
| cd /workspace/PaddleNLP && git config --global --add safe.directory $PWD | ||
| echo "Paddle PR#73283 PR#74484 import bug, set paddle_commit=8ae742 to skip " | ||
| export paddle_whl=https://paddle-qa.bj.bcebos.com/paddle-pipeline/Develop-GpuSome-LinuxCentos-Gcc82-Cuda118-Cudnn86-Trt85-Py310-CINN-Compile/8ae7423e99b2ea96e410968a0ebb3f1795e37205/paddlepaddle_gpu-0.0.0-cp310-cp310-linux_x86_64.whl | ||
| timeout 2h bash scripts/regression/run_ci.sh python${python_version} ${paddle_whl} | ||
| ' | ||
| fi | ||
| - name: Upload Allure-reports & Logs | ||
| if: always() | ||
| env: | ||
| home_path: ${{ github.workspace }}/../../.. | ||
| bos_file: ${{ github.workspace }}/../../../bos/BosClient.py | ||
| allure_file: ${{ github.workspace }}/../../../allure-2.19.0/bin/allure | ||
| run: | | ||
| if [[ "$RUN_DOWNSTREAM" == "false" ]]; then | ||
| echo "Not in a pull_request or test_build event. Skipping..." | ||
| else | ||
| docker exec -t $container_name /bin/bash -c ' | ||
| unset http_proxy && unset https_proxy | ||
| if [ ! -f "${{ env.bos_file }}" ]; then | ||
| wget -q --no-proxy -O ${{ env.home_path }}/bos_new.tar.gz https://xly-devops.bj.bcebos.com/home/bos_new.tar.gz --no-check-certificate | ||
| mkdir ${{ env.home_path }}/bos | ||
| tar xf ${{ env.home_path }}/bos_new.tar.gz -C ${{ env.home_path }}/bos | ||
| fi | ||
| if [ ! -f "${{ env.allure_file }}" ]; then | ||
| wget -q --no-proxy -O ${{ env.home_path }}/allure-2.19.0.zip https://xly-devops.bj.bcebos.com/tools/allure-2.19.0.zip --no-check-certificate | ||
| unzip -q ${{ env.home_path }}/allure-2.19.0.zip -d ${{ env.home_path }}/ | ||
| fi | ||
| if [[ "${{ env.RUN_DOWNSTREAM }}" == "" && -n "${PR_ID}" ]]; then | ||
| bos_prefix="${PR_ID}/${COMMIT_ID}" | ||
| elif [[ "${{ env.RUN_DOWNSTREAM }}" == "true" && -n "${PR_ID}" ]]; then | ||
| bos_prefix="${PR_ID}/${COMMIT_ID}/test_build" | ||
| else | ||
| bos_prefix="schedule/$(date +%Y%m%d)" | ||
| fi | ||
| cd /workspace/PaddleNLP/model_logs | ||
| for FILE in /workspace/PaddleNLP/model_logs/*; do | ||
| file=$(basename "$FILE") | ||
| python ${{ env.bos_file }} $file paddle-github-action/PR/PaddleNLP/llm/${bos_prefix}/logs | ||
| echo "$file: https://paddle-github-action.bj.bcebos.com/PR/PaddleNLP/llm/${bos_prefix}/logs/$file" | ||
| done | ||
| cd /workspace/PaddleNLP/ | ||
| ${{ env.allure_file }} generate result -o report | ||
| tar -czf products.tar.gz report model_logs | ||
| python ${{ env.bos_file }} products.tar.gz paddle-github-action/PR/PaddleNLP/llm/${bos_prefix}/logs | ||
| echo "products: https://paddle-github-action.bj.bcebos.com/PR/PaddleNLP/llm/${bos_prefix}/logs/products.tar.gz" | ||
| ' | ||
| fi | ||
| - name: Terminate And Delete the Container | ||
| if: always() | ||
| run: | | ||
| docker rm -f ${{ env.container_name }} 2>/dev/null || true | ||